Kaynağa Gözat

代理人app开发

xuqiang 1 yıl önce
ebeveyn
işleme
f17bfcb648

+ 2 - 2
src/main/java/com/ydtech/modules/partner/dao/PartnerUserMapper.java

@@ -131,8 +131,6 @@ public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
 
     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") Integer grade,@Param("original") String original);
 
     @Select("SELECT * FROM partner_user WHERE user_id = #{userId} AND grade = #{grade}")
@@ -182,4 +180,6 @@ public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
     List<PartnerUser> queryDowngradedData();
 
 
+    @Update("UPDATE partner_user SET commission_rate = null WHERE user_id = #{userId} AND grade = #{grade}")
+    void resetFixedRatio(@Param("userId") String userId, @Param("grade")Integer grade);
 }

+ 9 - 9
src/main/java/com/ydtech/modules/partner/service/Impl/PartnerLiftingRecordServiceImpl.java

@@ -50,14 +50,14 @@ public class PartnerLiftingRecordServiceImpl extends ServiceImpl<PartnerLiftingR
     @Override
     public Map<String,Object> queryPage(PartnerLiftingRecordParam recordParam) {
         QueryWrapper<PartnerLiftingRecord> queryWrapper = new QueryWrapper<>();
-        queryWrapper.like(StringUtils.isNotBlank(recordParam.getName()), "`r.name`", recordParam.getName());
-        queryWrapper.like(StringUtils.isNotBlank(recordParam.getMobile()), "r.mobile", recordParam.getMobile());
-        queryWrapper.like(StringUtils.isNotBlank(recordParam.getUserId()), "r.userId", recordParam.getUserId());
-        queryWrapper.eq(StringUtils.isNotBlank(recordParam.getType()), "r.type", recordParam.getType());
+        queryWrapper.like(StringUtils.isNotBlank(recordParam.getName()), "`name`", recordParam.getName());
+        queryWrapper.like(StringUtils.isNotBlank(recordParam.getMobile()), "mobile", recordParam.getMobile());
+        queryWrapper.like(StringUtils.isNotBlank(recordParam.getUserId()), "user_id", recordParam.getUserId());
+        queryWrapper.eq(StringUtils.isNotBlank(recordParam.getType()), "type", recordParam.getType());
         if (1 == recordParam.getAuditStatus()){
-            queryWrapper.in(ObjectUtils.isNotEmpty(recordParam.getAuditStatus()), "r.audit_status", 1,3,4);
+            queryWrapper.in(ObjectUtils.isNotEmpty(recordParam.getAuditStatus()), "audit_status", 1,3,4);
         }else {
-            queryWrapper.eq(ObjectUtils.isNotEmpty(recordParam.getAuditStatus()), "r.audit_status", recordParam.getAuditStatus());
+            queryWrapper.eq(ObjectUtils.isNotEmpty(recordParam.getAuditStatus()), "audit_status", recordParam.getAuditStatus());
         }
         if (CollectionUtil.isNotEmpty(recordParam.getApplyTime())){
             String startTime = recordParam.getApplyTime().get(0);
@@ -66,11 +66,11 @@ public class PartnerLiftingRecordServiceImpl extends ServiceImpl<PartnerLiftingR
                 endTime = recordParam.getApplyTime().get(1);
             }
             if (startTime != null && endTime != null) {
-                queryWrapper.between("r.createTime", startTime, endTime);
+                queryWrapper.between("createTime", startTime, endTime);
             } else if (startTime != null) {
-                queryWrapper.ge("r.createTime", startTime);
+                queryWrapper.ge("createTime", startTime);
             } else if (endTime != null) {
-                queryWrapper.le("r.createTime", endTime);
+                queryWrapper.le("createTime", endTime);
             }
         }
         Page page = baseMapper.queryPage(recordParam.getPage(), queryWrapper);

+ 2 - 2
src/main/java/com/ydtech/modules/partner/service/Impl/PartnerRuleServiceImpl.java

@@ -213,7 +213,7 @@ public class PartnerRuleServiceImpl extends ServiceImpl<PartnerRuleMapper, Partn
             throw new SystemException("有效周期不能为空");
         }
         BigDecimal p = getInviteData(userId, grade, period);
