Pārlūkot izejas kodu

修复优惠券支付异常

Eric 2 gadi atpakaļ
vecāks
revīzija
25fca3bab4

+ 3 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CouponInfoServiceImp.java

@@ -301,7 +301,9 @@ public class CouponInfoServiceImp extends ServiceImpl<CouponInfoMapper, CouponIn
 
         for (CouponOrderWrapper.CouponInfo item : couponInfos) {
 
-            if (amount >= item.getUseLimit()) {
+            if (amount >= item.getUseLimit()
+                    && CollectionUtils.isNotEmpty(query.getIssueIds())
+                    && query.getIssueIds().contains(item.getIssueId())) {
 
                 // 重置数据选中状态
                 item.setSelected(true);

+ 5 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -66,6 +66,7 @@ import com.yonge.toolset.payment.core.service.PaymentClient;
 import com.yonge.toolset.payment.util.DistributedLock;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.joda.time.DateTime;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.BeanUtils;
@@ -337,7 +338,10 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         //验证参数,必须验证参数
         BigDecimal actualPrice = BigDecimal.ZERO;
         // 订单优惠券信息
-        CouponOrderWrapper couponOrderWrapper = CouponOrderWrapper.builder().couponInfos(Lists.newArrayList()).build();
+        CouponOrderWrapper couponOrderWrapper = CouponOrderWrapper.builder()
+                .discountedPrices(0D)
+                .couponInfos(Lists.newArrayList())
+                .build();
 
         for (OrderReq.OrderReqInfo info : orderReq.getOrderInfos()) {
             Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>> createFunction = orderCreate.get(info.getGoodType());