Răsfoiți Sursa

fix 新用户优惠券

zoujiajian 3 ani în urmă
părinte
comite
52c8394ca0

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/CouponUserView.java

@@ -74,6 +74,9 @@ public class CouponUserView {
 	@DbField("c.type")
 	private Coupon.Type type;
 
+	@DbField("c.scope")
+	private Coupon.Scope scope;
+
 	/**
 	 * 抵扣金额
 	 */

+ 7 - 1
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -1045,7 +1045,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			if (exists.getScope() == Coupon.Scope.newUser) {
 				CouponNewUserView couponNewUserView = beanSearcher.searchFirst(CouponNewUserView.class, MapUtils.builder().field(CouponNewUserView::getUserId, userId).op(Operator.Equal).build());
 				if (couponNewUserView != null) {
-					throw BusinessRuntimeException.getInstance("该优惠码只适用于新用户");
+					throw BusinessRuntimeException.getInstance("该新用户优惠码有且仅可使用一次");
 				}
 			}
 			if (exists.getIsValidTime() && exists.getValidEndTime().before(DateTime.now())) {
@@ -1071,6 +1071,12 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			if (isRenew && !couponUserView.getIsRenew()) {
 				throw BusinessRuntimeException.getInstance("该优惠券续费时不可使用");
 			}
+			if (couponUserView.getScope() == Coupon.Scope.newUser) {
+				CouponNewUserView couponNewUserView = beanSearcher.searchFirst(CouponNewUserView.class, MapUtils.builder().field(CouponNewUserView::getUserId, userId).op(Operator.Equal).build());
+				if (couponNewUserView != null) {
+					throw BusinessRuntimeException.getInstance("该新用户优惠券有且仅可使用一次");
+				}
+			}
 		}
 	}