he2802 преди 1 година
родител
ревизия
2299e70db6
променени са 1 файла, в които са добавени 12 реда и са изтрити 0 реда
  1. 12 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderHandleServiceImpl.java

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderHandleServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.zhongzheng.common.core.redis.RedisCache;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.ServletUtils;
@@ -41,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -86,6 +88,8 @@ public class OrderHandleServiceImpl extends ServiceImpl<OrderHandleMapper, Order
     @Autowired
     private IGoodsService iGoodsService;
 
+    @Autowired
+    private RedisCache redisCache;
 
     @Override
     public OrderHandleVo queryById(Long id) {
@@ -260,6 +264,13 @@ public class OrderHandleServiceImpl extends ServiceImpl<OrderHandleMapper, Order
     @Override
     @Transactional(rollbackFor = Exception.class)
     public String createOrder(OrderHandleAddBo bo) {
+        String key = "SUBMIT_HANDLE:"+bo.getCreateUserId()+"-"+bo.getUserGoodsList().size();
+        Long keyStatus = redisCache.getCacheObject(key);
+        if(Validator.isNotEmpty(keyStatus)&&keyStatus==100L){
+            throw new CustomException("禁止频繁提交",667);
+        }
+        redisCache.setCacheObject(key, 100L,20, TimeUnit.SECONDS);
+
         String handleOrderSn = insertByAddBo(bo);
         String importNo = ServletUtils.getEncoded("IMPORT");
         for (OrderHandleItemAddBo itemAddBo : bo.getUserGoodsList()) {
@@ -278,6 +289,7 @@ public class OrderHandleServiceImpl extends ServiceImpl<OrderHandleMapper, Order
             addBo.setHandleOrderSn(handleOrderSn);
             iOrderService.placePlatHandleOrder(addBo);
         }
+        redisCache.deleteObject(key);
         return handleOrderSn;
     }