Просмотр исходного кода

商户注券->更新库存操作

release_toaliyun_real
Burce 6 лет назад
Родитель
Сommit
c8afce5b75
6 измененных файлов: 29 добавлений и 16 удалений
  1. +4
    -2
      mallinkService/src/main/java/com/iformall/mapper/WxCouponSendMapper.java
  2. +4
    -2
      mallinkService/src/main/java/com/iformall/service/WxCouponSendService.java
  3. +6
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java
  4. +2
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java
  5. +3
    -3
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  6. +10
    -2
      mallinkService/src/main/resources/mapper/WxCouponSendMapper.xml

+ 4
- 2
mallinkService/src/main/java/com/iformall/mapper/WxCouponSendMapper.java Просмотреть файл

@@ -21,18 +21,20 @@ public interface WxCouponSendMapper extends CommonMapper<WxCouponSend, String> {
* 商户注券 库存减少
*
* @param id 券ID
* @param merchantRemain 当前库存
* @param merchantSend 当前已发数
* @param number 减少数量
*/
Integer reduceMerchantSend(Long id, Integer merchantSend, Integer number);
Integer reduceMerchantSend(Long id, Integer merchantRemain,Integer merchantSend,Integer number);

/**
* 商户注券 库存退回
*
* @param id 券ID
* @param merchantRemain 当前库存
* @param merchantSend 当前已发数
* @param number 回退数量
*/
Integer backMerchantSend(Long id, Integer merchantSend, Integer number);
Integer backMerchantSend(Long id, Integer merchantRemain, Integer merchantSend,Integer number);

}

+ 4
- 2
mallinkService/src/main/java/com/iformall/service/WxCouponSendService.java Просмотреть файл

@@ -78,18 +78,20 @@ public interface WxCouponSendService {
*
* @param id 券ID
* @param merchantRemain 当前库存
* @param merchantSend 当前已发
* @param number 减少数量
*/
void reduceMerchantSend(Long id, Integer merchantRemain, Integer number);
void reduceMerchantSend(Long id, Integer merchantRemain, Integer merchantSend ,Integer number);

/**
* 商户注券 库存退回
*
* @param id 券ID
* @param merchantRemain 当前库存
* @param merchantSend 当前已发
* @param number 回退数量
*/
void backMerchantRemainInventory(Long id, Integer merchantRemain, Integer number);
void backMerchantRemainInventory(Long id, Integer merchantRemain, Integer merchantSend ,Integer number);

void handSel(WxCouponSend wxCouponSend, WxCUser user) ;



+ 6
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java Просмотреть файл

@@ -126,8 +126,9 @@ public class WxCouponSendServiceImpl implements WxCouponSendService {
//商户注券 参数校验
int merchantLnventory = 0;
String merchantIdStr = null;
JSONObject jo;
try {
JSONObject jo = JSONObject.parseObject(record.getConditions());
jo = JSONObject.parseObject(record.getConditions());
merchantLnventory = jo.getIntValue(WxCouponSend.KEY_MERCHANT_LNVENTORY);
merchantIdStr = jo.getString("id");
jo.put(WxCouponSend.KEY_MERCHANT_SEND,0) ;
@@ -568,16 +569,16 @@ public class WxCouponSendServiceImpl implements WxCouponSendService {
}

@Override
public void reduceMerchantSend(Long id, Integer merchantRemain, Integer number) {
int num = wxCouponSendMapper.reduceMerchantSend(id, merchantRemain, number);
public void reduceMerchantSend(Long id, Integer merchantRemain, Integer merchantSend ,Integer number) {
int num = wxCouponSendMapper.reduceMerchantSend(id, merchantRemain, merchantSend,number);
if (num == 0) {
throw new MallinkException(ErrorCode.ORDER_IS_FAIL);
}
}

@Override
public void backMerchantRemainInventory(Long id, Integer merchantRemain, Integer number) {
int num = wxCouponSendMapper.backMerchantSend(id, merchantRemain, number);
public void backMerchantRemainInventory(Long id, Integer merchantRemain, Integer merchantSend, Integer number) {
int num = wxCouponSendMapper.backMerchantSend(id, merchantRemain, merchantSend,number);
if (num == 0) {
throw new MallinkException(ErrorCode.ORDER_IS_FAIL);
}


+ 2
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java Просмотреть файл

@@ -655,8 +655,8 @@ import java.util.stream.Collectors;

@Override
@Transactional(isolation= Isolation.SERIALIZABLE, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
public void backRemainInventory(Long id, Integer merchantSend, Integer number) {
int num = wxCouponMapper.backRemainInventory(id, merchantSend, number);
public void backRemainInventory(Long id, Integer remainInventory, Integer number) {
int num = wxCouponMapper.backRemainInventory(id, remainInventory, number);
if (num == 0) {
throw new MallinkException(ErrorCode.REMAIN_BACK_FAIL);
}


+ 3
- 3
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Просмотреть файл

@@ -320,7 +320,7 @@ public class WxOrderServiceImpl implements WxOrderService {
}

JSONObject jo = JSONObject.parseObject(wxCouponSendVo.getConditions()) ;
int merchantLnventory = jo.getIntValue(WxCouponSend.KEY_MERCHANT_LNVENTORY) ;
int merchantSend = jo.getIntValue(WxCouponSend.KEY_MERCHANT_SEND) ;
int merchantRemain = jo.getIntValue(WxCouponSend.KEY_MERCHANT_REMAIN);

// 检查 优惠券 库存
@@ -366,9 +366,9 @@ public class WxOrderServiceImpl implements WxOrderService {

try {
// 减库存
wxCouponSendService.reduceMerchantSend(wxCouponSendVo.getId(), merchantRemain, 1);
wxCouponSendService.reduceMerchantSend(wxCouponSendVo.getId(), merchantRemain,merchantSend,1);
} catch (RuntimeException e) {
logger.error("此券减库存失败, couponId: " + couponIdStr);
logger.error("此券减库存失败, couponId: {}, error: {}", couponIdStr, e.getMessage());
throw new MallinkException(ErrorCode.ORDER_IS_FAIL);
} finally {
//解锁


+ 10
- 2
mallinkService/src/main/resources/mapper/WxCouponSendMapper.xml Просмотреть файл

@@ -164,9 +164,17 @@
((c.status = 1) or (c.valid_type = 1 and c.valid_end_date &lt; now()))
</update>
<update id="reduceMerchantSend">
update wx_coupon_send SET conditions = JSON_SET(conditions,'$.merchantRemain',#{merchantRemain} - #{number}) where id = #{id} and conditions->'$.merchantRemain' = #{merchantRemain}
update wx_coupon_send
SET conditions = JSON_SET(conditions, '$.merchantRemain', #{merchantRemain} - #{number} , '$.merchantSend',
#{merchantSend} + #{number})
where id = #{id}
and conditions -> '$.merchantRemain' = #{merchantRemain}
</update>
<update id="backMerchantSend">
update wx_coupon_send SET conditions = JSON_SET(conditions,'$.merchantRemain',#{merchantRemain} + #{number}) where id = #{id} and conditions->'$.merchantRemain' = #{merchantRemain}
update wx_coupon_send
SET conditions = JSON_SET(conditions, '$.merchantRemain', #{merchantRemain} + #{number} , '$.merchantSend',
#{merchantSend} - #{number})
where id = #{id}
and conditions -> '$.merchantRemain' = #{merchantRemain}
</update>
</mapper>

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