From 63b5728cd6348f37cd95e21680e0a066956c641c Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 02 Jan 2024 15:36:56 +0800 Subject: [PATCH] 修改推荐人 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 87 ++++++++++++++++++++++++++++++------------- 1 files changed, 61 insertions(+), 26 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 71bd4b8..a38156f 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 @@ -45,6 +45,7 @@ import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; /** * @author wzy @@ -82,6 +83,9 @@ private final IApiMallTeamLeaderService iApiMallTeamLeaderService; private final IMallElectronicFenceService iMallElectronicFenceService; private final MallElectronicFenceMapper mallElectronicFenceMapper; + private final MallMemberCouponMapper mallMemberCouponMapper; + private final MallGoodsCouponMapper mallGoodsCouponMapper; + private final CouponGoodsMapper couponGoodsMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -181,15 +185,47 @@ if(1 != goodsResult){ throw new FebsException(mallGoods.getGoodsName() + "库存不足"); } - BigDecimal amount = BigDecimal.ZERO; - if(AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())){ - //普通用户使用原价购买 - amount = sku.getOriginalPrice().multiply(BigDecimal.valueOf(item.getCnt())); - }else{ - //合伙人使用折扣价 - amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(item.getCnt())); + + BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(item.getCnt())); + //是否使用优惠卷 + if(ObjectUtil.isNotEmpty(addOrderDto.getMemberCouponId())){ + Long memberCouponId = addOrderDto.getMemberCouponId(); + MallMemberCoupon mallMemberCoupon = mallMemberCouponMapper.selectById(memberCouponId); + if(ObjectUtil.isEmpty(mallMemberCoupon)){ + throw new FebsException(mallMemberCoupon.getCouponName()+"无法使用"); + } + Integer state = mallMemberCoupon.getState(); + if(1 != state){ + throw new FebsException(mallMemberCoupon.getCouponName()+"无法使用"); + } + //卷是否和商品绑定 + 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()+"无法使用"); + } + Integer stateCoupon = mallGoodsCoupon.getState(); + if(2 != stateCoupon){ + throw new FebsException(mallGoodsCoupon.getName()+"无法使用"); + } + 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); + orderItem.setMemberCouponId(memberCouponId); + mallMemberCoupon.setState(2); + mallMemberCouponMapper.updateById(mallMemberCoupon); + } } -// BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(item.getCnt())); orderItem.setAmount(amount); orderItem.setCnt(item.getCnt()); orderItem.setOrderId(orderInfo.getId()); @@ -198,6 +234,13 @@ orderItem.setGoodsName(sku.getGoodsName()); orderItem.setSkuId(sku.getId()); orderItem.setState(1); + if(ObjectUtil.isNotEmpty(member.getReferrerId())){ + orderItem.setMemberInviteId(member.getReferrerId()); + } + if(ObjectUtil.isNotEmpty(addOrderDto.getMemberInviteId())){ + orderItem.setMemberInviteId(addOrderDto.getMemberInviteId()); + } + orderItem.setStyleName(sku.getStyleName()); orderItem.setSkuName(sku.getSkuName()); orderItem.setSkuImage(sku.getSkuImage()); @@ -280,6 +323,12 @@ Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt()); if(1 != skuResult){ throw new FebsException(sku.getSkuName() + "库存不足"); + } + Long memberCouponId = mallOrderItem.getMemberCouponId(); + MallMemberCoupon mallMemberCoupon = mallMemberCouponMapper.selectById(memberCouponId); + if(ObjectUtil.isNotEmpty(mallMemberCoupon)){ + mallMemberCoupon.setState(1); + mallMemberCouponMapper.updateById(mallMemberCoupon); } } } @@ -372,7 +421,9 @@ orderInfo.setPayResult("1"); orderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue()); - mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); + mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue(),"余额支付",2); + + agentProducer.sendOrderCoupon(orderInfo.getId()); break; case "4": if (orderInfo.getOrderType() != 2) { @@ -397,22 +448,6 @@ this.baseMapper.updateById(orderInfo); - - -// OrderStateDto orderStateDto = new OrderStateDto(); -// orderStateDto.setOrderNo(orderInfo.getOrderNo()); -// String productNames = getProductNames(orderInfo.getMemberId(), orderInfo.getId()); -// orderStateDto.setGoodsName(StrUtil.isEmpty(productNames)?"商品":productNames); -// orderStateDto.setOrderState("已送达自提点"); -// orderStateDto.setTakeCode(orderInfo.getTakeCode()); -// String takeUniqueCode = orderInfo.getTakeUniqueCode(); -// MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode); -// orderStateDto.setAddressArea(mallTeamLeader.getAddressArea()); -// orderStateDto.setOpenId(mallMemberMapper.selectById(orderInfo.getMemberId()).getOpenId()); -// DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getType(), DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getCode()); -// orderStateDto.setTemplateId(dataDictionaryCustom.getValue()); -//// iXcxPayService.pushOrderToAddress(orderStateDto); -// iXcxPayService.uniformMessageSend(orderStateDto); Map<String, Object> map = new HashMap<>(); map.put("orderInfo", payResultStr); map.put("orderNo", orderInfo.getOrderNo()); @@ -436,7 +471,7 @@ throw new FebsException("支付密码错误"); } - int reduce = memberWalletService.reduce(orderInfo.getAmount().add(orderInfo.getCarriage()), mallMember.getId(), field); + int reduce = memberWalletService.reduce(orderInfo.getAmount(), mallMember.getId(), field); if (reduce == 2) { throw new FebsException("余额不足"); } -- Gitblit v1.9.1