xuqiang пре 1 година
родитељ
комит
e340ba84ef

+ 6 - 1
src/main/java/com/ydtech/modules/partner/dao/PartnerLiftingRecordMapper.java

@@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -23,9 +24,13 @@ public interface PartnerLiftingRecordMapper extends BaseMapper<PartnerLiftingRec
     @Select("SELECT r.id,r.`name`,r.mobile,r.user_id,r.dept_id,r.type,r.original_level,r.after_change,r.cycle,r.upgrade_strategy,r.audit_status,r.audit_time,r.audit_user,r.reject_reason,r.conditions,r.rules,r.create_time,r.upgrade_type,( SELECT `name` FROM sys_dept WHERE sys_dept.id = r.dept_id ) dept_name FROM partner_lifting_record r ${ew.customSqlSegment} ")
     Page<PartnerLiftingRecord> queryPage(Page page,@Param("ew") QueryWrapper<PartnerLiftingRecord> queryWrapper);
 
-    @Select("SELECT * FROM partner_lifting_record WHERE DATE(DATE_ADD(create_time, INTERVAL #{expireDays} DAY)) =  CURDATE() ")
+    @Select("SELECT * FROM partner_lifting_record WHERE type = 1 AND audit_status = 0 AND DATE(DATE_ADD(create_time, INTERVAL #{expireDays} DAY)) =  CURDATE() ")
     List<PartnerLiftingRecord> queryExpireDays(String expireDays);
 
     @Update("update partner_lifting_record set audit_status = #{status} where id = #{id}")
     void updateAuditStatusById(String id, int status);
+
+    @Select("SELECT create_time FROM partner_lifting_record WHERE type = 1 AND audit_status = 0 AND user_id = #{userId} and" +
+            " original_level = #{grade} ")
+    Date selectQueryDowngradeTime(@Param("userId") String userId, @Param("grade")Integer grade);
 }

+ 10 - 0
src/main/java/com/ydtech/modules/partner/model/vo/TeamOverviewVo.java

