From 1f09f6daaf73bc83cceb4ae22b862b7b365635cf Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 03 四月 2025 19:59:17 +0800 Subject: [PATCH] 修改反馈文档bug --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java | 152 ++++++++++++++++++++++---------------------------- 1 files changed, 66 insertions(+), 86 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java index d4e8d6f..a6dc9fb 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java @@ -14,6 +14,7 @@ import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.order.event.PayEvent; import com.ruoyi.order.mapper.ShoppingCartMapper; import com.ruoyi.order.model.Order; import com.ruoyi.order.model.OrderBalancePayment; @@ -31,6 +32,7 @@ import com.ruoyi.other.api.vo.GetGoodsShopByGoodsIds; import com.ruoyi.other.api.vo.GetSeckillActivityInfo; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationEventPublisher; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; @@ -108,12 +110,6 @@ private CommissionService commissionService; @Resource - private VipSettingClient vipSettingClient; - - @Resource - private UserChangeLogClient userChangeLogClient; - - @Resource private PointSettingClient pointSettingClient; @Resource @@ -121,6 +117,9 @@ @Resource private RedisTemplate redisTemplate; + + @Resource + private ApplicationEventPublisher applicationEventPublisher; @@ -451,14 +450,12 @@ BigDecimal bigDecimal = BigDecimal.ZERO; for (MyShoppingCartVo myShoppingCartVo : goodsList) { bigDecimal = bigDecimal.add(myShoppingCartVo.getCash().multiply(new BigDecimal(myShoppingCartVo.getNumber()))); - myShoppingCartVo.setEarnSpendingPoints(myShoppingCartVo.getEarnSpendingPoints() * myShoppingCartVo.getNumber()); } confirmOrderVo.setOrderMoney(bigDecimal); }else{ int sum = 0; for (MyShoppingCartVo myShoppingCartVo : goodsList) { sum += ((null != myShoppingCartVo.getPoint() ? myShoppingCartVo.getPoint() : 0) * myShoppingCartVo.getNumber()); - myShoppingCartVo.setEarnSpendingPoints((null != myShoppingCartVo.getEarnSpendingPoints() ? myShoppingCartVo.getEarnSpendingPoints() : 0) * myShoppingCartVo.getNumber()); } confirmOrderVo.setOrderPoint(sum); } @@ -467,7 +464,6 @@ BigDecimal paymentMoney = orderMoney; //总优惠金额 BigDecimal activityAmount = BigDecimal.ZERO; - BaseSetting baseSetting = baseSettingClient.getBaseSetting(4).getData(); confirmOrderVo.setUseSimultaneously(JSON.parseObject(baseSetting.getContent()).getInteger("status") == 1); @@ -506,7 +502,7 @@ BigDecimal goodsMoney = BigDecimal.ZERO; for (MyShoppingCartVo myShoppingCartVo : goodsList) { String goodsId = myShoppingCartVo.getGoodsId().toString(); - BigDecimal cash = myShoppingCartVo.getCash(); + BigDecimal cash = myShoppingCartVo.getCash().multiply(new BigDecimal(myShoppingCartVo.getNumber())); if(parseArray.contains(goodsId)){ goodsMoney = goodsMoney.add(cash); }else{ @@ -717,18 +713,18 @@ vo.setPurchaseLimitNum(goods.getPurchaseLimit() - sum); } vo.setDistributionMode(goods.getDistributionMode()); - vo.setEarnSpendingPoints(price.getEarnSpendingPoints()); - vo.setSuperiorSubcommission(price.getSuperiorSubcommission()); - vo.setSuperiorRebatePoints(price.getSuperiorRebatePoints()); + vo.setEarnSpendingPoints(price.getEarnSpendingPoints() * shoppingCart.getNumber()); + vo.setSuperiorSubcommission(price.getSuperiorSubcommission().multiply(new BigDecimal(shoppingCart.getNumber()))); + vo.setSuperiorRebatePoints(price.getSuperiorRebatePoints() * shoppingCart.getNumber()); vo.setSuperiorType(price.getSuperiorType()); vo.setSuperiorPriceType(price.getSuperiorPriceType()); - vo.setServuceShopCharges(price.getServuceShopCharges()); - vo.setServuceShopPoints(price.getServuceShopPoints()); - vo.setTechnicianPoints(price.getTechnicianPoints()); - vo.setBoundShopCharges(price.getBoundShopCharges()); - vo.setBoundShopPoints(price.getBoundShopPoints()); - vo.setBoundShopSuperiorsCharges(price.getBoundShopSuperiorsCharges()); - vo.setBoundShopSuperiorsPoints(price.getBoundShopSuperiorsPoints()); + vo.setServuceShopCharges(price.getServuceShopCharges().multiply(new BigDecimal(shoppingCart.getNumber()))); + vo.setServuceShopPoints(price.getServuceShopPoints() * shoppingCart.getNumber()); + vo.setTechnicianPoints(price.getTechnicianPoints() * shoppingCart.getNumber()); + vo.setBoundShopCharges(price.getBoundShopCharges().multiply(new BigDecimal(shoppingCart.getNumber()))); + vo.setBoundShopPoints(price.getBoundShopPoints() * shoppingCart.getNumber()); + vo.setBoundShopSuperiorsCharges(price.getBoundShopSuperiorsCharges().multiply(new BigDecimal(shoppingCart.getNumber()))); + vo.setBoundShopSuperiorsPoints(price.getBoundShopSuperiorsPoints() * shoppingCart.getNumber()); page.add(vo); } return page; @@ -887,7 +883,7 @@ BigDecimal goodsMoney = BigDecimal.ZERO; for (MyShoppingCartVo myShoppingCartVo : goodsList) { String goodsId = myShoppingCartVo.getGoodsId().toString(); - BigDecimal cash = myShoppingCartVo.getCash(); + BigDecimal cash = myShoppingCartVo.getCash().multiply(new BigDecimal(myShoppingCartVo.getNumber())); if(parseArray.contains(goodsId)){ goodsMoney = goodsMoney.add(cash); }else{ @@ -951,7 +947,7 @@ //可获得的消费积分 int earnPoint = 0; for (MyShoppingCartVo myShoppingCartVo : goodsList) { - earnPoint += (myShoppingCartVo.getEarnSpendingPoints() * myShoppingCartVo.getNumber()); + earnPoint += myShoppingCartVo.getEarnSpendingPoints(); } //获取快递策略,计算快递费 @@ -979,6 +975,7 @@ } } } + paymentMoney = paymentMoney.add(expressFee); if(BigDecimal.ZERO.compareTo(paymentMoney) > 0){ paymentMoney = BigDecimal.ZERO; } @@ -1153,13 +1150,12 @@ if(earnPoint > 0){ UserPoint userPoint = new UserPoint(); userPoint.setType(1); - userPoint.setHistoricalPoint(lavePoint); userPoint.setVariablePoint(earnPoint); - userPoint.setBalance(appUser.getLavePoint()); userPoint.setCreateTime(LocalDateTime.now()); userPoint.setAppUserId(appUser.getId()); userPoint.setObjectId(order.getId()); userPoint.setExtention(jsonObject.toJSONString()); + userPoint.setChangeDirection(1); userPointClient.saveUserPoint(userPoint); } } @@ -1167,7 +1163,7 @@ appUser.setLastShopTime(LocalDateTime.now()); appUserClient.editAppUserById(appUser); //变更等级 - appUserClient.vipUpgrade(appUser.getId()); + applicationEventPublisher.publishEvent(new PayEvent(JSON.toJSONString(appUser))); //修改订支付状态 order.setPayStatus(2); //自提 @@ -1204,33 +1200,36 @@ BigDecimal balance = appUser.getBalance(); //红包金额满足支付 BigDecimal paymentMoney1 = paymentMoney; - if(paymentMoney1.compareTo(totalRedPacketAmount) <= 0){ - totalRedPacketAmount = totalRedPacketAmount.subtract(paymentMoney1); - balance = balance.subtract(paymentMoney1); - appUser.setTotalRedPacketAmount(totalRedPacketAmount); - appUser.setBalance(balance); - redPacketAmount = paymentMoney1; - }else{ - paymentMoney1 = paymentMoney1.subtract(totalRedPacketAmount); - redPacketAmount = totalRedPacketAmount; - totalRedPacketAmount = BigDecimal.ZERO; - if(paymentMoney1.compareTo(totalDistributionAmount) <= 0){ - totalDistributionAmount = totalDistributionAmount.subtract(paymentMoney1); - balance = balance.subtract(paymentMoney1); - appUser.setTotalRedPacketAmount(totalRedPacketAmount); -// appUser.setTotalDistributionAmount(totalDistributionAmount); - appUser.setBalance(balance); - distributionAmount = paymentMoney1; - }else{ - paymentMoney1 = paymentMoney1.subtract(totalDistributionAmount); - totalDistributionAmount = BigDecimal.ZERO; - balance = balance.subtract(paymentMoney1); - appUser.setTotalRedPacketAmount(totalRedPacketAmount); -// appUser.setTotalDistributionAmount(totalDistributionAmount); - appUser.setBalance(balance); - distributionAmount = totalDistributionAmount; - } - } + balance = balance.subtract(paymentMoney1); + appUser.setBalance(balance); + +// if(paymentMoney1.compareTo(totalRedPacketAmount) <= 0){ +// totalRedPacketAmount = totalRedPacketAmount.subtract(paymentMoney1); +// balance = balance.subtract(paymentMoney1); +// appUser.setTotalRedPacketAmount(totalRedPacketAmount); +// appUser.setBalance(balance); +// redPacketAmount = paymentMoney1; +// }else{ +// paymentMoney1 = paymentMoney1.subtract(totalRedPacketAmount); +// redPacketAmount = totalRedPacketAmount; +// totalRedPacketAmount = BigDecimal.ZERO; +// if(paymentMoney1.compareTo(totalDistributionAmount) <= 0){ +//// totalDistributionAmount = totalDistributionAmount.subtract(paymentMoney1); +// balance = balance.subtract(paymentMoney1); +// appUser.setTotalRedPacketAmount(totalRedPacketAmount); +//// appUser.setTotalDistributionAmount(totalDistributionAmount); +// appUser.setBalance(balance); +// distributionAmount = paymentMoney1; +// }else{ +// paymentMoney1 = paymentMoney1.subtract(totalDistributionAmount); +// totalDistributionAmount = BigDecimal.ZERO; +// balance = balance.subtract(paymentMoney1); +// appUser.setTotalRedPacketAmount(totalRedPacketAmount); +//// appUser.setTotalDistributionAmount(totalDistributionAmount); +// appUser.setBalance(balance); +// distributionAmount = totalDistributionAmount; +// } +// } //构建积分流水记录 if(earnPoint > 0){ PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData(); @@ -1255,13 +1254,12 @@ if(earnPoint > 0){ UserPoint userPoint = new UserPoint(); userPoint.setType(1); - userPoint.setHistoricalPoint(appUser.getLavePoint() - earnPoint); userPoint.setVariablePoint(earnPoint); - userPoint.setBalance(appUser.getLavePoint()); userPoint.setCreateTime(LocalDateTime.now()); userPoint.setAppUserId(appUser.getId()); userPoint.setObjectId(order.getId()); userPoint.setExtention(jsonObject.toJSONString()); + userPoint.setChangeDirection(1); userPointClient.saveUserPoint(userPoint); } } @@ -1269,18 +1267,17 @@ appUser.setLastShopTime(LocalDateTime.now()); appUserClient.editAppUserById(appUser); //变更等级 - appUserClient.vipUpgrade(appUser.getId()); + applicationEventPublisher.publishEvent(new PayEvent(JSON.toJSONString(appUser))); //构建余额明细变动记录 BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord(); balanceChangeRecord.setAppUserId(appUser.getId()); balanceChangeRecord.setVipId(appUser.getVipId()); balanceChangeRecord.setOrderId(order.getId()); balanceChangeRecord.setChangeType(5); - balanceChangeRecord.setBeforeAmount(balance.add(paymentMoney)); balanceChangeRecord.setChangeAmount(paymentMoney); - balanceChangeRecord.setAfterAmount(balance); balanceChangeRecord.setDelFlag(0); balanceChangeRecord.setCreateTime(LocalDateTime.now()); + balanceChangeRecord.setChangeDirection(-1); balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord); //修改订支付状态 order.setPayStatus(2); @@ -1339,20 +1336,19 @@ if(orderPoint > 0){ UserPoint userPoint = new UserPoint(); userPoint.setType(11); - userPoint.setHistoricalPoint(lavePoint); userPoint.setVariablePoint(orderPoint); - userPoint.setBalance(appUser.getLavePoint()); userPoint.setCreateTime(LocalDateTime.now()); userPoint.setAppUserId(appUser.getId()); userPoint.setObjectId(order.getId()); userPoint.setExtention((tra >= 0 ? orderPoint : transferablePoint) + ""); + userPoint.setChangeDirection(-1); userPointClient.saveUserPoint(userPoint); } appUser.setLastShopTime(LocalDateTime.now()); appUserClient.editAppUserById(appUser); //变更等级 - appUserClient.vipUpgrade(appUser.getId()); + applicationEventPublisher.publishEvent(new PayEvent(JSON.toJSONString(appUser))); //积分支付不返佣 @@ -1398,11 +1394,10 @@ balanceChangeRecord.setVipId(appUser.getVipId()); balanceChangeRecord.setOrderId(order.getId()); balanceChangeRecord.setChangeType(5); - balanceChangeRecord.setBeforeAmount(balance.add(expressFee)); balanceChangeRecord.setChangeAmount(expressFee); - balanceChangeRecord.setAfterAmount(balance); balanceChangeRecord.setDelFlag(0); balanceChangeRecord.setCreateTime(LocalDateTime.now()); + balanceChangeRecord.setChangeDirection(-1); balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord); //修改订支付状态 order.setPayStatus(2); @@ -1435,15 +1430,7 @@ orderBalancePaymentService.save(orderBalancePayment); } - //异步线程执行分佣临时数据构建 - ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(1), new ThreadPoolExecutor.DiscardPolicy()); - threadPoolExecutor.execute(new Runnable() { - @Override - public void run() { - commissionService.calculationCommissionUser(); - commissionService.calculationCommissionShop(); - } - }); + commissionService.calculationCommissionUser(order.getId()); return R.ok(order.getId().toString()); } @@ -1504,13 +1491,12 @@ if(earnPoint > 0){ UserPoint userPoint = new UserPoint(); userPoint.setType(1); - userPoint.setHistoricalPoint(lavePoint); userPoint.setVariablePoint(earnPoint); - userPoint.setBalance(appUser.getLavePoint()); userPoint.setCreateTime(LocalDateTime.now()); userPoint.setAppUserId(appUser.getId()); userPoint.setObjectId(order.getId()); userPoint.setExtention(jsonObject.toJSONString()); + userPoint.setChangeDirection(1); userPointClient.saveUserPoint(userPoint); } } @@ -1518,13 +1504,16 @@ appUser.setLastShopTime(LocalDateTime.now()); appUserClient.editAppUserById(appUser); //变更等级 - appUserClient.vipUpgrade(appUser.getId()); + applicationEventPublisher.publishEvent(new PayEvent(JSON.toJSONString(appUser))); //修改订支付状态 order.setPayStatus(2); //自提 if(order.getOrderType() == 1 && StringUtils.isEmpty(order.getAddressJson())){ order.setOrderStatus(2); } + + String r7TrxNo = uniPayCallbackResult.getR9_BankTrxNo(); + order.setSerialNumber(r7TrxNo); orderService.updateById(order); //处理优惠券 @@ -1548,15 +1537,7 @@ goodsClient.editGoodsNum(goodsId, 1); } - //异步线程执行分佣临时数据构建 - ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(1), new ThreadPoolExecutor.DiscardPolicy()); - threadPoolExecutor.execute(new Runnable() { - @Override - public void run() { - commissionService.calculationCommissionUser(); - commissionService.calculationCommissionShop(); - } - }); + commissionService.calculationCommissionUser(order.getId()); return R.ok(); } @@ -1595,13 +1576,12 @@ if(orderPoint > 0){ UserPoint userPoint = new UserPoint(); userPoint.setType(11); - userPoint.setHistoricalPoint(lavePoint); userPoint.setVariablePoint(orderPoint); - userPoint.setBalance(appUser.getLavePoint()); userPoint.setCreateTime(LocalDateTime.now()); userPoint.setAppUserId(appUser.getId()); userPoint.setObjectId(order.getId()); userPoint.setExtention((tra >= 0 ? orderPoint : transferablePoint) + ""); + userPoint.setChangeDirection(-1); userPointClient.saveUserPoint(userPoint); } @@ -1610,7 +1590,7 @@ appUser.setLastShopTime(LocalDateTime.now()); appUserClient.editAppUserById(appUser); //变更等级 - appUserClient.vipUpgrade(appUser.getId()); + applicationEventPublisher.publishEvent(new PayEvent(JSON.toJSONString(appUser))); //修改订支付状态 order.setPayStatus(2); -- Gitblit v1.7.1