|
|
|
@@ -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; |
|
|
|
|
|
|
|
|