diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java index f4aa19427..73e242049 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java @@ -54,9 +54,6 @@ public class WxCouponController extends BaseController { @Autowired @Qualifier("couponDetailRedisTemplate") RedisTemplate cdRedisTemplate; - - @Autowired - RedisLock redisLock; @ApiOperation("根据id(couponChannel)查询接口") @GetMapping("/detail") @@ -108,12 +105,6 @@ public class WxCouponController extends BaseController { // end of 更新状态 updateActivityStatus(wxCouponCVo); - //此处判断是否存在绝对保证库存不超卖的缓存,如果没有,则把当前的库存设置为最大值。如果有,则是后台设置的时候保存的,以那个为准。 - boolean hascache = redisLock.hasCouponStockCache(wxCouponCVo.getCouponId()); - if (!hascache) { - redisLock.setCouponStock(wxCouponCVo.getCouponId(), wxCouponCVo.getRemainInventory()); - } - return new ResultData(wxCouponCVo); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index 9c6c6c175..799619fa3 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -18,6 +18,8 @@ import com.iformall.service.WxCouponChannelService; import com.iformall.service.WxCouponService; import com.iformall.service.WxOrderService; import com.iformall.utils.Constant; +import com.iformall.utils.RedisLock; + import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -56,6 +58,9 @@ public class WxOrderController extends BaseController { @Autowired @Qualifier("couponDetailRedisTemplate") RedisTemplate cdRedisTemplate; + + @Autowired + RedisLock redisLock; @ApiOperation(value = "下订单", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"}") @PostMapping("save") @@ -100,6 +105,12 @@ public class WxOrderController extends BaseController { return new ResultData(ErrorCode.COUPON_IS_EMPTY); } + //此处判断是否存在绝对保证库存不超卖的缓存,如果没有,则把当前的库存设置为最大值。如果有,则是后台设置的时候保存的,以那个为准。 + boolean hascache = redisLock.hasCouponStockCache(wxCouponCVo.getCouponId()); + if (!hascache) { + redisLock.setCouponStock(wxCouponCVo.getCouponId(), wxCouponCVo.getRemainInventory()); + } + resultData = couponUserCheck(user, wxCouponCVo); if (resultData != null) return resultData; diff --git a/mallinkService/src/main/java/com/iformall/utils/RedisLock.java b/mallinkService/src/main/java/com/iformall/utils/RedisLock.java index ce12af555..72da0e735 100644 --- a/mallinkService/src/main/java/com/iformall/utils/RedisLock.java +++ b/mallinkService/src/main/java/com/iformall/utils/RedisLock.java @@ -123,7 +123,7 @@ public class RedisLock { */ public long decrease(String key, long delta) { try { - stringRedisTemplate.opsForValue().decrement(key, delta); + return stringRedisTemplate.opsForValue().decrement(key, delta); }catch(Exception e) { logger.error("[Redis分布式锁] decrease error,{}",e); }