Browse Source

fix 立减卷校验规格

zoujiajian 3 years ago
parent
commit
10e92dc238

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/dto/CouponPopularizeDto.java

@@ -1,5 +1,6 @@
 package com.cyksj.model.dto;
 
+import com.cyksj.model.entity.Coupon;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -19,6 +20,8 @@ public class CouponPopularizeDto {
 
 	private String skuIds;
 
+	private Coupon.Type type;
+
 	/**
 	 * 优惠卷推广者关联id
 	 */

+ 1 - 0
netflix-dao/src/main/resources/mapper/CouponMapper.xml

@@ -7,6 +7,7 @@
         select cp.id as couponId,
                cdp.id as popularizeId,
                cp.sku_ids,
+               cp.type,
                cdp.coupon_id as popularizeCouponId
         from `coupon` cp
                  left join `coupon_distribute_popularize` cdp on cdp.coupon_id = cp.id

+ 10 - 6
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -994,9 +994,11 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			if (exists == null) {
 				throw BusinessRuntimeException.getInstance("该优惠码不存在");
 			}
-			Set<Integer> skuIds = Jsons.parseObject(exists.getSkuIds(), Set.class);
-			if (!skuIds.contains(Integer.valueOf(String.valueOf(skuId)))) {
-				throw BusinessRuntimeException.getInstance("该优惠码不适用于该规格");
+			if (exists.getType() == Coupon.Type.reduce) {
+				Set<Integer> skuIds = Jsons.parseObject(exists.getSkuIds(), Set.class);
+				if (!skuIds.contains(Integer.valueOf(String.valueOf(skuId)))) {
+					throw BusinessRuntimeException.getInstance("该优惠码不适用于该规格");
+				}
 			}
 		} else if (couponId != null) {
 			CouponUserView couponUserView = beanSearcher.searchFirst(CouponUserView.class, MapUtils.builder()
@@ -1017,9 +1019,11 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			if (couponUserView.getCouponUserStatus() != CouponUser.Status.unused) {
 				throw BusinessRuntimeException.getInstance("该优惠卷不可使用");
 			}
-			Set<Integer> skuIds = Jsons.parseObject(couponUserView.getSkuIds(), Set.class);
-			if (!skuIds.contains(Integer.valueOf(String.valueOf(skuId)))) {
-				throw BusinessRuntimeException.getInstance("该优惠码不适用于该规格");
+			if (couponUserView.getType() == Coupon.Type.reduce) {
+				Set<Integer> skuIds = Jsons.parseObject(couponUserView.getSkuIds(), Set.class);
+				if (!skuIds.contains(Integer.valueOf(String.valueOf(skuId)))) {
+					throw BusinessRuntimeException.getInstance("该优惠码不适用于该规格");
+				}
 			}
 		}
 	}