mitao
2024-04-11 44174ecd40c58060ff6c64d2ad874b8afaf2ae7f
修改市场总监降级bug
2个文件已修改
41 ■■■■ 已修改文件
meiya-rest/src/main/java/com/sinata/rest/modular/mall/job/CheckCreditScoreWork.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
meiya-rest/src/main/java/com/sinata/rest/modular/mall/job/UserV5UpDownWork.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
meiya-rest/src/main/java/com/sinata/rest/modular/mall/job/CheckCreditScoreWork.java
@@ -1,5 +1,6 @@
package com.sinata.rest.modular.mall.job;
import cn.hutool.core.date.DateUtil;
import com.sinata.common.enums.EnumMemberGrade;
import com.sinata.common.enums.EnumSystemSetKey;
import com.sinata.rest.modular.member.service.IMemUserService;
@@ -21,11 +22,12 @@
    IMemUserService memUserService;
    /**
     * 品行分检测-1分钟执行1次
     * 品行分检测 每月一号凌晨执行
     */
    @Scheduled(cron = "0 */1 * * * *")
    @Scheduled(cron = "0 0 0 1 * ?")
    public void run() {
        log.debug("品行分检测");
        if (DateUtil.thisDayOfMonth() == 1) {
        // 黄金营销员检测
        memUserService.updateUserGradeByCreditScore(EnumSystemSetKey.SET_305.index, EnumMemberGrade.G_3.index, EnumMemberGrade.G_1.index);
@@ -36,4 +38,8 @@
        memUserService.updateUserGradeByCreditScore(EnumSystemSetKey.SET_348.index, EnumMemberGrade.G_5.index, EnumMemberGrade.G_3.index);
    }
    }
}
meiya-rest/src/main/java/com/sinata/rest/modular/mall/job/UserV5UpDownWork.java
@@ -6,12 +6,15 @@
import com.sinata.common.enums.EnumMemberGrade;
import com.sinata.common.enums.EnumSystemSetKey;
import com.sinata.common.enums.mall.EnumMallOrderState;
import com.sinata.rest.core.support.DateTime;
import com.sinata.rest.modular.mall.service.IMallOrderService;
import com.sinata.rest.modular.member.model.MemUser;
import com.sinata.rest.modular.member.service.IMemUserRelationService;
import com.sinata.rest.modular.member.service.IMemUserService;
import com.sinata.rest.modular.system.service.ISystemSetService;
import io.swagger.annotations.Api;
import java.util.Date;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
@@ -21,6 +24,7 @@
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import org.springframework.transaction.annotation.Transactional;
/**
 * 定时任务-等级晋升维持
@@ -44,10 +48,11 @@
    private IMallOrderService mallOrderService;
    /**
     * 每天执行1次
     * 每月一号 0:30执行
     */
    @Scheduled(cron = "0 3 0 */1 * *")
    @Scheduled(cron = "0 30 0 1 * ?")
    public void run() {
        if (DateUtil.thisDayOfMonth() == 1) {
        // 市场总监列表
        List<MemUser> v5UserList = memUserService.list(
                Wrappers.<MemUser>query().lambda()
@@ -56,20 +61,32 @@
                        .eq(MemUser::getIsLeaveOffice, 0) // 非离职
                        .eq(MemUser::getMemberGradeId, EnumMemberGrade.G_5.index)
        );
        for (MemUser user : v5UserList) {
            //品行分小于60直接降级为黄金营销员
            List<MemUser> list = v5UserList.stream().filter(user ->
                    user.getCreditScore().compareTo(BigDecimal.valueOf(60)) < 0).peek(item -> {
                item.setMemberGradeId(EnumMemberGrade.G_3.index);
                item.setMemberGradeTime(DateUtil.date());
                item.setCreditScore(BigDecimal.valueOf(100));
            }).collect(Collectors.toList());
            memUserService.updateBatchById(list);
            //剩下需要通过维持方案来判断的用户
            List<MemUser> userList = v5UserList.stream().filter(user ->
                            user.getCreditScore().compareTo(BigDecimal.valueOf(60)) >= 0)
                    .collect(Collectors.toList());
            for (MemUser user : userList) {
            if (v5Case1(user.getId()) && v5Case2(user.getId())) {
                log.info("【市场总监降级为黄金营销员】用户:{} / {}",
                    log.info("【市场总监降级为城市合伙人】用户:{} / {}",
                        user.getId(), user.getRealName()
                );
                // 降级为-黄金营销员
                user.setMemberGradeId(EnumMemberGrade.G_3.index);
                    // 降级一级
                    user.setMemberGradeId(EnumMemberGrade.G_4.index);
                user.setMemberGradeTime(DateUtil.date());
                user.setCreditScore(BigDecimal.valueOf(100));
                user.updateById();
            }
        }
    }
    }
    public boolean v5Case1(Integer userId) {
        boolean isDown = false;