-        BigDecimal bf = partnerUserMapper.selectTotalSumPremium(userId, grade, period);
+        BigDecimal bf = partnerUserMapper.subordinateMembersInsurancePremiums(userId, grade, period);
         //  查询当前用户出单的保费
         BigDecimal ownBf = partnerUserMapper.selectOwnSumPremium(userId, period);
         if (bf == null){
@@ -234,7 +234,7 @@ public class PartnerRuleServiceImpl extends ServiceImpl<PartnerRuleMapper, Partn
         CommissionValidityPeriod period = partnerUserMapper.selectUpgradeCycleStartTime(userId, Integer.valueOf(grade));
         period.setEndDate(SpringUtil.getBean(ExpiredCommissionUtils.class).generateDowngradeTime(grade,period.getStartDate()));
         BigDecimal p = getInviteData(userId, grade, period);
-        BigDecimal bf = partnerUserMapper.selectTotalSumPremium(userId, grade, period);
+        BigDecimal bf = partnerUserMapper.subordinateMembersInsurancePremiums(userId, grade, period);
         //  查询当前用户出单的保费
         BigDecimal ownBf = partnerUserMapper.selectOwnSumPremium(userId, period);
         if (bf == null){

+ 2 - 2
src/main/java/com/ydtech/modules/partner/service/Impl/PartnerUserServiceImpl.java

@@ -411,7 +411,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         CommissionValidityPeriod period = baseMapper.selectUpgradeCycleStartTime(userId, Integer.valueOf(grade));
         period.setEndDate(SpringUtil.getBean(ExpiredCommissionUtils.class).generateDowngradeTime(grade,period.getStartDate()));
         partnerRuleEntity.setAssessmentEndDate(period.getEndDate().split(" ")[0]);
-        BigDecimal bf = baseMapper.selectTotalSumPremium(userId, grade, period);
+        BigDecimal bf = baseMapper.subordinateMembersInsurancePremiums(userId, grade, period);
         BigDecimal p = ruleService.getInviteData(userId, grade, period);
         BigDecimal ownBf = baseMapper.selectOwnSumPremium(userId, period);
         List<PartnerAttribute> strategyArray = partnerRuleEntity.getStrategyArray();
@@ -995,7 +995,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     public AppUserInfoVo getUserInfo(Integer type) {
         String userId = BaseController.getUserId();
         AppUserInfoVo appUserInfoVo = sysUserMapper.queryByUserId(userId);
-        Integer min = baseMapper.selectGradeMin(userId);
+        Integer min = baseMapper.selectGradeIntMin(userId);
         appUserInfoVo.setGrade(min);
         PartnerUser partnerUser = baseMapper.selectOne(new LambdaQueryWrapper<>(PartnerUser.class)
                 .eq(PartnerUser::getUserId, userId)

+ 1 - 1
src/main/java/com/ydtech/modules/partner/utils/CalculateCommissionUtils.java

@@ -158,7 +158,7 @@ public class CalculateCommissionUtils {
                 }
             }if (null != gzs && null == hhr){
                 BigDecimal a2;
-                if (null == gl){
+                if (isZero(gl)){
                     a2 = new BigDecimal(rulesVo.getAdministrator().getSharedRatio()).subtract(new BigDecimal(rulesVo.getAdministrator().getDefaultRatio()));
                 }else {
                     a2 = gl;

+ 2 - 0
src/main/java/com/ydtech/modules/partner/utils/ExpiredCommissionUtils.java

@@ -173,7 +173,9 @@ public class ExpiredCommissionUtils {
             partnerUserMapper.insert(user);
         }
         partnerUser.setIdentityStatus(true);
+        partnerUser.setCommissionRate(null);
         partnerUserMapper.updateById(partnerUser);
+        partnerUserMapper.resetFixedRatio(partnerUser.getUserId(),user.getGrade());
         PartnerLiftingRecord liftingRecord = getLiftingRecord(partnerUser, user);
         liftingRecordService.saveLiftingRecord(liftingRecord);
     }

+ 14 - 12
src/main/resources/mapper/modules/partner/PartnerUserMapper.xml

@@ -1166,18 +1166,20 @@ SELECT
 
 
     <select id="subordinateMembersInsurancePremiums" resultType="java.math.BigDecimal">
-        SELECT SUM(DISTINCT sumpremium) FROM partner_premium_details WHERE user_id IN(
-            WITH RECURSIVE cte_name AS (
-                SELECT user_id,referrer_id, grade FROM partner_user
-                WHERE user_id = #{userId} AND grade = #{grade}
-            UNION ALL
-            SELECT t.user_id, t.referrer_id, t.grade FROM partner_user t
-            INNER JOIN cte_name ON t.referrer_id = cte_name.user_id
-                WHERE t.grade  = (cte_name.grade + 1)
-            ) SELECT DISTINCT user_id FROM cte_name WHERE user_id != #{userId} )
-        <if test="period.startDate != null and period.endDate != null">
-            AND create_time BETWEEN #{period.startDate} AND #{period.endDate}
-        </if>
+        SELECT SUM(db.sumpremium) FROM (
+            SELECT DISTINCT orderno,sumpremium FROM partner_premium_details WHERE user_id IN(
+                WITH RECURSIVE cte_name AS (
+                    SELECT user_id,referrer_id, grade FROM partner_user
+                    WHERE user_id = #{userId} AND grade = #{grade}
+                UNION ALL
+                SELECT t.user_id, t.referrer_id, t.grade FROM partner_user t
+                INNER JOIN cte_name ON t.referrer_id = cte_name.user_id
+                    WHERE t.grade  = (cte_name.grade + 1)
+                ) SELECT DISTINCT user_id FROM cte_name WHERE user_id != #{userId} )
+            <if test="period.startDate != null and period.endDate != null">
+                AND create_time BETWEEN #{period.startDate} AND #{period.endDate}
+            </if>
+        ) db
     </select>