Эх сурвалжийг харах

Merge branch 'dev' into 'mp-server-test'

余额不足返回false

See merge request quanshu/mp-server!275
zhong chunping 3 жил өмнө
parent
commit
0f3b032fd6

+ 5 - 1
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserExchangeController.java

@@ -25,6 +25,7 @@ import com.qs.mp.common.enums.ErrorCodeEnum;
 import com.qs.mp.common.enums.GoodsStatusEnum;
 import com.qs.mp.common.enums.TicketBoxStatusEnum;
 import com.qs.mp.common.enums.TicketStatusEnum;
+import com.qs.mp.common.exception.ServiceException;
 import com.qs.mp.common.utils.StringUtils;
 import com.qs.mp.user.domain.param.ExchangeOrderParam;
 import com.qs.mp.user.service.IUserExchangeOrderService;
@@ -118,7 +119,10 @@ public class UserExchangeController extends BaseApiController {
         || param.getOrderNum() == 0) {
       return AjaxResult.error("参数缺失");
     }
-    userExchangeOrderService.exchange(userId, param.getGoodsId(), param.getSkuId(), param.getOrderNum());
+    boolean result = userExchangeOrderService.exchange(userId, param.getGoodsId(), param.getSkuId(), param.getOrderNum());
+    if (!result) {
+      return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1021);
+    }
     return AjaxResult.success();
   }
 

+ 2 - 1
mp-service/src/main/java/com/qs/mp/user/service/IUserExchangeOrderService.java

@@ -18,6 +18,7 @@ public interface IUserExchangeOrderService extends IService<UserExchangeOrder> {
    * @param goodsId
    * @param skuId
    * @param orderNum
+   * @return 余额不足返回false,其他抛异常
    */
-  void exchange(Long userId, Long goodsId, Long skuId, int orderNum);
+  boolean exchange(Long userId, Long goodsId, Long skuId, int orderNum);
 }

+ 4 - 3
mp-service/src/main/java/com/qs/mp/user/service/impl/UserExchangeOrderServiceImpl.java

@@ -10,7 +10,6 @@ import com.qs.mp.common.enums.GoodsStatusEnum;
 import com.qs.mp.common.enums.PrizeStorageInTypeEnum;
 import com.qs.mp.common.enums.PrizeStorageStatusEnum;
 import com.qs.mp.common.exception.ServiceException;
-import com.qs.mp.common.utils.StringUtils;
 import com.qs.mp.system.service.id.BizIdGenerator;
 import com.qs.mp.user.domain.UserCoin;
 import com.qs.mp.user.domain.UserExchangeOrder;
@@ -53,7 +52,7 @@ public class UserExchangeOrderServiceImpl extends ServiceImpl<UserExchangeOrderM
 
   @Override
   @Transactional
-  public void exchange(Long userId, Long goodsId, Long skuId, int orderNum) {
+  public boolean exchange(Long userId, Long goodsId, Long skuId, int orderNum) {
     int orderAmt = 0;
     Goods goods = goodsService.getById(goodsId);
     GoodsSku goodsSku = new GoodsSku();
@@ -74,7 +73,7 @@ public class UserExchangeOrderServiceImpl extends ServiceImpl<UserExchangeOrderM
     // 盲豆余额校验
     UserCoin userCoin = userCoinService.getById(userId);
     if (null == userCoin.getCoin() || userCoin.getCoin() < orderAmt) {
-      throw new ServiceException(ErrorCodeEnum.ERROR_CODE_1021);
+      return false;
     }
 
     // 生成兑换订单
@@ -118,5 +117,7 @@ public class UserExchangeOrderServiceImpl extends ServiceImpl<UserExchangeOrderM
         .set(Goods::getExchangedQty, goods.getExchangedQty() + orderNum)
         .eq(Goods::getGoodsId, goodsId).eq(Goods::getQuantity, goods.getQuantity()).eq(Goods::getExchangedQty, goods.getExchangedQty()));
     Assert.isTrue(updateGoods, "兑换商品更新GOODS库存失败。goodsId:" + goodsId );
+
+    return true;
   }
 }