xuqiang преди 1 година
родител
ревизия
ca41abb098

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

@@ -96,8 +96,8 @@ public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
             " ) 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);
+    @Update("UPDATE partner_user SET assessment_time = #{date} WHERE user_id = #{userId} AND grade =#{grade} ")
+    void updateAssessmentTimeByDate(@Param("userId") String userId,@Param("date") Date date,@Param("grade")String grade);
 
     Integer selectByUserIdNumber(@Param("userId") String userId,@Param("number")  String number, @Param("period") CommissionValidityPeriod period);
 

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

@@ -682,6 +682,9 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
 
     public Long calculateTimeDifference(String userId,Integer grade){
         Date date = liftingRecordService.selectQueryDowngradeTime(userId, grade);
+        if (null == date){
+            return null;
+        }
         LocalDate localDate = date.toInstant()
                 .atZone(ZoneId.systemDefault())
                 .toLocalDate().plusDays(expireDays);

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

@@ -349,7 +349,7 @@ public class CalculateCommissionUtils {
                     }
                 }
                 if (!isWithinDays(assessmentTime, rules.getFixedDays())) {
-                    updateAssessmentTimeRecursively(assessmentTime,rules.getFixedDays(),userId );
+                    updateAssessmentTimeRecursively(assessmentTime,rules.getFixedDays(),userId,grade );
                     assessmentTime = partnerUserMapper.selectAssessmentTime(userId, grade);
                 }
                 period.setStartDate(dateFormat.format(assessmentTime));
@@ -381,12 +381,12 @@ public class CalculateCommissionUtils {
     }
 
 
-    private static void updateAssessmentTimeRecursively(Date assessmentTime, int days, String userId) {
+    private static void updateAssessmentTimeRecursively(Date assessmentTime, int days, String userId,String grade) {
         Date newDate = addDaysToday(assessmentTime, days);
         while (!isWithinDays(newDate, days)) {
             newDate = addDaysToday(newDate, days);
         }
-        partnerUserMapper.updateAssessmentTimeByDate(userId, newDate);
+        partnerUserMapper.updateAssessmentTimeByDate(userId,newDate,grade);
     }
 
 

+ 39 - 42
src/main/resources/mapper/modules/partner/PartnerUserMapper.xml

@@ -71,21 +71,20 @@
 
     <select id="selectByUserId" resultType="com.ydtech.modules.partner.model.vo.RelationalVo">
         SELECT
-            id,
-            NAME AS userName,
-            mobile,
-            user_id,
-            dept_id,
-            (SELECT `name` FROM sys_dept d WHERE d.id = partner_user.dept_id) AS agencyName,
-            (SELECT `name` FROM sys_user u WHERE u.id = partner_user.referrer_id) AS suggestName,
-            grade AS type,
-            referrer_id,
-            create_time
+            p.id,
+            p.NAME AS userName,
+            p.mobile,
+            p.user_id,
+            p.dept_id,
+            (SELECT `name` FROM sys_dept d WHERE d.id = p.dept_id) AS deptName,
+            (SELECT `name` FROM sys_user u WHERE u.id = p.referrer_id) AS suggestName,
+            p.grade AS type,
+            p.referrer_id,
+            p.create_time
         FROM
-            partner_user
-        WHERE
-            user_id = #{id}
-          AND grade = ${grade}
+            partner_user p
+                LEFT JOIN sys_user u ON u.id = p.user_id
+        WHERE u.`status` = 1 AND user_id = #{id} AND grade = #{grade}
     </select>
 
 
@@ -731,40 +730,38 @@ SELECT
 
     <select id="selectByReferrerId" resultType="com.ydtech.modules.partner.model.vo.RelationalVo">
         SELECT
-            id,
-            NAME AS userName,
-            mobile,
-            user_id,
-            dept_id,
-            (SELECT `name` FROM sys_dept d WHERE d.id = partner_user.dept_id) AS deptName,
-            (SELECT `name` FROM sys_user u WHERE u.id = partner_user.referrer_id) AS suggestName,
-            grade AS type,
-            referrer_id,
-            create_time
+            p.id,
+            p.NAME AS userName,
+            p.mobile,
+            p.user_id,
+            p.dept_id,
+            (SELECT `name` FROM sys_dept d WHERE d.id = p.dept_id) AS deptName,
+            (SELECT `name` FROM sys_user u WHERE u.id = p.referrer_id) AS suggestName,
+            p.grade AS type,
+            p.referrer_id,
+            p.create_time
         FROM
-            partner_user
-        WHERE
-            referrer_id = #{userId}
-          AND grade = ${grade}
+            partner_user p
+                LEFT JOIN sys_user u ON u.id = p.user_id
+        WHERE  u.`status` = 1 AND p.referrer_id = #{userId} AND p.grade = #{grade}
     </select>
 
     <select id="selectQuerySuperiors" resultType="com.ydtech.modules.partner.model.vo.RelationalVo">
         SELECT
-            id,
-            NAME AS userName,
-            mobile,
-            user_id,
-            dept_id,
-            (SELECT `name` FROM sys_dept d WHERE d.id = partner_user.dept_id) AS deptName,
-            (SELECT `name` FROM sys_user u WHERE u.id = partner_user.referrer_id) AS suggestName,
-            grade AS type,
-            referrer_id,
-            create_time
+            p.id,
+            p.NAME AS userName,
+            p.mobile,
+            p.user_id,
+            p.dept_id,
+            (SELECT `name` FROM sys_dept d WHERE d.id = p.dept_id) AS deptName,
+            (SELECT `name` FROM sys_user u WHERE u.id = p.referrer_id) AS suggestName,
+            p.grade AS type,
+            p.referrer_id,
+            p.create_time
         FROM
-            partner_user
-        WHERE
-            user_id = #{userId}
-          AND grade = ${grade}
+            partner_user p
+                LEFT JOIN sys_user u ON u.id = p.user_id
+        WHERE u.`status` = 1 AND p.user_id = #{userId} AND p.grade = #{grade}
     </select>