|
|
@@ -1,6 +1,7 @@
|
|
|
package com.ydtech.modules.partner.utils;
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
@@ -20,6 +21,7 @@ import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
@@ -67,49 +69,35 @@ public class TimedTaskUtils {
|
|
|
log.info("记录佣金过期定时任务开始执行:{}", expireDays);
|
|
|
List<PartnerUser> partnerUserList = partnerUserMapper.queryExpiredRecords(expireDays);
|
|
|
for (PartnerUser partnerUser : partnerUserList) {
|
|
|
- PartnerPartnerAccount account = accountMapper.selectOne(new LambdaQueryWrapper<>(PartnerPartnerAccount.class)
|
|
|
- .eq(PartnerPartnerAccount::getUserId, partnerUser.getUserId()).eq(PartnerPartnerAccount::getGrade, partnerUser.getGrade()));
|
|
|
- if (null == account) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- BigDecimal lockCommission = liftingRecordService.queryLockCommission(partnerUser.getUserId(), String.valueOf(partnerUser.getGrade()));
|
|
|
- PartnerExpiredCommission commission = getExpiredUserCommission(partnerUser,lockCommission);
|
|
|
- expiredCommissionMapper.insert(commission);
|
|
|
- if (null != lockCommission){
|
|
|
- account.setExpiredAmount(account.getExpiredAmount().add(lockCommission));
|
|
|
- accountMapper.updateById(account);
|
|
|
+ String date = PartnerDateUtils.timeExample(expireDays);
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- //liftingRecordService.updateAuditStatusById(record);
|
|
|
- //更新单据状态
|
|
|
- premiumDetailsMapper.updateAppStatus(String.valueOf(partnerUser.getGrade()), partnerUser.getUserId(), 2,partnerUser.getUpgradeCycleStartTime(),partnerUser.getExpiredTime());
|
|
|
}
|
|
|
-
|
|
|
-// List<PartnerLiftingRecord> list = liftingRecordService.queryExpireDays(expireDays);
|
|
|
-//
|
|
|
-// for (PartnerLiftingRecord record : list) {
|
|
|
-// //清空 当前用户抽成账户表
|
|
|
-// PartnerPartnerAccount account = accountMapper.selectOne(new LambdaQueryWrapper<>(PartnerPartnerAccount.class)
|
|
|
-// .eq(PartnerPartnerAccount::getUserId, record.getUserId()).eq(PartnerPartnerAccount::getGrade, record.getOriginalLevel()));
|
|
|
-// if (null == account){
|
|
|
-// continue;
|
|
|
-// }
|
|
|
-// BigDecimal lockCommission = liftingRecordService.queryLockCommission(record.getUserId(), record.getOriginalLevel());
|
|
|
-// PartnerExpiredCommission commission = getExpiredCommission(record,lockCommission);
|
|
|
-// expiredCommissionMapper.insert(commission);
|
|
|
-// if (null != lockCommission){
|
|
|
-// account.setExpiredAmount(account.getExpiredAmount().add(lockCommission));
|
|
|
-// accountMapper.updateById(account);
|
|
|
-// }
|
|
|
-// liftingRecordService.updateAuditStatusById(record);
|
|
|
-// PartnerUser partnerUser = partnerUserMapper.selectOne(new LambdaQueryWrapper<PartnerUser>().eq(PartnerUser::getUserId, record.getUserId())
|
|
|
-// .eq(PartnerUser::getGrade, record.getOriginalLevel()));
|
|
|
-//// partnerUser.setIdentityTime(PartnerDateUtils.addDaysToday(new Date(),0));
|
|
|
-// partnerUser.setExpiredTime(PartnerDateUtils.addDaysToday(new Date(),0));
|
|
|
-// partnerUserMapper.updateById(partnerUser);
|
|
|
-// //更新单据状态
|
|
|
-// premiumDetailsMapper.updateAppStatus(record.getOriginalLevel(), record.getUserId(), 2,partnerUser.getIdentityTime());
|
|
|
-// }
|
|
|
- checkCommissionExpireTime();
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -123,7 +111,7 @@ public class TimedTaskUtils {
|
|
|
commission.setGrade(String.valueOf(record.getGrade()));
|
|
|
commission.setGradeAfter(String.valueOf(record.getGrade() + 1));
|
|
|
commission.setLockCommission(null == lockCommission ? new BigDecimal("0") : lockCommission);
|
|
|
- commission.setDowngradeTime(record.getCreateTime());
|
|
|
+ commission.setDowngradeTime(record.getIdentityTime());
|
|
|
commission.setExpiration(new Date());
|
|
|
commission.setCreateTime(new Date());
|
|
|
return commission;
|
|
|
@@ -149,6 +137,7 @@ public class TimedTaskUtils {
|
|
|
/**
|
|
|
* TODO: 更新降级考核时间
|
|
|
*/
|
|
|
+ @Scheduled(cron = "0 0 0 * * *")
|
|
|
public void checkCommissionExpireTime() {
|
|
|
// TODO等级规则
|
|
|
List<PartnerRuleEntity> partnerRuleEntities = partnerRuleService.queryAll();
|
|
|
@@ -163,7 +152,7 @@ public class TimedTaskUtils {
|
|
|
}
|
|
|
System.out.println("开始时间:" + formatter.format(upgradeStartTime));
|
|
|
// 生成结束时间
|
|
|
- Date upgradeEndTime = PartnerDateUtils.addDays(upgradeStartTime, khDays);
|
|
|
+ Date upgradeEndTime = PartnerDateUtils.generateEndTime(upgradeStartTime, khDays);
|
|
|
System.out.println("结束时间:" + formatter.format(upgradeEndTime));
|
|
|
if (PartnerDateUtils.isSameDay(upgradeEndTime)){
|
|
|
// TODO考核条件 不满足时需锁定
|
|
|
@@ -172,14 +161,11 @@ public class TimedTaskUtils {
|
|
|
if (!checked){
|
|
|
//TODO 不满足
|
|
|
commissionUtils.generateLockRecords(partnerUser);
|
|
|
- }else {
|
|
|
- // TODO 满足
|
|
|
- partnerUser.setExpiredTime(PartnerDateUtils.addDaysToday(upgradeEndTime,khDays + 1));
|
|
|
- partnerUserMapper.updateById(partnerUser);
|
|
|
}
|
|
|
//TODO 更新考核周期
|
|
|
- partnerUserMapper.updateUpgradeCycleStartTime(partnerUser.getUserId(), PartnerDateUtils.addDaysToday(upgradeEndTime, 1),partnerUser.getGrade());
|
|
|
+ partnerUserMapper.updateUpgradeCycleStartTime(partnerUser.getUserId(), PartnerDateUtils.addDaysToday(upgradeEndTime,1),partnerUser.getGrade());
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
List<String> idList = partnerUsers.stream()
|
|
|
.map(PartnerUser::getId)
|
|
|
@@ -190,6 +176,7 @@ public class TimedTaskUtils {
|
|
|
|
|
|
public void update(List<PartnerRuleEntity> partnerRuleEntities,List<String> idList){
|
|
|
QueryWrapper<PartnerUser> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("identity_status", 0);
|
|
|
queryWrapper.in("grade", 2,3,4);
|
|
|
queryWrapper.orderByDesc("create_time");
|
|
|
queryWrapper.notIn("id", idList);
|