package cc.mrbird.febs.mall.quartz;
|
|
import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
|
import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
|
import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
|
import cc.mrbird.febs.mall.entity.MallGoodsSku;
|
import cc.mrbird.febs.mall.entity.MallMember;
|
import cc.mrbird.febs.mall.entity.MallOrderInfo;
|
import cc.mrbird.febs.mall.entity.MallOrderItem;
|
import cc.mrbird.febs.mall.mapper.MallGoodsSkuMapper;
|
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
|
import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
|
import cc.mrbird.febs.mall.mapper.MallOrderItemMapper;
|
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
|
import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
|
import cc.mrbird.febs.mall.service.IMemberProfitService;
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateUtil;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.math.BigDecimal;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @author wzy
|
* @date 2022-06-15
|
**/
|
@Slf4j
|
@Component
|
public class OrderSettlementJob {
|
|
@Autowired
|
private MallOrderInfoMapper mallOrderInfoMapper;
|
|
@Autowired
|
private IApiMallMemberWalletService memberWalletService;
|
|
@Autowired
|
private IMallMoneyFlowService mallMoneyFlowService;
|
|
@Autowired
|
private MallMemberMapper mallMemberMapper;
|
|
@Autowired
|
private MallGoodsSkuMapper mallGoodsSkuMapper;
|
|
@Autowired
|
private IMemberProfitService memberProfitService;
|
|
/**
|
* 普通商品结算
|
*/
|
@Scheduled(cron = "0 0 0 * * ?")
|
public void normalGoodsSettlementJob() {
|
log.info("普通商品结算");
|
List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderInfoWithNormalGoods(DateUtil.offsetDay(new Date(), -10));
|
if (CollUtil.isEmpty(orderInfos)) {
|
return;
|
}
|
|
for (MallOrderInfo orderInfo : orderInfos) {
|
MallMember member = mallMemberMapper.selectById(orderInfo.getMemberId());
|
if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) {
|
continue;
|
}
|
|
for (MallOrderItem item : orderInfo.getItems()) {
|
MallGoodsSku sku = mallGoodsSkuMapper.selectById(item.getSkuId());
|
BigDecimal score = sku.getPresentPrice();
|
|
memberWalletService.add(score, member.getId(), "score");
|
mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue());
|
}
|
|
// 普通商品动态分红结算
|
memberProfitService.dynamicProfit(orderInfo.getId(), 1);
|
}
|
}
|
|
/**
|
* 自动确认收货
|
*/
|
@Scheduled(cron = "0 0 0 * * ?")
|
public void orderAutoConfirmJob() {
|
log.info("自动确认收货");
|
mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.offsetDay(new Date(), -7));
|
}
|
}
|