From 74b2581c8a9be309ca6454da3ff2c56501368771 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 09 一月 2025 09:30:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java | 30 ++++++++++++++++++++++++++---- 1 files changed, 26 insertions(+), 4 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java index d4e7951..68f47f6 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.other.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -20,7 +21,9 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.ZoneId; +import java.time.ZoneOffset; import java.util.List; +import java.util.Set; /** * <p> @@ -51,7 +54,7 @@ PageInfo<TechnicianSubscribeVO> pageInfo = new PageInfo(pageCurr, pageSize); List<TechnicianSubscribeVO> list = technicianSubscribeMapper.getTechnicianSubscribeByUserAndShop(pageInfo, shopId, status); for (TechnicianSubscribeVO technicianSubscribeVO : list) { - Long id = technicianSubscribeVO.getId(); + String id = technicianSubscribeVO.getId(); TechnicianSubscribe technicianSubscribe = this.getById(id); AppUser appUser = appUserClient.getAppUserById(technicianSubscribe.getAppUserId()); technicianSubscribeVO.setUserName(appUser.getName()); @@ -65,6 +68,11 @@ Integer serviceMode, Integer pageCurr, Integer pageSize) { PageInfo<TechnicianSubscribeVO> pageInfo = new PageInfo(pageCurr, pageSize); List<TechnicianSubscribeVO> technicianSubscribeByUserAndShop1 = technicianSubscribeMapper.getTechnicianSubscribeByUserAndShop1(pageInfo, shopId, status, phone, name, serviceMode); + for (TechnicianSubscribeVO technicianSubscribeVO : technicianSubscribeByUserAndShop1) { + AppUser appUser = appUserClient.getAppUserById(technicianSubscribeVO.getAppUserId()); + technicianSubscribeVO.setUserName(appUser.getName()); + technicianSubscribeVO.setPhone(appUser.getPhone()); + } return pageInfo.setRecords(technicianSubscribeByUserAndShop1); } @Override @@ -83,8 +91,22 @@ if (subscribe.getOrderId() != null){ orderGoodsClient.subscribe(subscribe.getOrderId(), subscribe.getTechnicianId()); } - LocalDateTime subscribeTime = subscribe.getSubscribeTime(); - long deadlineTimestamp = subscribeTime.atZone(ZoneId.systemDefault()).toEpochSecond(); - redisTemplate.opsForZSet().add("delay_queue:subscribe", subscribe.getId().toString(), deadlineTimestamp); + //添加到redis有序队列中用于定时处理状态 + redisTemplate.opsForZSet().add("technician_subscribe", subscribe.getId().toString(), subscribe.getSubscribeTime().toEpochSecond(ZoneOffset.UTC)); + } + + + /** + * 定时修改到期状态 + */ + @Override + public void taskEditStstus() { + Set<String> technician_subscribe = redisTemplate.opsForZSet().range("technician_subscribe", 0, LocalDateTime.now().toEpochSecond(ZoneOffset.UTC)); + if(technician_subscribe.size() > 0){ + List<TechnicianSubscribe> list = this.listByIds(technician_subscribe); + list.forEach(s->s.setStatus(3)); + this.updateBatchById(list); + redisTemplate.opsForZSet().remove("technician_subscribe", technician_subscribe.toArray()); + } } } -- Gitblit v1.7.1