diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java index d5ec0c371..079c0df30 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -676,6 +676,11 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { @Transactional(isolation= Isolation.SERIALIZABLE, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) public void setChannelStock(WxCouponChannel record,Integer number) { //设置渠道库存, + WxCouponChannel couponChannel = wxCouponChannelMapper.selectById(record.getId(), record.getTenantId()); + if(null != couponChannel.getChannelStock() || couponChannel.getChannelStock().intValue() != 0){ + throw new MallinkException(ErrorCode.REMAIN_BACK_FAIL.getCode(),"请先释放原有库存"); + } + int num = wxCouponChannelMapper.setChannelStock(record.getId(), record.getTenantId(), number); if (num == 0) { throw new MallinkException(ErrorCode.REMAIN_BACK_FAIL); @@ -693,6 +698,10 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { public void releaseChannelStock(WxCouponChannel record) { //释放渠道库存 WxCouponChannel couponChannel = wxCouponChannelMapper.selectById(record.getId(), record.getTenantId()); + if(null == couponChannel.getChannelStock()){ + throw new MallinkException(ErrorCode.REMAIN_BACK_FAIL.getCode(),"暂无可释放库存"); + } + int num = wxCouponChannelMapper.clearChannelStock(record.getId(), record.getTenantId()); if (num == 0) { throw new MallinkException(ErrorCode.REMAIN_BACK_FAIL); diff --git a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml index 2fb768fa3..984f51d52 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml @@ -346,7 +346,7 @@ - update wx_coupon_channel SET channel_stock = #{number} where id = #{id} and tenant_id =#{tenantId} and channel_stock is not null + update wx_coupon_channel SET channel_stock = #{number} where id = #{id} and tenant_id =#{tenantId} and (channel_stock is null or channel_stock = 0)