Преглед на файлове

更新内容:1.如果是一食堂和二食堂则默认全部添加明厨亮灶标签,2.扩容线程池,并增加1000线程队列,3.修改定时自动完成制作的定时任务

liu преди 1 месец
родител
ревизия
480efc9caf

+ 4 - 7
src/main/java/com/sqx/common/utils/MyGlobalThreadPool.java

@@ -1,11 +1,7 @@
 package com.sqx.common.utils;
 
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
-import java.util.concurrent.SynchronousQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import cn.hutool.core.exceptions.UtilException;
 
@@ -29,7 +25,8 @@ public class MyGlobalThreadPool {
 		if (null != executor) {
 			executor.shutdownNow();
 		}
-		executor = new ThreadPoolExecutor(10, 20, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>());
+//		executor = new ThreadPoolExecutor(10, 20, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>());
+		executor = new ThreadPoolExecutor(20, 40, 60L, TimeUnit.SECONDS,  new LinkedBlockingQueue<>(1000));
 	}
 
 	/**

+ 4 - 0
src/main/java/com/sqx/modules/goods/entity/GoodsShop.java

@@ -269,6 +269,10 @@ public class GoodsShop implements Serializable {
     @ApiModelProperty("会员优惠描述")
     private String vipPromotionDesc;
 
+    @TableField(exist = false)
+    @ApiModelProperty("显示明厨亮灶:是 1  否 2")
+    private Integer isMclz;
+
     public GoodsShop() {
     }
 }

+ 20 - 10
src/main/java/com/sqx/modules/goods/service/impl/GoodsServiceImpl.java

@@ -477,7 +477,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsDao, Goods> implements Go
     @Override
     public Result selectAllShop(Integer page, Integer limit, String shopName, String region, Integer isActivity, String vipPromotion) {
         Page<GoodsShop> pages = new Page<>(page, limit);
-        PageUtils pageUtils = new PageUtils(goodsShopDao.selectAllShop(pages, shopName, region, isActivity,vipPromotion));
+        PageUtils pageUtils = new PageUtils(goodsShopDao.selectAllShop(pages, shopName, region, isActivity, vipPromotion));
         return Result.success().put("data", pageUtils);
     }
 
@@ -605,6 +605,16 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsDao, Goods> implements Go
                     errandTime = Double.parseDouble(one2.getValue());
                 }
                 goodsShop.setErrandTime(errandTime);
+
+
+//                判断该店铺是否为一食堂11和二食堂25店铺类型,是的话显示明厨亮灶:是 1  否 2
+                String shopTypeId = goodsShop.getShopTypeId();
+                if (shopTypeId.contains("11") || shopTypeId.contains("25")) {
+                    goodsShop.setIsMclz(1);
+                }else {
+                    goodsShop.setIsMclz(2);
+                }
+
             }
         }
 
@@ -934,10 +944,10 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsDao, Goods> implements Go
 
     @Override
     @DataSource("dynamic")
-    public Result goodsCoverList(Integer page,Integer limit,String name) {
+    public Result goodsCoverList(Integer page, Integer limit, String name) {
         Page<Goods> pages = new Page<>(page, limit);
-        Integer total=(page-1)*limit;
-        IPage<Goods> goodsIPage = goodsDao.goodsCoverList(pages, name,total);
+        Integer total = (page - 1) * limit;
+        IPage<Goods> goodsIPage = goodsDao.goodsCoverList(pages, name, total);
         PageUtils pageUtils = new PageUtils(goodsIPage);
         return Result.success().put("data", pageUtils);
     }
@@ -946,8 +956,8 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsDao, Goods> implements Go
     @DataSource("dynamic")
     public Result goodsPictureList(Integer page, Integer limit, String name) {
         Page<Goods> pages = new Page<>(page, limit);
-        Integer total=(page-1)*limit;
-        IPage<Goods> goodsIPage = goodsDao.goodsPictureList(pages, name,total);
+        Integer total = (page - 1) * limit;
+        IPage<Goods> goodsIPage = goodsDao.goodsPictureList(pages, name, total);
         PageUtils pageUtils = new PageUtils(goodsIPage);
         return Result.success().put("data", pageUtils);
     }
@@ -956,8 +966,8 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsDao, Goods> implements Go
     @DataSource("dynamic")
     public Result goodsParticularsPictureList(Integer page, Integer limit, String name) {
         Page<Goods> pages = new Page<>(page, limit);
-        Integer total=(page-1)*limit;
-        IPage<Goods> goodsIPage = goodsDao.goodsParticularsPictureList(pages, name,total);
+        Integer total = (page - 1) * limit;
+        IPage<Goods> goodsIPage = goodsDao.goodsParticularsPictureList(pages, name, total);
         PageUtils pageUtils = new PageUtils(goodsIPage);
         return Result.success().put("data", pageUtils);
     }
@@ -989,7 +999,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsDao, Goods> implements Go
     @DataSource("dynamic")
     public Result selectSupermarketGoodsList(Long shopId, Integer classifyId, Integer page, Integer limit) {
         Page<Goods> pages = new Page<>(page, limit);
-        IPage<Goods> goodsIPage = goodsDao.selectSupermarketGoodsList(pages,shopId, classifyId);
+        IPage<Goods> goodsIPage = goodsDao.selectSupermarketGoodsList(pages, shopId, classifyId);
         return Result.success().put("data", goodsIPage);
     }
 
@@ -1005,7 +1015,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsDao, Goods> implements Go
     public void updateVipPromotion(Long goodsId, String vipPromotion) {
         Goods goods = new Goods();
         goods.setGoodsId(goodsId);
-        goods.setVipPromotion(StrUtil.equals(vipPromotion,"1") ? "1" : "0");
+        goods.setVipPromotion(StrUtil.equals(vipPromotion, "1") ? "1" : "0");
         baseMapper.updateById(goods);
     }
 }

+ 6 - 0
src/main/java/com/sqx/scheduler/config/SchedulerLock.java

@@ -52,4 +52,10 @@ public interface SchedulerLock {
      * 更新店铺销量锁
      */
     String UPDATE_SHOP_SALES_LOCK = "wm:lock:shop:sales:update";
