From 959bd76c3dd17ff7cb0b492c7568b8b54c09dee2 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Mon, 29 Jan 2024 23:42:27 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 56 +++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 41 insertions(+), 15 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java index a38156f..e7aa9be 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java @@ -23,6 +23,8 @@ import cc.mrbird.febs.pay.service.IXcxPayService; import cc.mrbird.febs.pay.util.WeixinServiceUtil; import cc.mrbird.febs.rabbit.producter.AgentProducer; +import cc.mrbird.febs.vip.service.IMallVipConfigBenefitsService; +import cc.mrbird.febs.vip.service.IMallVipConfigService; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; @@ -32,6 +34,7 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -86,6 +89,8 @@ private final MallMemberCouponMapper mallMemberCouponMapper; private final MallGoodsCouponMapper mallGoodsCouponMapper; private final CouponGoodsMapper couponGoodsMapper; + + private final IMallVipConfigService mallVipConfigService; @Override @Transactional(rollbackFor = Exception.class) @@ -145,6 +150,12 @@ orderItem.setSkuImage(mallGoods.getThumb()); orderItem.setState(1); + if (addOrderDto.getType() == 1) { + LambdaQueryWrapper<MallShoppingCart> delQuery = new LambdaQueryWrapper<>(); + delQuery.eq(MallShoppingCart::getGoodsId, item.getSkuId()) + .eq(MallShoppingCart::getMemberId, member.getId()); + mallShoppingCartMapper.delete(delQuery); + } total = total.add(amount); } else { MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(item.getSkuId()); @@ -201,14 +212,6 @@ //卷是否和商品绑定 Long skuGoodsId = sku.getGoodsId(); Long couponId = mallMemberCoupon.getCouponId(); - List<CouponGoods> couponGoods = couponGoodsMapper.selectByGoodIdAndCouponId(skuGoodsId, couponId); - if(ObjectUtil.isEmpty(couponGoods)){ - throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName()); - } -// Long goodsId = mallMemberCoupon.getGoodsId(); -// if(goodsId != sku.getGoodsId()){ -// throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName()); -// } MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(mallMemberCoupon.getCouponId()); if(ObjectUtil.isEmpty(mallGoodsCoupon)){ throw new FebsException(mallGoodsCoupon.getName()+"无法使用"); @@ -217,10 +220,26 @@ if(2 != stateCoupon){ throw new FebsException(mallGoodsCoupon.getName()+"无法使用"); } + List<CouponGoods> couponGoods = couponGoodsMapper.selectByGoodIdAndCouponId(skuGoodsId, couponId); + if(ObjectUtil.isEmpty(couponGoods)){ + throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName()); + } +// Long goodsId = mallMemberCoupon.getGoodsId(); +// if(goodsId != sku.getGoodsId()){ +// throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName()); +// } BigDecimal costAmount = mallGoodsCoupon.getCostAmount(); BigDecimal realAmount = mallGoodsCoupon.getRealAmount(); if(amount.compareTo(costAmount) >= 0){ - amount = (amount.subtract(realAmount).compareTo(BigDecimal.ZERO) > 0 ? amount.subtract(realAmount) : BigDecimal.ZERO); + Integer type = mallGoodsCoupon.getType(); + if(MallGoodsCoupon.TYPE_TWO == type){ + BigDecimal divideTime = amount.divide(costAmount, 0, BigDecimal.ROUND_DOWN);//累计减免次数 + BigDecimal multiply = divideTime.multiply(realAmount);//实际减免金额 + amount = (amount.subtract(multiply).compareTo(BigDecimal.ZERO) > 0 ? amount.subtract(multiply) : BigDecimal.ZERO); + } + if(MallGoodsCoupon.TYPE_ONE == type){ + amount = (amount.subtract(realAmount).compareTo(BigDecimal.ZERO) > 0 ? amount.subtract(realAmount) : BigDecimal.ZERO); + } orderItem.setMemberCouponId(memberCouponId); mallMemberCoupon.setState(2); mallMemberCouponMapper.updateById(mallMemberCoupon); @@ -282,6 +301,12 @@ return orderInfo.getId(); } + public static void main(String[] args) { + BigDecimal bigDecimal = new BigDecimal(980); + BigDecimal divide = bigDecimal.divide(new BigDecimal(100), 0, BigDecimal.ROUND_DOWN); + System.out.println(divide); + } + @Override @Transactional(rollbackFor = Exception.class) @@ -300,7 +325,11 @@ orderInfo.setCancelType(MallOrderInfo.CANCEL_BY_SELF); this.baseMapper.updateById(orderInfo); - + if (orderInfo.getOrderType() == 2) { +// mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue()); +// memberWalletService.add(orderInfo.getAmount(), member.getId(), "prizeScore"); + return; + } List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId()); if(CollUtil.isNotEmpty(mallOrderItemList)){ @@ -437,7 +466,7 @@ orderInfo.setPayTime(new Date()); orderInfo.setPayResult("1"); - mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue()); + mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), ScoreFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue(), null, 2); break; default: @@ -553,6 +582,7 @@ orderInfo.setReceivingTime(new Date()); this.baseMapper.updateById(orderInfo); + agentProducer.sendGetScoreMsg(orderInfo.getId()); //生成一条团长提成记录 // Long orderInfoId = orderInfo.getId(); // List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfoId); @@ -922,10 +952,6 @@ } return new FebsResponse().success(); - } - - public static void main(String[] args) { - System.out.print(AgentLevelEnum.ZERO_LEVEL.name()); } } -- Gitblit v1.9.1