package com.ydtech.modules.partner.dao; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ydtech.core.page.HttpResult; import com.ydtech.modules.partner.model.PartnerUser; import com.ydtech.modules.partner.model.param.AppHomeParams; import com.ydtech.modules.partner.model.param.CommissionValidityPeriod; import com.ydtech.modules.partner.model.param.QueryVo; import com.ydtech.modules.partner.model.vo.*; import org.apache.ibatis.annotations.*; import java.math.BigDecimal; import java.util.*; @Mapper public interface PartnerUserMapper extends BaseMapper { //分页查询 IPage queryPage(Page page, @Param("queryVo")QueryVo queryVo); @MapKey("userId") List> selectRecommender(@Param("level") String level); List selectByUserId(@Param("id")String id,@Param("grade")Integer grade); TodayOverview selectTodayOverview(@Param("params") AppHomeParams params); List selectTeamOverview(@Param("params") AppHomeParams params); @Delete("delete from partner_user where user_id=#{id}") void deleteByUserId(String id); Object selectStatistics(@Param("grade") String grade,@Param("params")AppHomeParams params); SelectUserVo selectUser(AppHomeParams params); Integer userCountVo(@Param("userId")String userId,@Param("params")AppHomeParams params,@Param("grade")Integer grade); @Select("select MIN(grade) as grade from partner_user where user_id= #{userId} ") Integer selectGradeMin(String userId); @Select("select MIN(grade) as grade from partner_user where user_id= #{userId} ") Integer selectGradeIntMin(String userId); List selectJuniorList(@Param("grade") Integer grade,@Param("ids") List ids,@Param("params")AppHomeParams params); @MapKey("createTime") List> userCountVo2(@Param("userId")List userId,@Param("params")AppHomeParams params); List selectJuniorListUser(@Param("grade")Integer grade,@Param("ids") List currentUserIds,@Param("params") AppHomeParams params); @Select("SELECT GROUP_CONCAT( r.grade_name ORDER BY u.grade) FROM partner_user u LEFT JOIN partner_rule r ON r.grade = u.grade WHERE user_id = #{userId}") String selectByUserIdGrade(String userId); @Select("SELECT `name` FROM partner_user WHERE user_id = #{userId} LIMIT 1") String selectByUserIdUserName(String userId); Integer userCountIdsVo(@Param("ids") List ids,@Param("params") AppHomeParams params); List selectByReferrerId(@Param("userId") String userId,@Param("grade") Integer grade); List selectQuerySuperiors(@Param("userId") String userId,@Param("grade") Integer grade); JSONObject myPerformanceTotal(@Param("map")Map map, @Param("list") Set list); List queryDataList(@Param("map")Map map); Integer selectNumber(@Param("userId") String userId, @Param("number") String number,@Param("period") CommissionValidityPeriod period); @Select("SELECT assessment_time FROM partner_user WHERE user_id = #{userId} AND grade = #{grade}") Date selectAssessmentTime(@Param("userId") String userId, @Param("grade")String grade); @Select("SELECT fixed_cycle_time FROM partner_user WHERE user_id = #{userId} AND grade = #{grade}") Date selectFixedCycleTime(@Param("userId") String userId, @Param("grade")String grade); @Update("UPDATE partner_user SET assessment_time = ( " + " SELECT DATE(approve_time) FROM sys_user_track WHERE `status` = 1 AND user_id = #{userId} LIMIT 1 " + " ) WHERE user_id = #{userId} ") void updateAssessmentTime(String userId); @Update("UPDATE partner_user SET fixed_cycle_time = ( " + " SELECT DATE(approve_time) FROM sys_user_track WHERE `status` = 1 AND user_id = #{userId} LIMIT 1 " + " ) WHERE user_id = #{userId} ") void updateFixedCycleTime(String userId); @Update("UPDATE partner_user SET assessment_time = #{date} WHERE user_id = #{userId} ") void updateAssessmentTimeByDate(@Param("userId") String userId,@Param("date") Date date); Integer selectByUserIdNumber(@Param("userId") String userId,@Param("number") String number, @Param("period") CommissionValidityPeriod period); String queryManager(String issuerId); String getGzsList(String issuerId); String getTdList(String issuerId); PartnerUser queryUser(@Param("referrerId")String referrerId,@Param("grade") Integer grade); Integer selectNumber4(@Param("userId") String userId,@Param("number") String number,@Param("period") CommissionValidityPeriod period); List queryByUserId(String userId); @Select("SELECT * FROM partner_user WHERE user_id = #{userId} ORDER BY grade DESC LIMIT 1") PartnerUser selectMaxGradeUserId(String userId); @Select("SELECT upgrade_time FROM partner_user WHERE user_id = #{userId} AND grade = #{grade}") Date selectUpgradeTime(String userId, String grade); @Update("UPDATE partner_user SET upgrade_time = #{date} WHERE user_id = #{userId} ") void updateUpgradeTimeByDate(@Param("userId") String userId,@Param("date") Date date); @Update("UPDATE partner_user SET upgrade_time = ( " + " SELECT DATE(approve_time) FROM sys_user_track WHERE `status` = 1 AND user_id = #{userId} LIMIT 1 " + " ) WHERE user_id = #{userId} and grade = #{grade} ") void updateUpgradeTime(@Param("userId")String userId,@Param("grade") String grade); int assessment(@Param("userId") String userId,@Param("grade") String grade, @Param("period")CommissionValidityPeriod period); BigDecimal selectTotalSumPremium(@Param("userId") String userId,@Param("grade") String grade, @Param("period")CommissionValidityPeriod period); String querySuperiors(@Param("userId") String userId,@Param("grade") String grade); @Select("SELECT * FROM partner_user WHERE user_id = #{userId} AND grade = #{grade}") PartnerUser getLevelUserId(@Param("userId") String userId,@Param("grade") Integer grade); Set querySubordinateUserId(@Param("levelUserId") String levelUserId); Set querySubordinate(String levelUserId); Set getLevelAllUserId(String userId); @Select(" SELECT p.id,p.user_id,p.grade,p.name,p.create_time FROM partner_user p LEFT JOIN sys_user u ON u.id = p .user_id ${ew.customSqlSegment}") List selectListVo(@Param("ew") QueryWrapper queryWrapper); }