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