|
@@ -6,6 +6,7 @@ import cn.hutool.extra.spring.SpringUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.jzg.commons.util.StringUtils;
|
|
import com.jzg.commons.util.StringUtils;
|
|
|
|
|
+import com.jzg.commons.util.TenantContextUtils;
|
|
|
import com.jzg.entity.*;
|
|
import com.jzg.entity.*;
|
|
|
import com.jzg.entity.param.PartnerRuleEntity;
|
|
import com.jzg.entity.param.PartnerRuleEntity;
|
|
|
import com.jzg.mapper.PartnerExpiredCommissionMapper;
|
|
import com.jzg.mapper.PartnerExpiredCommissionMapper;
|
|
@@ -61,35 +62,46 @@ public class TimedTaskUtils {
|
|
|
@Scheduled(cron = "0 0 0 * * *")
|
|
@Scheduled(cron = "0 0 0 * * *")
|
|
|
public void updateOrderDateNoon() {
|
|
public void updateOrderDateNoon() {
|
|
|
log.info("记录佣金过期定时任务开始执行:{}", expireDays);
|
|
log.info("记录佣金过期定时任务开始执行:{}", expireDays);
|
|
|
- List<PartnerUser> partnerUserList = partnerUserMapper.queryExpiredRecords(expireDays);
|
|
|
|
|
- for (PartnerUser partnerUser : partnerUserList) {
|
|
|
|
|
- String date = PartnerDateUtils.timeExample(expireDays + 1);
|
|
|
|
|
- LambdaQueryWrapper<PartnerPremiumDetails> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
- lambdaQueryWrapper.eq(PartnerPremiumDetails::getUserId, partnerUser.getUserId())
|
|
|
|
|
- .eq(PartnerPremiumDetails::getSource, partnerUser.getGrade())
|
|
|
|
|
- .eq(PartnerPremiumDetails::getAppStatus, 1)
|
|
|
|
|
- .between(PartnerPremiumDetails::getCreateTime,date+" 00:00:00",date+" 23:59:59");
|
|
|
|
|
- List<PartnerPremiumDetails> partnerPremiumDetails = premiumDetailsMapper.selectList(lambdaQueryWrapper);
|
|
|
|
|
- if (CollectionUtil.isNotEmpty(partnerPremiumDetails)){
|
|
|
|
|
- BigDecimal lockCommission = partnerPremiumDetails.stream().map(PartnerPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
- PartnerExpiredCommission commission = getExpiredUserCommission(partnerUser,lockCommission,date);
|
|
|
|
|
- expiredCommissionMapper.insert(commission);
|
|
|
|
|
- if (null != lockCommission){
|
|
|
|
|
- PartnerPartnerAccount account = accountMapper.selectOne(new LambdaQueryWrapper<>(PartnerPartnerAccount.class)
|
|
|
|
|
- .eq(PartnerPartnerAccount::getUserId, partnerUser.getUserId()).eq(PartnerPartnerAccount::getGrade, partnerUser.getGrade()));
|
|
|
|
|
- if (null == account) {
|
|
|
|
|
- continue;
|
|
|
|
|
- }
|
|
|
|
|
- if (null != lockCommission){
|
|
|
|
|
- account.setExpiredAmount(account.getExpiredAmount().add(lockCommission));
|
|
|
|
|
- accountMapper.updateById(account);
|
|
|
|
|
- }
|
|
|
|
|
- //更新单据状态
|
|
|
|
|
- for (PartnerPremiumDetails detail : partnerPremiumDetails) {
|
|
|
|
|
- detail.setAppStatus(2);
|
|
|
|
|
- premiumDetailsMapper.updateById(detail);
|
|
|
|
|
|
|
+ // 查询所有用户的租户code
|
|
|
|
|
+ List<String> systemCodeList = partnerUserMapper.distinctSystemCode();
|
|
|
|
|
+ for (String systemCode : systemCodeList) {
|
|
|
|
|
+ TenantContextUtils.setCustomTenantId(systemCode);
|
|
|
|
|
+ try {
|
|
|
|
|
+ List<PartnerUser> partnerUserList = partnerUserMapper.queryExpiredRecords(expireDays);
|
|
|
|
|
+ for (PartnerUser partnerUser : partnerUserList) {
|
|
|
|
|
+ String date = PartnerDateUtils.timeExample(expireDays + 1);
|
|
|
|
|
+ LambdaQueryWrapper<PartnerPremiumDetails> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ lambdaQueryWrapper.eq(PartnerPremiumDetails::getUserId, partnerUser.getUserId())
|
|
|
|
|
+ .eq(PartnerPremiumDetails::getSource, partnerUser.getGrade())
|
|
|
|
|
+ .eq(PartnerPremiumDetails::getAppStatus, 1)
|
|
|
|
|
+ .between(PartnerPremiumDetails::getCreateTime,date+" 00:00:00",date+" 23:59:59");
|
|
|
|
|
+ List<PartnerPremiumDetails> partnerPremiumDetails = premiumDetailsMapper.selectList(lambdaQueryWrapper);
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(partnerPremiumDetails)){
|
|
|
|
|
+ BigDecimal lockCommission = partnerPremiumDetails.stream().map(PartnerPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ PartnerExpiredCommission commission = getExpiredUserCommission(partnerUser,lockCommission,date);
|
|
|
|
|
+ expiredCommissionMapper.insert(commission);
|
|
|
|
|
+ if (null != lockCommission){
|
|
|
|
|
+ PartnerPartnerAccount account = accountMapper.selectOne(new LambdaQueryWrapper<>(PartnerPartnerAccount.class)
|
|
|
|
|
+ .eq(PartnerPartnerAccount::getUserId, partnerUser.getUserId()).eq(PartnerPartnerAccount::getGrade, partnerUser.getGrade()));
|
|
|
|
|
+ if (null == account) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (null != lockCommission){
|
|
|
|
|
+ account.setExpiredAmount(account.getExpiredAmount().add(lockCommission));
|
|
|
|
|
+ accountMapper.updateById(account);
|
|
|
|
|
+ }
|
|
|
|
|
+ //更新单据状态
|
|
|
|
|
+ for (PartnerPremiumDetails detail : partnerPremiumDetails) {
|
|
|
|
|
+ detail.setAppStatus(2);
|
|
|
|
|
+ premiumDetailsMapper.updateById(detail);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+ log.error("updateOrderDateNoon定时任务执行失败:{}",e.getMessage());
|
|
|
|
|
+ }finally {
|
|
|
|
|
+ TenantContextUtils.clear();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -135,40 +147,54 @@ public class TimedTaskUtils {
|
|
|
//@XxlJob("checkCommissionExpireTime")
|
|
//@XxlJob("checkCommissionExpireTime")
|
|
|
@Scheduled(cron = "0 0 0 * * *")
|
|
@Scheduled(cron = "0 0 0 * * *")
|
|
|
public void checkCommissionExpireTime() {
|
|
public void checkCommissionExpireTime() {
|
|
|
- // TODO等级规则
|
|
|
|
|
- List<PartnerRuleEntity> partnerRuleEntities = partnerRuleService.queryAll();
|
|
|
|
|
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- List<PartnerUser> partnerUsers = partnerUserMapper.queryDowngradedData();
|
|
|
|
|
- Date date = new Date();
|
|
|
|
|
- for (PartnerUser partnerUser : partnerUsers) {
|
|
|
|
|
- PartnerRuleEntity rule = getRule(String.valueOf(partnerUser.getGrade()), partnerRuleEntities);
|
|
|
|
|
- Integer khDays = rule.getKhDays();
|
|
|
|
|
- Date upgradeStartTime = getUpgradeStartTime(partnerUser);
|
|
|
|
|
- if (null == upgradeStartTime){
|
|
|
|
|
- continue;
|
|
|
|
|
- }
|
|
|
|
|
- log.info("开始时间:{}", formatter.format(upgradeStartTime));
|
|
|
|
|
- // 生成结束时间
|
|
|
|
|
- Date upgradeEndTime = PartnerDateUtils.generateEndTime(upgradeStartTime, khDays);
|
|
|
|
|
- log.info("结束时间:{}", formatter.format(upgradeEndTime));
|
|
|
|
|
- if (date.compareTo(upgradeEndTime) >= 0){
|
|
|
|
|
- // TODO考核条件 不满足时需锁定
|
|
|
|
|
- ExpiredCommissionUtils commissionUtils = SpringUtil.getBean(ExpiredCommissionUtils.class);
|
|
|
|
|
- boolean checked = commissionUtils.checkUpgradeConditions(partnerUser);
|
|
|
|
|
- if (!checked){
|
|
|
|
|
- //TODO 不满足
|
|
|
|
|
- commissionUtils.generateLockRecords(partnerUser);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 查询所有用户的租户code
|
|
|
|
|
+ List<String> systemCodeList = partnerUserMapper.distinctSystemCode();
|
|
|
|
|
+ for (String systemCode : systemCodeList) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ TenantContextUtils.setCustomTenantId(systemCode);
|
|
|
|
|
+ // TODO等级规则
|
|
|
|
|
+ List<PartnerRuleEntity> partnerRuleEntities = partnerRuleService.querySystemCodeAll();
|
|
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ List<PartnerUser> partnerUsers = partnerUserMapper.queryDowngradedData();
|
|
|
|
|
+ Date date = new Date();
|
|
|
|
|
+ for (PartnerUser partnerUser : partnerUsers) {
|
|
|
|
|
+ PartnerRuleEntity rule = getRule(String.valueOf(partnerUser.getGrade()), partnerRuleEntities);
|
|
|
|
|
+ Integer khDays = rule.getKhDays();
|
|
|
|
|
+ Date upgradeStartTime = getUpgradeStartTime(partnerUser);
|
|
|
|
|
+ if (null == upgradeStartTime){
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ log.info("开始时间:{}", formatter.format(upgradeStartTime));
|
|
|
|
|
+ // 生成结束时间
|
|
|
|
|
+ Date upgradeEndTime = PartnerDateUtils.generateEndTime(upgradeStartTime, khDays);
|
|
|
|
|
+ log.info("结束时间:{}", formatter.format(upgradeEndTime));
|
|
|
|
|
+ if (date.compareTo(upgradeEndTime) >= 0){
|
|
|
|
|
+ // TODO考核条件 不满足时需锁定
|
|
|
|
|
+ ExpiredCommissionUtils commissionUtils = SpringUtil.getBean(ExpiredCommissionUtils.class);
|
|
|
|
|
+ boolean checked = commissionUtils.checkUpgradeConditions(partnerUser);
|
|
|
|
|
+ if (!checked){
|
|
|
|
|
+ //TODO 不满足
|
|
|
|
|
+ commissionUtils.generateLockRecords(partnerUser);
|
|
|
|
|
+ }
|
|
|
|
|
+ //TODO 更新考核周期
|
|
|
|
|
+ partnerUserMapper.updateUpgradeCycleStartTime(partnerUser.getUserId(), PartnerDateUtils.addDaysToday(upgradeEndTime,1),partnerUser.getGrade());
|
|
|
|
|
+ partnerUserMapper.updateNextLevelAssessmentTime(partnerUser.getUserId(), (partnerUser.getGrade() + 1),PartnerDateUtils.addDaysToday(upgradeEndTime,1));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
- //TODO 更新考核周期
|
|
|
|
|
- partnerUserMapper.updateUpgradeCycleStartTime(partnerUser.getUserId(), PartnerDateUtils.addDaysToday(upgradeEndTime,1),partnerUser.getGrade());
|
|
|
|
|
- partnerUserMapper.updateNextLevelAssessmentTime(partnerUser.getUserId(), (partnerUser.getGrade() + 1),PartnerDateUtils.addDaysToday(upgradeEndTime,1));
|
|
|
|
|
|
|
+ List<String> idList = partnerUsers.stream()
|
|
|
|
|
+ .map(PartnerUser::getId)
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ update(partnerRuleEntities,idList);
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ log.error("checkCommissionExpireTime定时任务执行失败:{}",e.getMessage());
|
|
|
|
|
+ }finally {
|
|
|
|
|
+ TenantContextUtils.clear();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
- List<String> idList = partnerUsers.stream()
|
|
|
|
|
- .map(PartnerUser::getId)
|
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
- update(partnerRuleEntities,idList);
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|