From c36b79ea63fe43aa77ab74508505b727e4976a01 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期一, 06 十一月 2023 16:01:04 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 4 ++-- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java | 13 +++++++++++++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java | 3 +-- ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java | 8 +++++--- ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsTotalServiceImpl.java | 6 +++--- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 16 ++++------------ 6 files changed, 28 insertions(+), 22 deletions(-) diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java index 53f0dd5..b484715 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java @@ -337,12 +337,14 @@ @Override public void deleteMgtActivity(String activityId){ Activity activity = this.getById(activityId); - if (activity.getActivityStatus() != 0) { - throw new ServiceException(AppErrorConstant.ACTIVITY_ING_DELETE); - } +// if (activity.getActivityStatus() != 0) { +// throw new ServiceException(AppErrorConstant.ACTIVITY_ING_DELETE); +// } activity.setDelFlag(1); activity.setActivityStatus(-1); this.saveOrUpdate(activity); + //活动结束 + endActivity(activityId); } /** diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsTotalServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsTotalServiceImpl.java index 383d497..2a8e315 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsTotalServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsTotalServiceImpl.java @@ -32,7 +32,7 @@ */ @Override public void changeGoodsTotal(List<GoodsTotalChangeDto> goodsTotalChangeDtoList){ - log.debug("商品统计变动"+goodsTotalChangeDtoList.toString()); + log.error("商品统计变动"+goodsTotalChangeDtoList.toString()); if (goodsTotalChangeDtoList != null && !goodsTotalChangeDtoList.isEmpty()) { // 创建一个空的GoodsTotal对象 GoodsTotal goodsTotal; @@ -49,13 +49,13 @@ // 更新GoodsTotal对象的相关属性 goodsTotal.setBuyCount(goodsTotal.getBuyCount() + 1); goodsTotal.setBuyNumCount(goodsTotal.getBuyNumCount() + goodsTotalChangeDto.getChangeNum()); - goodsTotal.setBuyUserCount(goodsTotal.getBuyUserCount() + goodsTotalChangeDto.getPersonNum()); + goodsTotal.setBuyUserCount(goodsTotalChangeDto.getPersonNum()); goodsTotal.setBuyMoneyTotal(goodsTotal.getBuyMoneyTotal().add(goodsTotalChangeDto.getMoney())); } else { // 更新GoodsTotal对象的相关属性 goodsTotal.setBuyCount(goodsTotal.getBuyCount() - 1); goodsTotal.setBuyNumCount(goodsTotal.getBuyNumCount() - goodsTotalChangeDto.getChangeNum()); - goodsTotal.setBuyUserCount(goodsTotal.getBuyUserCount() - goodsTotalChangeDto.getPersonNum()); + goodsTotal.setBuyUserCount(goodsTotalChangeDto.getPersonNum()); goodsTotal.setBuyMoneyTotal(goodsTotal.getBuyMoneyTotal().subtract(goodsTotalChangeDto.getMoney())); } // 将更新后的GoodsTotal对象添加到列表中 diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java index 9c4bc5a..6574ab5 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java @@ -14,6 +14,7 @@ import com.google.gson.GsonBuilder; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.order.domain.dto.WechatPaymentRefundDto; import com.ruoyi.order.domain.dto.WeixinPaymentNotifyDto; import com.ruoyi.order.domain.pojo.account.OrderRefund; @@ -45,6 +46,7 @@ import java.util.Enumeration; import java.util.Map; import java.util.Objects; +import java.util.concurrent.TimeUnit; /** * @program: ruoyi @@ -75,6 +77,9 @@ @Resource private OrderRefundService orderRefundService; + + @Resource + private RedisService redisService; @PostMapping(value = "/payNotify") @ApiOperation(value = "微信支付/退款通知") @@ -240,6 +245,14 @@ if("S".equals(transStat)){ PartnerTransactionsResult transaction = new PartnerTransactionsResult(); transaction.setOutTradeNo(data.getReqSeqId()); + + //防止回调频繁导致时间处理异常 + Object cacheObject = redisService.getCacheObject(data.getReqSeqId()); + if(null == cacheObject){ + redisService.setCacheObject(data.getReqSeqId(), "", 10L, TimeUnit.SECONDS); + }else{ + return; + } //开始处理业务数据 orderService.payBack(transaction, data.getFeeFlag() == 1 ? BigDecimal.ZERO : new BigDecimal(data.getFeeAmount())); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java index 2d2bddd..c80d343 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java @@ -662,11 +662,10 @@ * @description 获取用户商品购买数量 * @author jqs * @date 2023/7/23 18:17 - * @param userId * @param goodsId * @return Integer */ - Integer countUserBuyGoodsNum(@Param("userId")Long userId, @Param("goodsId")String goodsId); + Integer countUserBuyGoodsNum(@Param("goodsId")String goodsId); /** diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index 6bc5a49..c107a78 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -5181,12 +5181,8 @@ goodsTotalChangeDto.setChangeType(1); goodsTotalChangeDto.setChangeNum(orderGoods.getBuyNum()); goodsTotalChangeDto.setMoney(orderGoods.getGoodsReceivableMoney()); - Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(order.getUserId(), orderGoods.getGoodsId()); - if (bugGoodsNum == null || bugGoodsNum < 1) { - goodsTotalChangeDto.setPersonNum(1); - }else{ - goodsTotalChangeDto.setPersonNum(0); - } + Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(orderGoods.getGoodsId()); + goodsTotalChangeDto.setPersonNum(bugGoodsNum); goodsTotalChangeDtoList.add(goodsTotalChangeDto); } //更新商品统计 @@ -5392,12 +5388,8 @@ goodsTotalChangeDto.setChangeType(2); goodsTotalChangeDto.setChangeNum(orderGoods.getBuyNum()); goodsTotalChangeDto.setMoney(orderGoods.getGoodsReceivableMoney()); - Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(order.getUserId(), orderGoods.getGoodsId()); - if (bugGoodsNum == null || bugGoodsNum <= orderGoods.getBuyNum()) { - goodsTotalChangeDto.setPersonNum(1); - }else{ - goodsTotalChangeDto.setPersonNum(0); - } + Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(orderGoods.getGoodsId()); + goodsTotalChangeDto.setPersonNum(bugGoodsNum); goodsTotalChangeDtoList.add(goodsTotalChangeDto); } remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList); diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml index cb57a11..106b804 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml @@ -2037,10 +2037,10 @@ </select> <select id="countUserBuyGoodsNum" resultType="java.lang.Integer"> - SELECT SUM(tog.buy_num) + select count(1) from (SELECT toc.user_id FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id - WHERE toc.del_flag = 0 AND toc.order_status > 1 AND toc.user_id = #{userId} AND tog.goods_id = #{goodsId} + WHERE toc.del_flag = 0 AND toc.order_status > 1 AND tog.goods_id = #{goodsId} group by toc.user_id) as aa </select> <select id="getMgtShopAllOrderTotal" resultType="com.ruoyi.order.domain.vo.MgtShopAllOrderTotal"> -- Gitblit v1.7.1