KKSU
2023-11-27 83b56237a9e0b379b46d31ab77def13226f33548
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -8,6 +8,7 @@
import cc.mrbird.febs.mall.service.*;
import cc.mrbird.febs.mall.vo.AdminMallMoneyFlowVo;
import cc.mrbird.febs.mall.vo.AdminTeamEqualsPerkVo;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
import cc.mrbird.febs.system.mapper.UserMapper;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
@@ -62,6 +63,7 @@
    private final MallProductSellMapper mallProductSellMapper;
    private final MallProductSellRecordMapper mallProductSellRecordMapper;
    private final MallProductNftMapper mallProductNftMapper;
    private final AgentProducer agentProducer;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -864,6 +866,90 @@
            }
        }
    }
    @Override
    public void timeGetOrderBuy() {
        DateTime nowTime = DateUtil.parseTime(DateUtil.formatTime(DateUtil.date()));
        DataDictionaryCustom endTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.YU_YUE_END_TIME.getType(),
                DataDictionaryEnum.YU_YUE_END_TIME.getCode()
        );
        DateTime endTime = DateUtil.parseTime(endTimeDic.getValue());
        /**
         * 当前时间比结束时间大
         */
        if(nowTime.compareTo(endTime) >= 0){
            List<MallProductBuyRecord> mallProductBuyRecords = mallProductBuyRecordMapper.selectByState(ProductEnum.PRODUCT_MATE_STATE_WAIT_PAY.getValue());
            if(CollUtil.isNotEmpty(mallProductBuyRecords)){
                for(MallProductBuyRecord mallProductBuyRecord : mallProductBuyRecords){
                    /**
                     * 用户有超时未支付的订单
                     * 1、冻结账户
                     * 2、更新买单主表
                     * 2、更新卖单主表
                     * 3、更新买单子表的数据
                     * 3、更新卖单子表的数据
                     */
                    agentProducer.sendFcmOrderBuyCancelMsg(mallProductBuyRecord.getId());
//                    Long buyId = mallProductBuyRecord.getBuyId();
//                    Long sellRecordId = mallProductBuyRecord.getSellRecordId();
//                    MallProductBuy mallProductBuy = mallProductBuyMapper.selectById(buyId);
//                    Long memberIdBuy = mallProductBuy.getMemberId();
//                    //冻结账户
//                    MallMember mallMemberBuy = memberMapper.selectById(memberIdBuy);
//                    mallMemberBuy.setIsFrozen(ProductEnum.MEMBER_FROZEN.getValue());
//                    memberMapper.updateById(mallMemberBuy);
//                    //更新买单子表的数据
//                    mallProductBuyRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FAIL.getValue());
//                    mallProductBuyRecordMapper.updateById(mallProductBuyRecord);
//                    //更新买单主表
//                    mallProductBuy.setNftAva(mallProductBuy.getNftAva().add(mallProductBuyRecord.getPickNftCnt()));
//                    mallProductBuyMapper.updateById(mallProductBuy);
//                    //更新卖单子表的数据
//                    MallProductSellRecord mallProductSellRecord = mallProductSellRecordMapper.selectById(sellRecordId);
//                    mallProductSellRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FAIL.getValue());
//                    mallProductSellRecordMapper.updateById(mallProductSellRecord);
//                    //更新卖单主表
//                    Long sellId = mallProductSellRecord.getSellId();
//                    MallProductSell mallProductSell = mallProductSellMapper.selectById(sellId);
//                    mallProductSell.setNftCntAva(mallProductSell.getNftCntAva().add(mallProductSellRecord.getNftCnt()));
//                    mallProductSellMapper.updateById(mallProductSell);
                }
            }
        }
    }
    @Override
    public void timeGetOrderSell() {
        DateTime nowTime = DateUtil.parseTime(DateUtil.formatTime(DateUtil.date()));
        DataDictionaryCustom endTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.YU_YUE_END_TIME.getType(),
                DataDictionaryEnum.YU_YUE_END_TIME.getCode()
        );
        DateTime endTime = DateUtil.parseTime(endTimeDic.getValue());
        /**
         * 当前时间比结束时间大
         */
        if(nowTime.compareTo(endTime) >= 0){
            List<MallProductSellRecord> mallProductSellRecords = mallProductSellRecordMapper.selectListByState(ProductEnum.PRODUCT_MATE_STATE_PAY.getValue());
            if(CollUtil.isNotEmpty(mallProductSellRecords)){
                for(MallProductSellRecord mallProductSellRecord : mallProductSellRecords){
                    /**
                     * 卖方
                     * 1:冻结账户
                     */
                    Long sellId = mallProductSellRecord.getSellId();
                    MallProductSell mallProductSell = mallProductSellMapper.selectById(sellId);
                    MallMember mallMember = memberMapper.selectById(mallProductSell.getMemberId());
                    mallMember.setIsFrozen(ProductEnum.MEMBER_FROZEN.getValue());
                    memberMapper.updateById(mallMember);
                }
            }
        }
    }
    public void insertSell(Long memberId,BigDecimal nftCnt,BigDecimal nftCntAva,
                           BigDecimal nftFee,BigDecimal fcmFeeCnt){
        String orderNo = MallUtils.getOrderNum("NFT");