+
+    /**
+     * 商品自动完成锁
+     */
+    String AUTO_COMPLETE_LOCK = "wm:lock:order:auto-complete";
+
 }

+ 8 - 0
src/main/java/com/sqx/scheduler/order/OrderScheduler.java

@@ -120,7 +120,15 @@ public class OrderScheduler {
     @Async
     @Scheduled(cron = "30 */2 * * * ?")
     public void prodIngOrderAutoCompleted(){
+        RLock lock = redissonClient.getLock(SchedulerLock.AUTO_COMPLETE_LOCK);
+        boolean locked = false;
         try {
+            locked = lock.tryLock(0, 300, TimeUnit.SECONDS);
+            if (!locked) {
+                // 获取不到锁,说明有其他实例正在执行此任务
+                log.info("未获取到订单自动制作完成处理锁,跳过本次执行");
+                return;
+            }
             log.info("自动制作完成制作中订单任务开始运行");
             // 获取配置:是否开启制作中订单自动完成
             String value = commonInfoService.findOne(418).getValue();

+ 1 - 1
src/test/java/OrderTest.java

@@ -325,7 +325,7 @@ public class OrderTest {
         RhtQrcodePayApi qrcodePay = new RhtQrcodePayApi(wechatMchConfig.getMchId(), wechatMchConfig.getMchKey(), "https://api.ekbuyclub.com");
 
         String orderNumberStr =
-                "118702260319005697022370"
+                "118702260527006274593720"
                 ;
         for (String orderNumber : orderNumberStr.split(",")) {
             QrcodeQueryRequestBean qqrb = new QrcodeQueryRequestBean();