From eb13dd4217d543ecf77567b56c8b1328aab5020e Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Tue, 1 Jul 2025 10:14:49 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E4=BB=A3=E7=A0=81=E8=B0=83?= =?UTF-8?q?=E4=BC=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/xkt/StoreController.java | 6 ++++ .../controller/xkt/StoreMemberController.java | 3 ++ .../web/controller/xkt/WebsiteController.java | 2 +- .../ruoyi/common/constant/CacheConstants.java | 4 +-- .../controller/DailyTaskController.java | 6 ++++ .../java/com/ruoyi/quartz/task/XktTask.java | 30 +++++++++++-------- .../mapper/quartz/DailySaleProductMapper.xml | 6 ++-- .../xkt/mapper/DailySaleProductMapper.java | 10 ++++--- .../service/impl/WebsiteAPPServiceImpl.java | 8 ++--- 9 files changed, 49 insertions(+), 26 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java index 4d899a641..2c719c2ef 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java @@ -36,6 +36,12 @@ public class StoreController extends XktBaseController { final ISysUserService userService; final TokenService tokenService; + + // TODO 获取试用期即将到期的档口 + + // TODO 获取获取正式使用即将到期的档口 + + @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()") @ApiOperation(value = "模糊查询档口", httpMethod = "GET", response = R.class) @Log(title = "模糊查询档口", businessType = BusinessType.UPDATE) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreMemberController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreMemberController.java index b612b7ae6..c8a61c021 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreMemberController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreMemberController.java @@ -38,5 +38,8 @@ public class StoreMemberController extends XktBaseController { return R.ok(storeMemberService.create(BeanUtil.toBean(createVO, StoreMemberCreateDTO.class))); } + // TODO 每天获取档口会员过期提醒 + // TODO 每天获取档口会员过期提醒 + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/WebsiteController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/WebsiteController.java index 09cd8bcd2..8728a93f1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/WebsiteController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/WebsiteController.java @@ -285,7 +285,7 @@ public class WebsiteController extends XktBaseController { return R.ok(websiteAPPService. getAppCateProdSaleTop3List()); } - @ApiOperation(value = "APP 商品榜 分类销量 二级列表", httpMethod = "GET", response = R.class) + @ApiOperation(value = "APP 商品榜 分类销量 次级详情列表", httpMethod = "GET", response = R.class) @GetMapping("/app/prod/cate/sub/{prodCateId}") public R> getAppCateSubProdSaleList(@PathVariable Long prodCateId) throws IOException { return R.ok(websiteAPPService. getAppCateSubProdSaleList(prodCateId)); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java index 947221c0c..043c4bc05 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java @@ -268,11 +268,11 @@ public class CacheConstants { /** * 档口商品销售top100 */ - public static final String TOP_100_SALE_PROD = "top_100_sale_prod"; + public static final String TOP_50_SALE_PROD = "top_50_sale_prod"; /** * 商品分类销量前100 */ - public static final String CATE_TOP_100_SALE_PROD = "cate_top_100_sale_prod"; + public static final String CATE_TOP_50_SALE_PROD = "cate_top_50_sale_prod"; } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/DailyTaskController.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/DailyTaskController.java index d35727339..584394ae0 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/DailyTaskController.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/DailyTaskController.java @@ -114,6 +114,12 @@ public class DailyTaskController extends BaseController { return R.ok(); } + @PostMapping("/store-memeber") + public R expireStoreMember(SysJob sysJob) { + task.autoCloseExpireStoreMember(); + return R.ok(); + } + diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java index 072a560da..d7bb01be5 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java @@ -114,6 +114,7 @@ public class XktTask { final NoticeMapper noticeMapper; final UserNoticeMapper userNoticeMapper; final UserSubscriptionsMapper userSubMapper; + final StoreMemberMapper storeMemberMapper; /** * 每年3月1日、6月1日、9月1日、12月1日执行 @@ -710,12 +711,17 @@ public class XktTask { * 凌晨2:45 更新档口会员过期 */ public void autoCloseExpireStoreMember() { - - // TODO 更新档口过期会员 删除ES中商品标识 - // TODO 更新档口过期会员 删除ES中商品标识 - // TODO 更新档口过期会员 删除ES中商品标识 - -// this.storeMapper.updateExpireStoreMember(); + final Date yesterday = java.sql.Date.valueOf(LocalDate.now().minusDays(1)); + // 截止昨天,会员过期的档口 + List expireList = this.storeMemberMapper.selectList(new LambdaQueryWrapper() + .eq(StoreMember::getDelFlag, Constants.UNDELETED).eq(StoreMember::getEndTime, yesterday)); + if (CollectionUtils.isEmpty(expireList)) { + return; + } + expireList.forEach(x -> x.setDelFlag(Constants.DELETED)); + this.storeMemberMapper.updateById(expireList); + // 删除redis中过期会员 + expireList.forEach(x -> redisCache.deleteObject(CacheConstants.STORE_MEMBER + x.getId())); } /** @@ -725,17 +731,17 @@ public class XktTask { final Date oneMonthAgo = java.sql.Date.valueOf(LocalDate.now().minusMonths(1)); final Date now = java.sql.Date.valueOf(LocalDate.now()); // 销量前100的ID列表,直接放到redis中 - List top100ProdList = this.dailySaleProdMapper.prodSaleTop100List(oneMonthAgo, now); - if (CollectionUtils.isNotEmpty(top100ProdList)) { - redisCache.setCacheObject(CacheConstants.TOP_100_SALE_PROD, top100ProdList); + List top50ProdList = this.dailySaleProdMapper.prodSaleTop50List(oneMonthAgo, now); + if (CollectionUtils.isNotEmpty(top50ProdList)) { + redisCache.setCacheObject(CacheConstants.TOP_50_SALE_PROD, top50ProdList); } // 按照商品分类来进行销量排序 - List cateSaleTop100ProdList = this.dailySaleProdMapper.prodCateSaleTop100List(oneMonthAgo, now); - if (CollectionUtils.isEmpty(cateSaleTop100ProdList)) { + List cateSaleTop50ProdList = this.dailySaleProdMapper.prodCateSaleTop50List(oneMonthAgo, now); + if (CollectionUtils.isEmpty(cateSaleTop50ProdList)) { return; } // 将各个分类销量数据存到redis中 - redisCache.setCacheObject(CacheConstants.CATE_TOP_100_SALE_PROD, cateSaleTop100ProdList); + redisCache.setCacheObject(CacheConstants.CATE_TOP_50_SALE_PROD, cateSaleTop50ProdList); } diff --git a/ruoyi-quartz/src/main/resources/mapper/quartz/DailySaleProductMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/DailySaleProductMapper.xml index 76aa2158d..c252ea182 100644 --- a/ruoyi-quartz/src/main/resources/mapper/quartz/DailySaleProductMapper.xml +++ b/ruoyi-quartz/src/main/resources/mapper/quartz/DailySaleProductMapper.xml @@ -130,7 +130,7 @@ LIMIT 10 - SELECT dsp.store_prod_id, COUNT( dsp.sale_num ) AS count @@ -147,7 +147,7 @@ LIMIT 100 - WITH ranked_products AS ( SELECT sp.prod_cate_id, @@ -172,7 +172,7 @@ FROM ranked_products WHERE - rank_in_category <= 100 + rank_in_category <= 50 ORDER BY prod_cate_id, sale_count DESC; diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/DailySaleProductMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/DailySaleProductMapper.java index 2a59fa950..e4eded304 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/DailySaleProductMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/DailySaleProductMapper.java @@ -74,18 +74,20 @@ public interface DailySaleProductMapper extends BaseMapper { /** * 筛选销量前100的商品 + * * @param oneMonthAgo 一月前 - * @param yesterday 昨天 + * @param yesterday 昨天 * @return List */ - List prodSaleTop100List(@Param("oneMonthAgo") Date oneMonthAgo, @Param("yesterday") Date yesterday); + List prodSaleTop50List(@Param("oneMonthAgo") Date oneMonthAgo, @Param("yesterday") Date yesterday); /** * 每一个分类销量排名 + * * @param oneMonthAgo 一月前 - * @param yesterday 昨天 + * @param yesterday 昨天 * @return List */ - List prodCateSaleTop100List(@Param("oneMonthAgo") Date oneMonthAgo, @Param("yesterday") Date yesterday); + List prodCateSaleTop50List(@Param("oneMonthAgo") Date oneMonthAgo, @Param("yesterday") Date yesterday); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java index c3bacaa25..7db3304ed 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java @@ -380,7 +380,7 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService { @Transactional(readOnly = true) public List getAppProdSaleTop100List() throws IOException { // 从redis中获取销量前100的商品 - List top100ProdList = redisCache.getCacheObject(CacheConstants.TOP_100_SALE_PROD); + List top100ProdList = redisCache.getCacheObject(CacheConstants.TOP_50_SALE_PROD); if (CollectionUtils.isEmpty(top100ProdList)) { return Collections.emptyList(); } @@ -419,7 +419,7 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService { @Override @Transactional(readOnly = true) public List getAppCateProdSaleTop3List() throws IOException { - List cateSaleTop100ProdList = redisCache.getCacheObject(CacheConstants.CATE_TOP_100_SALE_PROD); + List cateSaleTop100ProdList = redisCache.getCacheObject(CacheConstants.CATE_TOP_50_SALE_PROD); if (CollectionUtils.isEmpty(cateSaleTop100ProdList)) { return new ArrayList<>(); } @@ -471,7 +471,7 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService { @Override @Transactional(readOnly = true) public List getAppCateSubProdSaleList(Long prodCateId) throws IOException { - List cateSaleTop100ProdList = redisCache.getCacheObject(CacheConstants.CATE_TOP_100_SALE_PROD); + List cateSaleTop100ProdList = redisCache.getCacheObject(CacheConstants.CATE_TOP_50_SALE_PROD); if (CollectionUtils.isEmpty(cateSaleTop100ProdList)) { return new ArrayList<>(); } @@ -484,7 +484,7 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService { searchDTO.setProdCateIdList(Collections.singletonList(prodCateId.toString())); searchDTO.setProdIdList(prodIdList); searchDTO.setPageNum(1); - searchDTO.setPageSize(1000); + searchDTO.setPageSize(100); searchDTO.setSort("recommendWeight"); Page page = this.search(searchDTO); Long userId = SecurityUtils.getUserIdSafe();