From 458998ebe0ea5acdd96d342f7c75f4eeeffa6dc7 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期五, 18 十月 2024 11:10:35 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java | 96 +++++++++++++++++++++++------------------------ 1 files changed, 47 insertions(+), 49 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java index 15ac07b..1ccbfc2 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java @@ -413,58 +413,56 @@ @Override @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 public AjaxResult cancelShoppingOrderWxRefund(String out_refund_no, String refund_id, String refund_status, String success_time) { - if("SUCCESS".equals(refund_status)){ - TShoppingOrderRefund one = shoppingOrderRefundService.getOne(new LambdaQueryWrapper<TShoppingOrderRefund>().eq(TShoppingOrderRefund::getRefundCode, out_refund_no)); - one.setRefundStatus(2); - one.setRefundSerialNumber(refund_id); - one.setRefundTime(LocalDateTime.parse(success_time, DateTimeFormatter.ofPattern("yyyy-MM-DDTHH:mm:ss+TIMEZONE"))); - shoppingOrderRefundService.updateById(one); - //判断是否需要回退库存 - TShoppingOrder shoppingOrder = this.getById(one.getShoppingOrderId()); - shoppingOrder.setStatus(4); - shoppingOrder.setRefundCode(one.getRefundSerialNumber()); - shoppingOrder.setRefundAmount(one.getRefundAmount()); - shoppingOrder.setRefundStatus(2); - shoppingOrder.setRefundTime(one.getRefundTime()); - this.updateById(shoppingOrder); - - //商品 - if(shoppingOrder.getOrderType() == 1){ - //redis锁 和支付使用同一个锁 - RedisLock redisLock = new RedisLock(redisTemplate, "SHOPPING_GOODS_LOCK", 5, 30000); - try { - redisLock.lock(); - TGoods goods = goodsClient.getGoodsById(shoppingOrder.getGoodsId()).getData(); - Integer inventory = goods.getInventory(); - if(-1 != inventory){ - goods.setInventory(inventory + shoppingOrder.getPurchaseQuantity()); - goodsClient.updateGoods(goods); - } - }catch (Exception e){ - e.printStackTrace(); - }finally { - //解锁 - redisLock.unlock(); + TShoppingOrderRefund one = shoppingOrderRefundService.getOne(new LambdaQueryWrapper<TShoppingOrderRefund>().eq(TShoppingOrderRefund::getRefundCode, out_refund_no)); + one.setRefundStatus(2); + one.setRefundSerialNumber(refund_id); + one.setRefundTime(LocalDateTime.now()); + shoppingOrderRefundService.updateById(one); + //判断是否需要回退库存 + TShoppingOrder shoppingOrder = this.getById(one.getShoppingOrderId()); + shoppingOrder.setStatus(4); + shoppingOrder.setRefundCode(one.getRefundSerialNumber()); + shoppingOrder.setRefundAmount(one.getRefundAmount()); + shoppingOrder.setRefundStatus(2); + shoppingOrder.setRefundTime(one.getRefundTime()); + this.updateById(shoppingOrder); + + //商品 + if(shoppingOrder.getOrderType() == 1){ + //redis锁 和支付使用同一个锁 + RedisLock redisLock = new RedisLock(redisTemplate, "SHOPPING_GOODS_LOCK", 5, 30000); + try { + redisLock.lock(); + TGoods goods = goodsClient.getGoodsById(shoppingOrder.getGoodsId()).getData(); + Integer inventory = goods.getInventory(); + if(-1 != inventory){ + goods.setInventory(inventory + shoppingOrder.getPurchaseQuantity()); + goodsClient.updateGoods(goods); } + }catch (Exception e){ + e.printStackTrace(); + }finally { + //解锁 + redisLock.unlock(); } - //优惠券 - if(shoppingOrder.getOrderType() == 2){ - //redis锁 和支付使用同一个锁 - RedisLock redisLock = new RedisLock(redisTemplate, "SHOPPING_COUPON_LOCK", 5, 30000); - try { - redisLock.lock(); - TCoupon coupon = couponClient.getCouponById1(shoppingOrder.getCouponId()).getData(); - Integer inventory = coupon.getInventoryQuantity(); - if(-1 != inventory){ - coupon.setInventoryQuantity(inventory + shoppingOrder.getPurchaseQuantity()); - couponClient.updateCoupon(coupon); - } - }catch (Exception e){ - e.printStackTrace(); - }finally { - //解锁 - redisLock.unlock(); + } + //优惠券 + if(shoppingOrder.getOrderType() == 2){ + //redis锁 和支付使用同一个锁 + RedisLock redisLock = new RedisLock(redisTemplate, "SHOPPING_COUPON_LOCK", 5, 30000); + try { + redisLock.lock(); + TCoupon coupon = couponClient.getCouponById1(shoppingOrder.getCouponId()).getData(); + Integer inventory = coupon.getInventoryQuantity(); + if(-1 != inventory){ + coupon.setInventoryQuantity(inventory + shoppingOrder.getPurchaseQuantity()); + couponClient.updateCoupon(coupon); } + }catch (Exception e){ + e.printStackTrace(); + }finally { + //解锁 + redisLock.unlock(); } } return AjaxResult.success(); -- Gitblit v1.7.1