From 097f92827a7f6896dd2861ee83dcfed9204f1abc Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 05 Sep 2022 17:27:03 +0800 Subject: [PATCH] 20220902 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 48 ++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 42 insertions(+), 6 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 917b67b..b45cace 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 @@ -85,6 +85,11 @@ throw new FebsException("请选择自提点"); } + MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode); + if(ObjectUtil.isEmpty(mallTeamLeader)){ + throw new FebsException("请重新选择团长"); + } + String orderNo = MallUtils.getOrderNum(); MallOrderInfo orderInfo = new MallOrderInfo(); orderInfo.setOrderNo(orderNo); @@ -187,9 +192,9 @@ BigDecimal delivaryAmount = addOrderDto.getDeliveryAmount() == null ? BigDecimal.ZERO : addOrderDto.getDeliveryAmount(); if(BigDecimal.ZERO.compareTo(delivaryAmount) < 0 && 1 == addOrderDto.getIsHome()){ total = total.add(delivaryAmount); + orderInfo.setCarriage(delivaryAmount); } orderInfo.setAmount(total); - orderInfo.setCarriage(carriage); MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId()); orderInfo.setName(address.getName()); @@ -227,6 +232,23 @@ orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue()); orderInfo.setCancelType(MallOrderInfo.CANCEL_BY_SELF); this.baseMapper.updateById(orderInfo); + List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id); + if(CollUtil.isNotEmpty(mallOrderItemList)){ + for(MallOrderItem mallOrderItem : mallOrderItemList){ + Long goodsId = mallOrderItem.getGoodsId(); + Long skuId = mallOrderItem.getSkuId(); + Integer cnt = mallOrderItem.getCnt(); + MallGoods mallGoods = mallGoodsMapper.selectById(goodsId); + mallGoods.setVolume(mallGoods.getVolume() - cnt); + mallGoods.setStock(mallGoods.getStock() + cnt); + mallGoodsMapper.updateById(mallGoods); + + MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(skuId); + mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - cnt); + mallGoodsSku.setStock(mallGoodsSku.getStock() + cnt); + mallGoodsSkuMapper.updateById(mallGoodsSku); + } + } } /** @@ -491,7 +513,8 @@ MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve(); mallLeaderAchieve.setMemberId(orderInfo.getMemberId()); mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo()); - mallLeaderAchieve.setAmount(orderInfo.getAmount()); + BigDecimal subtract = orderInfo.getAmount().subtract(orderInfo.getCarriage() == null ? BigDecimal.ZERO : orderInfo.getCarriage()); + mallLeaderAchieve.setAmount(subtract); mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode()); mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE); mallLeaderAchieveMapper.insert(mallLeaderAchieve); @@ -714,6 +737,21 @@ BigDecimal bb = new BigDecimal(100); int refundMoney = refundAmount.multiply(bb).intValue(); + Long refundId = mallRefundEntity.getId(); + MallRefundEntity mallRefundOld = mallRefundMapper.selectById(refundId); + MallOrderInfo mallOrderInfoOld = this.baseMapper.selectByOrderNo(orderNo); + //余额支付退款 + if(OrderPayMethodEnum.BALANCE.getName().equals(mallOrderInfo.getPayMethod())){ + mallRefundOld.setState(1); + mallRefundMapper.updateById(mallRefundOld); + mallOrderInfoOld.setStatus(OrderStatusEnum.REFUNDED.getValue()); + this.baseMapper.updateById(mallOrderInfoOld); + mallMoneyFlowService.addMoneyFlow(mallOrderInfoOld.getMemberId(), mallOrderInfoOld.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); + memberWalletService.add(refundAmount, member.getId(), "balance"); + mallOrderItemMapper.updateStateByOrderId(3,mallOrderInfoOld.getId()); + return new FebsResponse().success().message("退款成功"); + } + Boolean flag = false; Boolean debug = xcxProperties.getDebug(); if (debug) { @@ -729,14 +767,12 @@ * 更新退款表 * 更新订单表 */ - Long refundId = mallRefundEntity.getId(); - MallRefundEntity mallRefundOld = mallRefundMapper.selectById(refundId); - MallOrderInfo mallOrderInfoOld = this.baseMapper.selectByOrderNo(orderNo); if(flag){ mallRefundOld.setState(1); mallRefundMapper.updateById(mallRefundOld); mallOrderInfoOld.setStatus(OrderStatusEnum.REFUNDED.getValue()); this.baseMapper.updateById(mallOrderInfoOld); + mallOrderItemMapper.updateStateByOrderId(3,mallOrderInfoOld.getId()); mallMoneyFlowService.addMoneyFlow(mallOrderInfoOld.getMemberId(), mallOrderInfoOld.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); }else{ mallRefundOld.setState(2); @@ -778,7 +814,7 @@ mallRefundEntity.setRefundPic(applyRefundOrderDto.getRefundPic()); mallRefundEntity.setMemberId(member.getId()); mallRefundEntity.setState(3); - mallRefundEntity.setType(1); + mallRefundEntity.setType(applyRefundOrderDto.getType()); mallRefundEntity.setOrderId(orderId); mallRefundEntity.setAmount(mallOrderItem.getAmount()); mallRefundMapper.insert(mallRefundEntity); -- Gitblit v1.9.1