cup 2 năm trước cách đây
mục cha
commit
da55183e7f

+ 19 - 21
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserPrizeRecoveryController.java

@@ -108,35 +108,33 @@ public class UserPrizeRecoveryController extends BaseApiController {
         }
 
         // 回收折扣
-        BigDecimal discountRate;
+        BigDecimal discountRate = new BigDecimal(70);
         // 兑换价格
         Integer exchangePrice = 0;
 
-        GoodsSku goodsSku = null;
-        if (!Objects.isNull(userPrizeStorage.getSkuId())) {
-            goodsSku = goodsSkuService.getById(userPrizeStorage.getSkuId());
-        }
-
-        if (Objects.nonNull(goodsSku)) {
-            discountRate = goodsSku.getDiscountRate();
-            exchangePrice = goodsSku.getExchangePrice();
-        } else {
+        if (PrizeStorageInTypeEnum.COIN_EXCHANGE.equals(userPrizeStorage.getInType())) {
+            UserExchangeOrder userExchangeOrder = userExchangeOrderService.getOne(new LambdaQueryWrapper<UserExchangeOrder>().eq(UserExchangeOrder::getOrderId, userPrizeStorage.getRefId()));
+            if (Objects.isNull(userExchangeOrder)) {
+                return AjaxResult.error("无兑换订单信息");
+            }
+            GoodsSku goodsSku = null;
+            if (Objects.nonNull(userExchangeOrder.getSkuId())) {
+                goodsSku = goodsSkuService.getById(userExchangeOrder.getSkuId());
+            }
+            if (Objects.nonNull(goodsSku)) {
+                discountRate = goodsSku.getDiscountRate();
+            } else {
+                Goods goods = goodsService.getById(userPrizeStorage.getGoodsId());
+                discountRate = goods.getDiscountRate();
+            }
+            exchangePrice = BigDecimal.valueOf(userExchangeOrder.getOrderCoin()).divide(BigDecimal.valueOf(userExchangeOrder.getNum()),0, RoundingMode.HALF_UP).intValue();
+        } else if (PrizeStorageInTypeEnum.TICKET_CASHED.equals(userPrizeStorage.getInType())) {
             Goods goods = goodsService.getById(userPrizeStorage.getGoodsId());
             if (Objects.isNull(goods)) {
                 return AjaxResult.error("商品信息有误");
             }
             discountRate = goods.getDiscountRate();
-            if (Objects.nonNull(userPrizeStorage.getSkuId())) {
-                // 特殊情况
-                UserExchangeOrder userExchangeOrder = userExchangeOrderService.getOne(new LambdaQueryWrapper<UserExchangeOrder>().eq(UserExchangeOrder::getOrderId, userPrizeStorage.getRefId()));
-                if (Objects.isNull(userExchangeOrder)) {
-                    return AjaxResult.error("sku信息异常");
-                }
-                exchangePrice = BigDecimal.valueOf(userExchangeOrder.getOrderCoin()).divide(BigDecimal.valueOf(userExchangeOrder.getNum()),0, RoundingMode.HALF_UP).intValue();
-            } else {
-                exchangePrice = goods.getExchangePrice();
-            }
-
+            exchangePrice = goods.getExchangePrice();
         }
 
         int returnNum = BigDecimal.valueOf((long) exchangePrice * param.getNum()).multiply(discountRate).divide(BigDecimal.valueOf(100),0, RoundingMode.HALF_UP).intValue();