@@ -4,6 +4,8 @@ package com.ydtech.modules.partner.model.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 @Data
 public class TeamOverviewVo {
 
@@ -18,6 +20,14 @@ public class TeamOverviewVo {
     @ApiModelProperty(value = "升级状态 0-不支持升级;1-可升级;2-申请中")
     private Integer upgradeStatus;
 
+    @ApiModelProperty(value = "锁定佣金")
+    private BigDecimal lockCommission;
+
+    private Long zeroDays;
+
+    @ApiModelProperty(value = "购买保级金额")
+    private BigDecimal fallAmount;
+
     private Object vo1;
 
     private Object vo2;

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

@@ -293,6 +293,11 @@ public class PartnerLiftingRecordServiceImpl extends ServiceImpl<PartnerLiftingR
         return baseMapper.selectCount(wrapper);
     }
 
+    @Override
+    public Date selectQueryDowngradeTime(String userId, Integer grade) {
+        return baseMapper.selectQueryDowngradeTime(userId,grade);
+    }
+
     private void updateUserIdentityStatus(PartnerLiftingRecord liftingRecord, BigDecimal auditCommission) {
         PartnerLiftingRecord record = baseMapper.selectById(liftingRecord.getId());
         if (record == null){

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

@@ -1,7 +1,6 @@
 package com.ydtech.modules.partner.service.Impl;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.text.DateFormat;
 import java.time.Instant;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -38,9 +37,11 @@ import com.ydtech.modules.partner.service.PartnerRuleService;
 import com.ydtech.modules.partner.service.PartnerUserService;
 import com.ydtech.modules.partner.utils.ConditionUtils;
 import com.ydtech.modules.partner.utils.ExpiredCommissionUtils;
+import com.ydtech.modules.partner.utils.PartnerDateUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.util.function.Function;
@@ -80,6 +81,9 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     @Autowired
     private PartnerRuleService partnerRuleService;
 
+    @Value("${newPartner.expireDays}")
+    private Long expireDays;
+
     @Override
     public int insert(PartnerUser partnerUser) {
         return baseMapper.insert(partnerUser);
@@ -294,6 +298,11 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
             }else {
                 if (partnerUser.isIdentityStatus()){
                     overviewVo.setParentStatus("2");
+                    overviewVo.setLockCommission(accountMapper.selectCashFee(partnerUser.getUserId(), partnerUser.getGrade()));
+                    Long difference = calculateTimeDifference(partnerUser.getUserId(), partnerUser.getGrade());
+                    overviewVo.setZeroDays(difference);
+                    PartnerRuleEntity rule = partnerRuleService.selectByGrade(overviewVo.getGrade());
+                    overviewVo.setFallAmount(rule.getFallAmount());
                     getRule(overviewVo, partnerUser);
                 }else {
                     overviewVo.setParentStatus("1");
@@ -419,67 +428,6 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         return getAttribute(partnerRuleEntity, bf, p, ownBf, strategyArray);
     }
 
-//    private List<MyUserLevel> getUserLevels(String userId, List<PartnerRule> partnerRules, Map<Integer, PartnerUser> userMap) {
-//        List<MyUserLevel> list = new ArrayList<>();
-//        if (partnerRules == null || userId == null || userMap == null) {
-//            return list; // 输入参数校验
-//        }
-//        for (PartnerRule rule : partnerRules) {
-//            Integer grade = rule.getGrade();
-//            PartnerUser partnerUser = userMap.get(grade);
-//            MyUserLevel level = new MyUserLevel();
-//            level.setFallAmount(rule.getFallAmount());
-//            level.setRatio(getProportion(grade));
-//            level.setGrade(grade);
-//            level.setGradeName(rule.getGradeName());
-//
-//            if (partnerUser == null) {
-//                level.setLockingState("0");
-//                level.setProgressBar(0);
-//                if (1 != grade){
-//                    if (null != userMap.get(grade + 1)){
-//                        boolean verified = ruleService.verifyUpgradeConditions(userId, String.valueOf(grade + 1));
-//                        if (verified) {
-//                            level.setUpgrade(true);
-//                            level.setProgressBar(2);
-//                        }else {
-//                            level.setProgressBar(1);
-//                        }
-//                    }
-//                }
-//                Long count = liftingRecordService.selectDowngradeRecord(userId,grade,0);
-//                if (count > 0){
-//                    level.setUpgradeStatus(true);
-//                }
-//            } else {
-//                level.setUserId(userId);
-//                level.setUserName(partnerUser.getName());
-//                if (partnerUser.isIdentityStatus()) {
-//                    level.setLockingState("2");
-//                    level.setLockCommission(accountMapper.selectCashFee(partnerUser.getUserId(), partnerUser.getGrade()));
-//                    if (partnerUser.getUpgradeCycleStartTime() != null) {
-//                        LocalDate upgradeCycleStartDate = partnerUser.getUpgradeCycleStartTime().toInstant()
-//                                .atZone(ZoneId.systemDefault()).toLocalDate();
-//                        level.setZeroDays(ChronoUnit.DAYS.between(LocalDate.now(), upgradeCycleStartDate));
-//                    }
-//                    String value = String.valueOf(partnerUser.getGrade());
-//                    boolean verified = ruleService.verifyUpgradeConditions(partnerUser.getUserId(),value);
-//                    if (verified) {
-//                        level.setUpgrade(true);
-//                    }
-//                    Long count = liftingRecordService.selectDowngradeRecord(partnerUser.getUserId(),partnerUser.getGrade() + 1,1);
-//                    if (count > 0){
-//                        level.setUpgradeStatus(true);
-//                    }
-//                } else {
-//                    level.setLockingState("1");
-//                }
-//                level.setProgressBar(2);
-//            }
-//            list.add(level);
-//        }
-//        return list;
-//    }
 
     private List<MyUserLevel> getUserLevels(String userId, List<PartnerRule> partnerRules, Map<Integer, PartnerUser> userMap) {
         List<MyUserLevel> list = new ArrayList<>();
@@ -553,15 +501,8 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     private void handleActiveUser(PartnerUser partnerUser, MyUserLevel level) {
         level.setLockingState("2");
         level.setLockCommission(accountMapper.selectCashFee(partnerUser.getUserId(), partnerUser.getGrade()));
-
-        // 计算天数差
-        if (partnerUser.getUpgradeCycleStartTime() != null) {
-            LocalDate upgradeCycleStartDate = partnerUser.getUpgradeCycleStartTime()
-                    .toInstant()
-                    .atZone(ZoneId.systemDefault())
-                    .toLocalDate();
-            level.setZeroDays(ChronoUnit.DAYS.between(LocalDate.now(), upgradeCycleStartDate));
-        }
+        Long difference = calculateTimeDifference(partnerUser.getUserId(), partnerUser.getGrade());
+        level.setZeroDays(difference);
         Integer grade = partnerUser.getGrade();
         if (grade != 4){
             grade = grade + 1;
@@ -601,21 +542,6 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         return "0";
     }
 
-    private static SysUser2Vo getUser2Vo(SysUser sysUser,String id) {
-        SysUser2Vo sysUser2Vo = new SysUser2Vo();
-        SysUser user = new SysUser();
-        user.setName(sysUser.getName());
-        user.setMobile(sysUser.getMobile());
-        user.setIdentity(sysUser.getIdentity());
-        user.setPassword(sysUser.getPassword());
-        user.setRoleId("21");
-        user.setReferrerId(id);
-        user.setDeptSource("2");
-        user.setGrade(4);
-        sysUser2Vo.setSysUser( user);
-        return sysUser2Vo;
-    }
-
 
     @Override
     public void deleteByUserId(String id) {
@@ -658,16 +584,6 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
 
     @Override
     public HttpResult userCountVo(AppHomeParams params) {
-       /* PartnerUser minGrade = baseMapper.selectGradeMin(params.getUserId());
-        if (minGrade == null) {
-            return HttpResult.error("人员不存在");
-        }
-        Map<Integer, String> rule = getRule();
-        Map<String, Object> vo = new HashMap<>();
-        vo.put("vo1", getV1(minGrade, params, rule));
-        vo.put("vo2", getVo2(minGrade, params, rule));
-        vo.put("vo3", getVo3(minGrade, params, rule));
-        vo.put("vo4", getVo4(minGrade, params, rule));*/
         return HttpResult.ok();
     }
 
@@ -738,6 +654,16 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
                     map.put("data", getPage(page));
                     map.put("total", hashMap);
                     map.put("parentStatus", partnerUser.isIdentityStatus() ? "2" : "1");
+                    BigDecimal lockCommission = null;
+                    Long zeroDays = null;
+                    if (partnerUser.isIdentityStatus()){
+                        lockCommission = accountMapper.selectCashFee(partnerUser.getUserId(), partnerUser.getGrade());
+                        zeroDays = calculateTimeDifference(partnerUser.getUserId(), partnerUser.getGrade());
+                    }
+                    map.put("lockCommission",lockCommission);
+                    map.put("zeroDays",zeroDays);
+                    PartnerRuleEntity ruleEntity = partnerRuleService.selectByGrade(overviewVo.getGrade());
+                    map.put("fallAmount",ruleEntity.getFallAmount());
                     getRule(overviewVo, partnerUser);
 
                     map.put("upgradeStatus", new JSONObject());
@@ -753,6 +679,16 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         return HttpResult.ok(list);
     }
 
+
+    public Long calculateTimeDifference(String userId,Integer grade){
+        Date date = liftingRecordService.selectQueryDowngradeTime(userId, grade);
+        LocalDate localDate = date.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDate().plusDays(expireDays);
+        return PartnerDateUtils.dateDifference(localDate);
+    }
+
+
     private void getRule(TeamOverviewVo overviewVo, PartnerUser partnerUser) {
         Integer grade = partnerUser.getGrade();
         if (grade != 4){

+ 4 - 0
src/main/java/com/ydtech/modules/partner/service/PartnerLiftingRecordService.java

@@ -6,6 +6,7 @@ import com.ydtech.modules.partner.model.PartnerRecordApper;
 import com.ydtech.modules.partner.model.param.LiftingRecordAudit;
 import com.ydtech.modules.partner.model.param.PartnerLiftingRecordParam;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -34,4 +35,7 @@ public interface PartnerLiftingRecordService {
     Long selectDowngradeRecord(String userId, Integer grade, Integer type);
 
     Long selectQueryDowngradeStatus(String userId, Integer grade);
+
+    Date selectQueryDowngradeTime(String userId, Integer grade);
+
 }

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

@@ -72,9 +72,8 @@ public class PartnerDateUtils {
      * @param date
      * @return
      */
-    public static Long dateDifference(Date date){
-        LocalDate pastLocalDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
-        return ChronoUnit.DAYS.between(pastLocalDate, LocalDate.now());
+    public static Long dateDifference(LocalDate date){
+        return ChronoUnit.DAYS.between(LocalDate.now(),date);
     }