From 80607c8642b0a60de94d5be0adfefd288b8513ac Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Fri, 18 Jul 2025 16:15:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=80=9D=E8=BF=85=E6=9F=A5=E8=AF=A2=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E6=B7=98=E6=B1=B0=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/Schedule/DynamicTaskScheduler.java | 47 ++----------------- .../client/controller/WebController.java | 11 ++++- .../java/com/small/client/dao/SxDataDao.java | 2 +- .../client/service/imp/SxDataServiceImp.java | 3 +- 4 files changed, 17 insertions(+), 46 deletions(-) diff --git a/client/src/main/java/com/small/client/Schedule/DynamicTaskScheduler.java b/client/src/main/java/com/small/client/Schedule/DynamicTaskScheduler.java index 40ef8277..a927fa98 100644 --- a/client/src/main/java/com/small/client/Schedule/DynamicTaskScheduler.java +++ b/client/src/main/java/com/small/client/Schedule/DynamicTaskScheduler.java @@ -2,7 +2,6 @@ package com.small.client.Schedule; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; -import com.small.client.Utils.CommonUtil; import com.small.client.dto.CommentModel; import com.small.client.dto.DataBaseInfo; import com.small.client.service.SxDataService; @@ -36,11 +35,6 @@ public class DynamicTaskScheduler { @PostConstruct public void initTasks() { - //初始化 start - CommentModel commentModel =sxDataService.getCommentModel(); - DataBaseInfo enabledTask = sxDataService.getDataBaseInfo(commentModel); - executeTask(enabledTask.getDataBaseName(),commentModel); - //初始化 end refreshTasks(); // 每5分钟检查一次数据库更新 taskScheduler.scheduleAtFixedRate(this::refreshTasks, Duration.ofHours(1)); @@ -96,48 +90,15 @@ public class DynamicTaskScheduler { commentModel =sxDataService.getCommentModel(); } DataBaseInfo dataBaseInfo=sxDataService.getDataBaseInfo(commentModel); - if(dataBaseInfo==null||StringUtils.isEmpty(dataBaseInfo.getUserName())){ - return; - } - String refreshTime=""; if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){ - refreshTime=DateUtil.formatDateTime(dataBaseInfo.getRefreshTime()); - commentModel.setSyncTime(refreshTime); + commentModel.setSyncTime(DateUtil.formatDateTime(dataBaseInfo.getRefreshTime())); } sxDataService.syncStoreData(dataBaseInfo,commentModel); - if(StringUtils.isNotEmpty(refreshTime)){//有刷新时间,证明不是全量,需要判断是否有新商品,有新商品才同步品牌和分类 - if(sxDataService.isNewShop(dataBaseInfo,refreshTime)){ - sxDataService.SyncBranchList(dataBaseInfo,commentModel); - sxDataService.SyncCategory(dataBaseInfo,commentModel); - } - }else { - log.info("首次同步,无刷新时间"); - sxDataService.SyncBranchList(dataBaseInfo,commentModel); - sxDataService.SyncCategory(dataBaseInfo,commentModel); - } + sxDataService.SyncBranchList(dataBaseInfo,commentModel); + sxDataService.SyncCategory(dataBaseInfo,commentModel); sxDataService.SyncGoods(dataBaseInfo,commentModel);//todo 暂时同步全部的商品如果后期修改,需要增加服务器的字段 - try { - if(ObjectUtil.isNotEmpty(dataBaseInfo.getShopGapTime())){ - long sleepTime= CommonUtil.convertExpressionToLong(dataBaseInfo.getShopGapTime()); - Thread.sleep(sleepTime);//两分钟之后执行 - }else { - Thread.sleep(1000*30); - } - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){ - commentModel.setSyncTime(refreshTime); - } sxDataService.SyncVipList(dataBaseInfo,commentModel); - boolean isNewActives=sxDataService.syncAtive(dataBaseInfo,commentModel); - if(isNewActives){ - log.info("---有新增的活动,同步活动商品开始--"); - sxDataService.syncAtiveShops(dataBaseInfo,commentModel); - }else { - log.info("---无新增的活动,无需同步活动商品--"); - } - + sxDataService.syncAtiveShops(dataBaseInfo,commentModel); isRuning=false; } diff --git a/client/src/main/java/com/small/client/controller/WebController.java b/client/src/main/java/com/small/client/controller/WebController.java index c49a082b..bcb6f051 100644 --- a/client/src/main/java/com/small/client/controller/WebController.java +++ b/client/src/main/java/com/small/client/controller/WebController.java @@ -38,7 +38,16 @@ public class WebController { public void syncCategory(){ log.info("syncCategory"); //sxDataService.getAppSign(); - sxDataService.SyncCategory(new DataBaseInfo(),sxDataService.getCommentModel()); + CommentModel commentModel= sxDataService.getCommentModel(); + DataBaseInfo dataBaseInfo=sxDataService.getDataBaseInfo(commentModel); + if(dataBaseInfo==null){ + log.error("syncGoods dataBaseInfo is null"); + return; + } + if(ObjectUtil.isNotEmpty(dataBaseInfo.getRefreshTime())){ + commentModel.setSyncTime(DateUtil.formatDateTime(dataBaseInfo.getRefreshTime())); + } + sxDataService.SyncCategory(dataBaseInfo,sxDataService.getCommentModel()); } @RequestMapping("/syncGoods") diff --git a/client/src/main/java/com/small/client/dao/SxDataDao.java b/client/src/main/java/com/small/client/dao/SxDataDao.java index b1bced36..65ab27b4 100644 --- a/client/src/main/java/com/small/client/dao/SxDataDao.java +++ b/client/src/main/java/com/small/client/dao/SxDataDao.java @@ -24,7 +24,7 @@ import java.util.*; public class SxDataDao extends BaseDao{ private final static String T_BD_ITEM_CLS="t_bd_item_cls";//商品分类 - private final static String T_BD_ITEM_INFO="t_bd_item_info";//商品表 + private final static String T_BD_ITEM_INFO="t_bd_item_info b";//商品表 private final static String T_RM_VIP_INFO="t_rm_vip_info";//会员表 private final static String ITEM_CLSNO="item_clsno";//商品分类排序字段 diff --git a/client/src/main/java/com/small/client/service/imp/SxDataServiceImp.java b/client/src/main/java/com/small/client/service/imp/SxDataServiceImp.java index efef9dee..da867c12 100644 --- a/client/src/main/java/com/small/client/service/imp/SxDataServiceImp.java +++ b/client/src/main/java/com/small/client/service/imp/SxDataServiceImp.java @@ -295,7 +295,8 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService * @param commentModel */ private void syncAllGoods(DataBaseInfo dataBaseInfo, CommentModel commentModel){ - String where="where 1=1"; + //String where="where 1=1"; + String where="where b.status='1'"; Integer total =0; String parentId=getAndCacheTree(dataBaseInfo,dataBaseInfo.getCategoryName());//加载缓存用的 if(DicEnum.SYNCTYPE_02.getCode().equals(dataBaseInfo.getSyncType())){