From 9b51a95fa8bc9b3a86108c6900e17fc55f8db467 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 19 May 2025 17:02:07 +0800 Subject: [PATCH] refactor(vip): 优化积分和返佣计算逻辑 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java | 76 ++++++++++++++++++++++++++++--------- 1 files changed, 57 insertions(+), 19 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java index 5c133af..1d98e94 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java @@ -83,14 +83,20 @@ List<MallTeamLeader> mallTeamLeaderNo = this.baseMapper.selectListByMemberIdAndState(memberId, MallTeamLeader.STATE_NO); if(CollUtil.isNotEmpty(mallTeamLeaderNo)){ mallTeamLeaderAdd = mallTeamLeaderNo.get(0); - } - if(ObjectUtil.isNotEmpty(mallTeamLeaderAdd)){ - mallTeamLeaderAdd = MallTeamLeaderConversion.INSTANCE.dtoToEntity(apiApplayLeaderDto); - mallTeamLeaderAdd.setState(MallTeamLeader.STATE_ING); - //申请团长默认关闭返利,返利比例为0 - mallTeamLeaderAdd.setProfitSwitch(2); - mallTeamLeaderAdd.setBonusPercent("0"); - this.baseMapper.updateById(mallTeamLeaderAdd); + if(ObjectUtil.isNotEmpty(mallTeamLeaderAdd)){ + mallTeamLeaderAdd.setName(apiApplayLeaderDto.getName()); + mallTeamLeaderAdd.setPhone(apiApplayLeaderDto.getPhone()); + mallTeamLeaderAdd.setAddressPic(apiApplayLeaderDto.getAddressPic()); + mallTeamLeaderAdd.setAddressArea(apiApplayLeaderDto.getAddressArea()); + mallTeamLeaderAdd.setDetailAddress(apiApplayLeaderDto.getDetailAddress()); + mallTeamLeaderAdd.setLongitude(apiApplayLeaderDto.getLongitude()); + mallTeamLeaderAdd.setLatitude(apiApplayLeaderDto.getLatitude()); + mallTeamLeaderAdd.setState(MallTeamLeader.STATE_ING); + //申请团长默认关闭返利,返利比例为0 + mallTeamLeaderAdd.setProfitSwitch(2); + mallTeamLeaderAdd.setBonusPercent("0"); + this.baseMapper.updateById(mallTeamLeaderAdd); + } }else{ MallTeamLeader mallTeamLeader = MallTeamLeaderConversion.INSTANCE.dtoToEntity(apiApplayLeaderDto); mallTeamLeader.setMemberId(memberId); @@ -383,6 +389,10 @@ MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId); MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(itemId); + MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId()); + if(ObjectUtil.isEmpty(mallGoodsSku)){ + return new FebsResponse().fail().message("退款失败,请联系客服人员"); + } List<MallRefundEntity> mallRefundEntities = mallRefundMapper.selectByItemIdAndOrderIdAndState(itemId, orderId, 3); if(CollUtil.isEmpty(mallRefundEntities)){ return new FebsResponse().fail().message("退款失败,请联系客服人员"); @@ -410,11 +420,13 @@ //退款退款金额 BigDecimal refundAmount = mallRefundEntity.getAmount(); + refundAmount = refundAmount.add(mallOrderInfo.getCarriage()); BigDecimal bb = new BigDecimal(100); int refundMoney = refundAmount.multiply(bb).intValue(); //余额支付退款 if(mallRefundEntity.getType() == 3){ + log.info("余额支付退款"); //更新订单详情 mallOrderItem.setState(3); mallOrderItemMapper.updateById(mallOrderItem); @@ -423,8 +435,6 @@ mallGoods.setStock(mallGoods.getStock() + mallOrderItem.getCnt()); mallGoods.setVolume(mallGoods.getVolume() - mallOrderItem.getCnt()); mallGoodsMapper.updateById(mallGoods); - - MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId()); mallGoodsSku.setStock(mallGoodsSku.getStock() + mallOrderItem.getCnt()); mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - mallOrderItem.getCnt()); mallGoodsSkuMapper.updateById(mallGoodsSku); @@ -432,7 +442,6 @@ mallRefundEntity.setState(1); mallRefundEntity.setUpdatedTime(DateUtil.date()); mallRefundMapper.updateById(mallRefundEntity); - mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByNotInStateAndOrderId(3,orderId); if(CollUtil.isEmpty(mallOrderItemList)){ @@ -440,19 +449,38 @@ mallOrderRefund.setStatus(6); mallOrderInfoMapper.updateById(mallOrderRefund); } - memberWalletService.add(refundAmount, mallOrderInfo.getMemberId(), "balance"); + if(refundAmount.compareTo(BigDecimal.ZERO) > 0){ + memberWalletService.add(refundAmount, mallOrderInfo.getMemberId(), "balance"); + mallMoneyFlowService.addMoneyFlow( + mallOrderInfo.getMemberId(), + refundAmount, + ScoreFlowTypeEnum.REFUND.getValue(), + mallOrderInfo.getOrderNo(), + FlowTypeEnum.BALANCE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.REFUND.getDesc(),refundAmount), + 2 + ); + } return new FebsResponse().success().message("退款成功"); } Boolean flag = false; Boolean debug = xcxProperties.getDebug(); if (debug) { - boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, 1, 1, null); - flag = b; + if(refundAmount.compareTo(BigDecimal.ZERO) > 0){ + boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, 1, 1, null); + flag = b; + }else{ + flag = true; + } } else { - log.info("开始调用退款接口。。。退款编号为{}", refundNo); - boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, orderMoney, refundMoney, null); - flag = b; + if(refundAmount.compareTo(BigDecimal.ZERO) > 0){ + log.info("开始调用退款接口。。。退款编号为{}", refundNo); + boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, orderMoney, refundMoney, null); + flag = b; + }else{ + flag = true; + } } if(flag){ @@ -465,7 +493,7 @@ mallGoods.setVolume(mallGoods.getVolume() - mallOrderItem.getCnt()); mallGoodsMapper.updateById(mallGoods); - MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId()); +// MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId()); mallGoodsSku.setStock(mallGoodsSku.getStock() + mallOrderItem.getCnt()); mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - mallOrderItem.getCnt()); mallGoodsSkuMapper.updateById(mallGoodsSku); @@ -474,7 +502,17 @@ mallRefundEntity.setState(1); mallRefundEntity.setUpdatedTime(DateUtil.date()); mallRefundMapper.updateById(mallRefundEntity); - mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); + if(refundAmount.compareTo(BigDecimal.ZERO) > 0){ + mallMoneyFlowService.addMoneyFlow( + mallOrderInfo.getMemberId(), + refundAmount, + ScoreFlowTypeEnum.WECHAT_REFUND.getValue(), + mallOrderInfo.getOrderNo(), + FlowTypeEnum.BALANCE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.WECHAT_REFUND.getDesc(),refundAmount), + 2 + ); + } List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByNotInStateAndOrderId(3,orderId); if(CollUtil.isEmpty(mallOrderItemList)){ -- Gitblit v1.9.1