运营端充值 分账修改

This commit is contained in:
张松
2025-10-30 10:23:19 +08:00
parent cb5f006c22
commit 96ecb86d42
6 changed files with 66 additions and 46 deletions

View File

@@ -1,13 +1,22 @@
package com.czg.task;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import com.czg.account.entity.ShopInfo;
import com.czg.account.entity.ShopUser;
import com.czg.account.service.ShopInfoService;
import com.czg.account.service.ShopUserService;
import com.czg.constant.TableValueConstant;
import com.czg.market.entity.MkDistributionDeliver;
import com.czg.market.entity.MkDistributionFlow;
import com.czg.market.service.MkBirthdayGiftService;
import com.czg.market.service.MkDistributionDeliverService;
import com.czg.market.service.MkDistributionFlowService;
import com.czg.market.service.MkDistributionUserService;
import com.czg.order.entity.OrderInfo;
import com.czg.order.service.OrderInfoService;
import com.czg.service.market.enums.OrderStatusEnums;
import com.czg.utils.FunUtils;
import com.mybatisflex.core.query.QueryWrapper;
import jakarta.annotation.Resource;
@@ -28,9 +37,13 @@ public class DistributionTask {
private MkDistributionDeliverService distributionDeliverService;
@Resource
private MkDistributionUserService distributionUserService;
@Resource
private MkDistributionFlowService distributionFlowService;
@DubboReference
private OrderInfoService orderInfoService;
@DubboReference
private ShopInfoService shopInfoService;
/**
* 生日有礼奖励发放
@@ -38,18 +51,24 @@ public class DistributionTask {
*/
// @Scheduled(cron = "0 0 0 * * ?")
public void deliver() {
distributionDeliverService.list(new QueryWrapper().eq(MkDistributionDeliver::getStatus, "pending")).forEach(item -> {
distributionFlowService.list(new QueryWrapper().ge(MkDistributionFlow::getDeliverTime, DateUtil.date())
.eq(MkDistributionFlow::getStatus, TableValueConstant.DistributionFlow.Status.PENDING.getCode())).forEach(item -> {
FunUtils.safeRunVoid(() -> {
log.info("开始处理延时分账, orderNo: {}, 类型: {}", item.getOrderNo(), item.getType());
log.info("开始处理延时分账, id: {}, orderNo: {}, 类型: {}", item.getId(), item.getOrderNo(), item.getType());
OrderInfo orderInfo = orderInfoService.getOne(new QueryWrapper().eq(OrderInfo::getOrderNo, item.getOrderNo()));
if (orderInfo == null) {
log.warn("订单不存在, 订单号: {}", item.getOrderNo());
return;
}
distributionUserService.distribute(orderInfo.getId(), orderInfo.getOrderNo(), orderInfo.getPayAmount(), orderInfo.getUserId(), orderInfo.getShopId(), "order", true);
item.setStatus("success");
distributionDeliverService.updateById(item);
if (CollUtil.newArrayList(OrderStatusEnums.REFUND.getCode(), OrderStatusEnums.REFUNDING.getCode(), OrderStatusEnums.PART_REFUND.getCode()).contains(orderInfo.getStatus())) {
log.warn("订单已退款, 订单号: {}", item.getOrderNo());
item.setStatus(TableValueConstant.DistributionFlow.Status.REFUND.getCode());
}else {
item.setStatus(TableValueConstant.DistributionFlow.Status.SUCCESS.getCode());
distributionUserService.updateShopInfoAmount(orderInfo.getShopId(), item.getRewardAmount(), orderInfo.getId());
}
distributionFlowService.updateById(item);
});
});
}