zoujiajian 1 سال پیش
والد
کامیت
afc6af5e6e

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/mapper/ZfbShopOrderDayLimitMapper.java

@@ -13,4 +13,6 @@ public interface ZfbShopOrderDayLimitMapper extends BaseMapper<ZfbShopOrderDayLi
 	Integer decrRemainOrdersById(Long id);
 
 	void incrDayLimitRemainOrders(String shopId);
+
+	void incrHourLimitRemainOrders(String shopId);
 }

+ 11 - 3
netflix-dao/src/main/java/com/cyksj/model/entity/ZfbShopOrderDayLimit.java

@@ -11,10 +11,18 @@ import lombok.Setter;
  */
 @Getter
 @Setter
-public class ZfbShopOrderDayLimit extends BaseEntity{
+public class ZfbShopOrderDayLimit extends BaseEntity {
 	private String appId;
 
-	private Integer orders;
+	private Integer dayLimitOrders;
 
-	private Integer remainOrders;
+	private Integer dayRemainOrders;
+
+	private Integer hourLimitOrders;
+
+	private Integer hourRemainOrders;
+
+	private Integer hourStart;
+
+	private Integer endStart;
 }

+ 6 - 2
netflix-dao/src/main/resources/mapper/ZfbShopOrderDayLimitMapper.xml

@@ -3,10 +3,14 @@
 <mapper namespace="com.cyksj.mapper.ZfbShopOrderDayLimitMapper">
 
     <update id="decrRemainOrdersById">
-        update zfb_shop_order_day_limit set remain_orders = remain_orders - 1 where id = #{id} and remain_orders > 0
+        update zfb_shop_order_day_limit set day_remain_orders = day_remain_orders - 1,hour_remain_orders = hour_remain_orders - 1 where id = #{id} and day_remain_orders > 0 and hour_remain_orders > 0
     </update>
 
     <update id="incrDayLimitRemainOrders">
-        update zfb_shop_order_day_limit set remain_orders = remain_orders + 1 where app_id = #{shopId} and remain_orders >= 0
+        update zfb_shop_order_day_limit set day_remain_orders = day_remain_orders + 1 where app_id = #{shopId} and day_remain_orders >= 0 and day_remain_orders &lt; day_limit_orders;
+    </update>
+
+    <update id="incrHourLimitRemainOrders">
+        update zfb_shop_order_day_limit set hour_remain_orders = hour_remain_orders + 1 where app_id = #{shopId} and hour_remain_orders >= 0 and hour_remain_orders &lt; hour_limit_orders;
     </update>
 </mapper>

+ 8 - 2
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -994,8 +994,14 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 				if (gcCash != null && gcCash.compareTo(BigDecimal.ZERO) > 0) {
 					giftCardOrderUseRecordService.returnGiftCardCash(orderDon.getId());
 				}
-				//恢复支付宝每日限单数
-				zfbShopOrderDayLimitMapper.incrDayLimitRemainOrders(orderDon.getShopId());
+				//恢复支付宝 每日限单数
+				if (DateTime.now().toDateStr().equals(DateUtil.format(orderDon.getCreatedTime(), "YYYY-MM-dd"))) {
+					zfbShopOrderDayLimitMapper.incrDayLimitRemainOrders(orderDon.getShopId());
+				}
+				//当前时间短可恢复 小时限单数
+				if (DateUtil.hour(orderDon.getCreatedTime(), true) == DateUtil.hour(DateTime.now(), true)) {
+					zfbShopOrderDayLimitMapper.incrHourLimitRemainOrders(orderDon.getShopId());
+				}
 			}
 		}
 	}

+ 6 - 1
netflix-service/src/main/java/com/cyksj/service/pay/impl/AliPayCommonServiceImpl.java

@@ -1,5 +1,6 @@
 package com.cyksj.service.pay.impl;
 
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alipay.api.AlipayApiException;
@@ -201,8 +202,12 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
 	}
 
 	private ZfbShopOrderDayLimit getZfbShopOrdersDayLimit() {
+		int hour = DateUtil.hour(DateTime.now(), true);
 		List<ZfbShopOrderDayLimit> orderDayLimits = zfbShopOrderDayLimitMapper.selectList(Wrappers.lambdaQuery(ZfbShopOrderDayLimit.class)
-				.gt(ZfbShopOrderDayLimit::getRemainOrders, 0));
+				.le(ZfbShopOrderDayLimit::getHourStart, hour)
+				.ge(ZfbShopOrderDayLimit::getEndStart, hour)
+				.gt(ZfbShopOrderDayLimit::getDayRemainOrders, 0)
+				.gt(ZfbShopOrderDayLimit::getHourLimitOrders, 0));
 		for (ZfbShopOrderDayLimit orderDayLimit : orderDayLimits) {
 			Integer update = zfbShopOrderDayLimitMapper.decrRemainOrdersById(orderDayLimit.getId());
 			if (update == 1) {

+ 5 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/shop/ShopConfigController.java

@@ -81,4 +81,9 @@ public class ShopConfigController {
                 .eq(StrUtil.isNotBlank(zfbShopId), Channel::getZfbShopId, zfbShopId));
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }
+
+    /**
+     * 支付宝每日限单数 配置列表
+     */
+
 }