From 4196b93e01b92cded16ffa7a634b0ac30a9b2c6b Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Thu, 07 Dec 2023 14:55:12 +0800 Subject: [PATCH] 用户留言 --- src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 95 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 93 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java index e061508..3f4d33c 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java @@ -60,6 +60,10 @@ private final MallScoreAchieveReleaseMapper mallScoreAchieveReleaseMapper; private final MallScoreVoucherMapper mallScoreVoucherMapper; private final CommonService commonService; + private final MallProductBuyRecordMapper mallProductBuyRecordMapper; + private final MallProductBuyMapper mallProductBuyMapper; + private final MallProductSellMapper mallProductSellMapper; + private final MallProductSellRecordMapper mallProductSellRecordMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -1125,8 +1129,8 @@ BigDecimal divide = fcmDestoryCntAdd.divide(AppContants.FCM_BASIC, 0, BigDecimal.ROUND_DOWN); if(BigDecimal.ZERO.compareTo(divide) == 0){ commonService.updateDataDic( - DataDictionaryEnum.BANK_TRANS_URL.getType(), - DataDictionaryEnum.BANK_TRANS_URL.getCode(), + DataDictionaryEnum.FCM_DESTORY_CNT.getType(), + DataDictionaryEnum.FCM_DESTORY_CNT.getCode(), fcmDestoryCntAdd.toString()); } @@ -1163,6 +1167,93 @@ } } + @Override + public void fcmOrderSellInsureMsg(Long sellRecordId) { + /** + * 买单确认 + * 判断买单是否存在、是否已支付 + * 判断买单是否存在、是否已支付 + * 更新卖单状态 + * 更新买单状态 + */ + MallProductSellRecord mallProductSellRecord = mallProductSellRecordMapper.selectById(sellRecordId); + if(ObjectUtil.isEmpty(mallProductSellRecord)){ + return; + } + Integer state = mallProductSellRecord.getState(); + if(ProductEnum.PRODUCT_MATE_STATE_CONFIRM.getValue() != state){ + return; + } + MallProductBuyRecord mallProductBuyRecord = mallProductBuyRecordMapper.selectById(mallProductSellRecord.getBuyRecordId()); + if(ObjectUtil.isEmpty(mallProductBuyRecord)){ + return; + } + Integer stateBuy = mallProductBuyRecord.getState(); + if(ProductEnum.PRODUCT_MATE_STATE_CONFIRM.getValue() != stateBuy){ + return; + } + mallProductSellRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FINISH.getValue()); + mallProductSellRecordMapper.updateById(mallProductSellRecord); + mallProductBuyRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FINISH.getValue()); + mallProductBuyRecordMapper.updateById(mallProductBuyRecord); + Long sellId = mallProductSellRecord.getSellId(); + + //已完成的买单 + List<MallProductSellRecord> mallProductSellRecords = mallProductSellRecordMapper.selectListBySellId(sellId,ProductEnum.PRODUCT_MATE_STATE_FINISH.getValue()); + if(CollUtil.isNotEmpty(mallProductSellRecords)){ + //实际支付总数 + BigDecimal nftCntTotal = mallProductSellRecords.stream().map(MallProductSellRecord::getNftCnt).reduce(BigDecimal.ZERO, BigDecimal::add); + MallProductSell mallProductSell = mallProductSellMapper.selectById(sellId); + if(nftCntTotal.compareTo(mallProductSell.getNftCnt()) >= 0){ + mallProductSell.setState(ProductEnum.PRODUCT_SELL_SUCCESS.getValue()); + mallProductSellMapper.updateById(mallProductSell); + } + } + + + Long buyId = mallProductBuyRecord.getBuyId(); + List<MallProductBuyRecord> mallProductBuyRecords = mallProductBuyRecordMapper.selectListByBuyId(buyId,ProductEnum.PRODUCT_MATE_STATE_FINISH.getValue()); + if(CollUtil.isNotEmpty(mallProductBuyRecords)){ + //实际支付总数 + BigDecimal nftCntTotalBuy = mallProductBuyRecords.stream().map(MallProductBuyRecord::getPickNftCnt).reduce(BigDecimal.ZERO, BigDecimal::add); + MallProductBuy mallProductBuy = mallProductBuyMapper.selectById(buyId); + if(nftCntTotalBuy.compareTo(mallProductBuy.getNftTotal()) >= 0){ + mallProductBuy.setState(ProductEnum.PRODUCT_BUY_SUCCESS.getValue()); + mallProductBuy.setPayTime(DateUtil.date()); + mallProductBuyMapper.updateById(mallProductBuy); + } + } + } + + @Override + public void fcmOrderBuyCancelMsg(Long buyRecordId) { + MallProductBuyRecord mallProductBuyRecord = mallProductBuyRecordMapper.selectById(buyRecordId); + if(ProductEnum.PRODUCT_MATE_STATE_WAIT_PAY.getValue() != mallProductBuyRecord.getState()){ + return; + } + Long sellRecordId = mallProductBuyRecord.getSellRecordId(); + //更新买单子表的数据 + mallProductBuyRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FAIL.getValue()); + mallProductBuyRecordMapper.updateById(mallProductBuyRecord); + //更新买单主表 + MallProductBuy mallProductBuy = mallProductBuyMapper.selectById(mallProductBuyRecord.getBuyId()); + mallProductBuy.setNftAva(mallProductBuy.getNftAva().add(mallProductBuyRecord.getPickNftCnt())); + mallProductBuyMapper.updateById(mallProductBuy); + Long memberId = mallProductBuy.getMemberId(); + MallMember mallMember = mallMemberMapper.selectById(memberId); + mallMember.setIsFrozen(ProductEnum.MEMBER_FROZEN.getValue()); + mallMemberMapper.updateById(mallMember); + //更新卖单子表的数据 + 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); + } + public static void main(String[] args) { BigDecimal divide = new BigDecimal(12000).divide(new BigDecimal(10000), 0, BigDecimal.ROUND_DOWN); System.out.println(divide); -- Gitblit v1.9.1