| | |
| | | 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; |
| | |
| | | import java.math.BigDecimal; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | /** |
| | | * 定时任务-等级晋升维持 |
| | |
| | | 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() |
| | |
| | | .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; |