Sfoglia il codice sorgente

崇宇每月收款额度限制

zoujiajian 6 mesi fa
parent
commit
8a87a146e2

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/mapper/OrderDonMapper.java

@@ -1,5 +1,6 @@
 package com.cyksj.mapper;
 
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cyksj.model.dto.UserDistributeOrderDataDto;
@@ -104,4 +105,6 @@ public interface OrderDonMapper extends BaseMapper<OrderDon> {
 	List<Long> selectTransportOids(@Param("phone") String phone, @Param("receiver") String receiver);
 
 	UserDistributeOrderDataDto selectUserDistributeOrders(@Param("sharedId") Long sharedId, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+	BigDecimal getSumMoneyZfbThisMonth(@Param("shopId") String shopId, @Param("start") DateTime start, @Param("end") DateTime end);
 }

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/ShopConfig.java

@@ -5,6 +5,8 @@ import com.ejlchina.searcher.bean.DbIgnore;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * @author chan
  * @date 2022/12/13 2:07 PM
@@ -75,6 +77,11 @@ public class ShopConfig extends BaseEntity{
      */
     private String payment;
 
+    /**
+     * 每月收款额度限额
+     */
+    private BigDecimal monthMoneyLimit;
+
     /**
      * 每日限单数
      */

+ 4 - 0
netflix-dao/src/main/resources/mapper/OrderDonMapper.xml

@@ -637,4 +637,8 @@
         </if>
         where us.shared_id = #{sharedId}
     </select>
+
+    <select id="getSumMoneyZfbThisMonth" resultType="java.math.BigDecimal">
+        select ifnull(sum(money) - sum(ifnull(refund_money,0)),0) from order_don where shop_id = #{shopId} and status not in ('close','noPayment') and created_time between #{start} and #{end}
+    </select>
 </mapper>

+ 13 - 12
netflix-service/src/main/java/com/cyksj/service/pay/impl/AliPayCommonServiceImpl.java

@@ -225,17 +225,16 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
 				.eq(GoodsDonCategoryRelate::getCategory, 1)
 				.eq(GoodsDonCategoryRelate::getGoodsId, goodsId));
 		List<ZfbShopOrderDayLimit> orderDayLimits = null;
-		//Ai订单 优先分配给崇宇
-		if (aiCount > 0) {
-			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)
-					.in(ZfbShopOrderDayLimit::getScope, scope)
-					.in(ZfbShopOrderDayLimit::getPayCategory, payCategorys)
-					.eq(ZfbShopOrderDayLimit::getAppId, Constant.CY_SHOP_ID));
+		//崇宇支付宝每月限制收款18w
+		ShopConfig shopConfig = shopConfigMapper.selectOne(Wrappers.lambdaQuery(ShopConfig.class).eq(ShopConfig::getAppId, Constant.CY_SHOP_ID).last("limit 1"));
+		DateTime now = DateTime.now();
+		String filterShopId = null;
+		if (shopConfig.getMonthMoneyLimit() != null) {
+			BigDecimal thisShopIdMonthMoney = orderDonMapper.getSumMoneyZfbThisMonth(Constant.CY_SHOP_ID, DateUtil.beginOfMonth(now), DateUtil.endOfMonth(now));
+			//超过每月收款额度
+			if (shopConfig.getMonthMoneyLimit().compareTo(thisShopIdMonthMoney) <= 0) {
+				filterShopId = Constant.CY_SHOP_ID;
+			}
 		}
 		if (CollUtil.isEmpty(orderDayLimits)) {
 			orderDayLimits = zfbShopOrderDayLimitMapper.selectList(Wrappers.lambdaQuery(ZfbShopOrderDayLimit.class)
@@ -246,7 +245,9 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
 					.eq(ZfbShopOrderDayLimit::getStatus, 1)
 					.in(ZfbShopOrderDayLimit::getScope, scope)
 					.in(ZfbShopOrderDayLimit::getPayCategory, payCategorys)
-					.ne(aiCount > 0, ZfbShopOrderDayLimit::getAppId, Constant.SY_SHOP_ID));
+					.ne(aiCount > 0, ZfbShopOrderDayLimit::getAppId, Constant.SY_SHOP_ID)
+					//超过每月收款额 不分配
+					.ne(filterShopId != null, ZfbShopOrderDayLimit::getAppId, filterShopId));
 		}
 		if (orderDayLimits.isEmpty()) {
 			return null;