瀏覽代碼

fix 善缘支付宝过滤ai订单支付

zoujiajian 1 年之前
父節點
當前提交
3b2e657f76

+ 5 - 0
netflix-common/src/main/java/com/cyksj/common/constant/Constant.java

@@ -496,4 +496,9 @@ public interface Constant {
 	Long DISNEY_GID = 3L;
 
 	Long NETFLIX_GID = 1L;
+
+	/**
+	 * 善愿支付宝id
+	 */
+	String SY_SHOP_ID = "2021004146676727";
 }

+ 11 - 3
netflix-service/src/main/java/com/cyksj/service/pay/impl/AliPayCommonServiceImpl.java

@@ -14,6 +14,7 @@ import com.alipay.api.request.AlipayTradeWapPayRequest;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.EnvCommonService;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.snowflake.Sequence;
 import com.cyksj.common.util.Codec;
@@ -59,6 +60,8 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
 
 	private final GoodsDonMapper goodsDonMapper;
 
+	private final GoodsDonCategoryRelateMapper goodsDonCategoryRelateMapper;
+
 	private final ShopConfigMapper shopConfigMapper;
 
 	private final EnvCommonService envCommonService;
@@ -133,7 +136,7 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
 		//排除推广链接
 		if (StrUtil.isEmpty(appId)) {
 			//获取每日订单限制 支付宝商户
-			ZfbShopOrderDayLimit dayLimit = getZfbShopOrdersDayLimit();
+			ZfbShopOrderDayLimit dayLimit = getZfbShopOrdersDayLimit(orderDon.getGoodsId());
 			if (dayLimit == null) {
 				//获取支付宝默认商户
 				appId = sysConfigService.getDefaultShopConfigByType("zfb");
@@ -204,14 +207,19 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
 		return aliPayParams;
 	}
 
-	private ZfbShopOrderDayLimit getZfbShopOrdersDayLimit() {
+	private ZfbShopOrderDayLimit getZfbShopOrdersDayLimit(Long goodsId) {
 		int hour = DateUtil.hour(DateTime.now(), true);
+		//如果是ai订单 不分配给善缘
+		Integer aiCount = goodsDonCategoryRelateMapper.selectCount(Wrappers.lambdaQuery(GoodsDonCategoryRelate.class)
+				.eq(GoodsDonCategoryRelate::getCategory, 1)
+				.eq(GoodsDonCategoryRelate::getGoodsId, goodsId));
 		List<ZfbShopOrderDayLimit> orderDayLimits = zfbShopOrderDayLimitMapper.selectList(Wrappers.lambdaQuery(ZfbShopOrderDayLimit.class)
 				.le(ZfbShopOrderDayLimit::getHourStart, hour)
 				.ge(ZfbShopOrderDayLimit::getHourEnd, hour)
 				.gt(ZfbShopOrderDayLimit::getDayRemainOrders, 0)
 				.gt(ZfbShopOrderDayLimit::getHourRemainOrders, 0)
-				.eq(ZfbShopOrderDayLimit::getStatus, 1));
+				.eq(ZfbShopOrderDayLimit::getStatus, 1)
+				.ne(aiCount > 0, ZfbShopOrderDayLimit::getAppId, Constant.SY_SHOP_ID));
 		if (orderDayLimits.isEmpty()) {
 			return null;
 		}