xiaohanzi 6 лет назад
Родитель
Сommit
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
@Qualifier("couponDetailRedisTemplate")
RedisTemplate<String, WxCouponCVo> 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);
}



+ 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.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<String, WxCouponCVo> 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;



+ 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) {
try {
stringRedisTemplate.opsForValue().decrement(key, delta);
return stringRedisTemplate.opsForValue().decrement(key, delta);
}catch(Exception e) {
logger.error("[Redis分布式锁] decrease error,{}",e);
}


Загрузка…
Отмена
Сохранить