Преглед изворни кода

fix bug

release_toaliyun_real
xiaohanzi пре 6 година
родитељ
комит
a521c01954
3 измењених фајлова са 12 додато и 10 уклоњено
  1. +0
    -9
      mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java
  2. +11
    -0
      mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java
  3. +1
    -1
      mallinkService/src/main/java/com/iformall/utils/RedisLock.java

+ 0
- 9
mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java Прегледај датотеку

@@ -54,9 +54,6 @@ public class WxCouponController extends BaseController {
@Autowired @Autowired
@Qualifier("couponDetailRedisTemplate") @Qualifier("couponDetailRedisTemplate")
RedisTemplate<String, WxCouponCVo> cdRedisTemplate; RedisTemplate<String, WxCouponCVo> cdRedisTemplate;
@Autowired
RedisLock redisLock;


@ApiOperation("根据id(couponChannel)查询接口") @ApiOperation("根据id(couponChannel)查询接口")
@GetMapping("/detail") @GetMapping("/detail")
@@ -108,12 +105,6 @@ public class WxCouponController extends BaseController {
// end of 更新状态 // end of 更新状态
updateActivityStatus(wxCouponCVo); updateActivityStatus(wxCouponCVo);
//此处判断是否存在绝对保证库存不超卖的缓存,如果没有,则把当前的库存设置为最大值。如果有,则是后台设置的时候保存的,以那个为准。
boolean hascache = redisLock.hasCouponStockCache(wxCouponCVo.getCouponId());
if (!hascache) {
redisLock.setCouponStock(wxCouponCVo.getCouponId(), wxCouponCVo.getRemainInventory());
}
return new ResultData(wxCouponCVo); return new ResultData(wxCouponCVo);
} }




+ 11
- 0
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.WxCouponService;
import com.iformall.service.WxOrderService; import com.iformall.service.WxOrderService;
import com.iformall.utils.Constant; import com.iformall.utils.Constant;
import com.iformall.utils.RedisLock;

import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
@@ -56,6 +58,9 @@ public class WxOrderController extends BaseController {
@Autowired @Autowired
@Qualifier("couponDetailRedisTemplate") @Qualifier("couponDetailRedisTemplate")
RedisTemplate<String, WxCouponCVo> cdRedisTemplate; RedisTemplate<String, WxCouponCVo> cdRedisTemplate;
@Autowired
RedisLock redisLock;


@ApiOperation(value = "下订单", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"}") @ApiOperation(value = "下订单", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"}")
@PostMapping("save") @PostMapping("save")
@@ -100,6 +105,12 @@ public class WxOrderController extends BaseController {
return new ResultData(ErrorCode.COUPON_IS_EMPTY); 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); resultData = couponUserCheck(user, wxCouponCVo);
if (resultData != null) return resultData; if (resultData != null) return resultData;




+ 1
- 1
mallinkService/src/main/java/com/iformall/utils/RedisLock.java Прегледај датотеку

@@ -123,7 +123,7 @@ public class RedisLock {
*/ */
public long decrease(String key, long delta) { public long decrease(String key, long delta) {
try { try {
stringRedisTemplate.opsForValue().decrement(key, delta);
return stringRedisTemplate.opsForValue().decrement(key, delta);
}catch(Exception e) { }catch(Exception e) {
logger.error("[Redis分布式锁] decrease error,{}",e); logger.error("[Redis分布式锁] decrease error,{}",e);
} }


Loading…
Откажи
Сачувај