From 14f64e94adce5f5542f1572dfcf1976a2b044650 Mon Sep 17 00:00:00 2001 From: Xiang Date: Mon, 19 Jan 2026 14:12:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=96=B0=E5=A2=9E=E5=BD=93=E5=A4=A9?= =?UTF-8?q?=E5=9C=BA=E5=9C=B0=E4=BF=A1=E6=81=AF=E6=8B=89=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jntyzx/manage/IUserTokenInfoManage.java | 1 - .../service/impl/OrderInfoServiceImpl.java | 5 +- .../impl/UserTokenInfoServiceImpl.java | 6 +- .../app/schedule/jntyzx/JtVenuePullTask.java | 13 ++-- .../jntyzx/JtVenueTodaySubscribeTask.java | 61 +++++++++++++++++++ .../jntyzx/JtVenueTomorrowPullTask.java | 5 +- 6 files changed, 76 insertions(+), 15 deletions(-) create mode 100644 xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueTodaySubscribeTask.java diff --git a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/manage/IUserTokenInfoManage.java b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/manage/IUserTokenInfoManage.java index 65a9bcf..903cc51 100644 --- a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/manage/IUserTokenInfoManage.java +++ b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/manage/IUserTokenInfoManage.java @@ -10,7 +10,6 @@ import java.util.List; * @Date: 2025-12-16 09:19 */ public interface IUserTokenInfoManage extends IService { - List listUser(); UserTokenInfoDO getByName(String name); } diff --git a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/OrderInfoServiceImpl.java b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/OrderInfoServiceImpl.java index 369e932..c253ab2 100644 --- a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/OrderInfoServiceImpl.java +++ b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/OrderInfoServiceImpl.java @@ -12,10 +12,8 @@ import com.xiang.app.modules.jntyzx.manage.IOrderCreateInfoManage; import com.xiang.app.modules.jntyzx.service.IJntyzxHttpService; import com.xiang.app.modules.jntyzx.service.IJtOrderService; import com.xiang.xmc.service.cache.service.IRedisService; -import com.xiang.xservice.basic.utils.JsonUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -78,6 +76,9 @@ public class OrderInfoServiceImpl implements IJtOrderService { if (orderResp.getMessage().contains("锁卡")) { return true; } + if (orderResp.getMessage().contains("限制")) { + return true; + } return false; } } diff --git a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/UserTokenInfoServiceImpl.java b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/UserTokenInfoServiceImpl.java index b4eba9d..668401a 100644 --- a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/UserTokenInfoServiceImpl.java +++ b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/UserTokenInfoServiceImpl.java @@ -56,7 +56,7 @@ public class UserTokenInfoServiceImpl implements IUserTokenInfoService { @Override public boolean flushToken() { - List userTokenInfoDOS = userTokenInfoManage.listUser(); + List userTokenInfoDOS = userTokenInfoManage.list(); if (CollectionUtils.isEmpty(userTokenInfoDOS)) { log.info("【心跳监测】查询用户信息为空,无需操作"); return true; @@ -85,8 +85,12 @@ public class UserTokenInfoServiceImpl implements IUserTokenInfoService { boolean flag = StringUtils.contains(jntyzxResponse.getMessage(), "已存在"); if (flag) { log.info("用户名:{}心跳成功✅✅✅✅✅✅", userTokenInfoDO.getName()); + userTokenInfoDO.setStatus(1); + userTokenInfoManage.updateById(userTokenInfoDO); } else { jtDingTalkFactory.sendMsg("用户名:" + userTokenInfoDO.getName() + "心跳失败,消息:" + jntyzxResponse.getMessage()); + userTokenInfoDO.setStatus(0); + userTokenInfoManage.updateById(userTokenInfoDO); } return flag; } diff --git a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenuePullTask.java b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenuePullTask.java index 637b404..19bdc43 100644 --- a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenuePullTask.java +++ b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenuePullTask.java @@ -69,7 +69,7 @@ public class JtVenuePullTask { return; } - StringBuffer msg = new StringBuffer("查询到20:00-22:00空闲场地信息===>时间:" + DateUtils.getDateFromDate(LocalDate.now()) + "\n"); + StringBuffer msg = new StringBuffer("查询到20:00-22:00空闲场地信息===>\n时间:" + DateUtils.getDateFromDate(LocalDate.now())); sitePositionLists.forEach(item -> { msg.append(item.getPlaceName()).append("\n"); }); @@ -78,17 +78,16 @@ public class JtVenuePullTask { } private List handleMsgSendList(List sitePositionLists, int dayOfWeek) { + // 过滤出来8-10的未订购的场地信息 + sitePositionLists = sitePositionLists.stream() + .filter(VenueInfoUtils::get8210VenueInfo) + .filter(item -> StringUtils.equals(item.getContacts(), "0")).toList(); // 周六周日过滤小馆,不查询当天小馆信息 if (dayOfWeek == 6 || dayOfWeek == 7) { return sitePositionLists.stream() - .filter(VenueInfoUtils::get8210VenueInfo) - .filter(item -> StringUtils.equals(item.getContacts(), "0")) .filter(item -> !item.getPlaceName().contains("小馆")) .toList(); } - return sitePositionLists.stream() - .filter(VenueInfoUtils::get8210VenueInfo) - .filter(item -> StringUtils.equals(item.getContacts(), "0")) - .toList(); + return sitePositionLists; } } diff --git a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueTodaySubscribeTask.java b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueTodaySubscribeTask.java new file mode 100644 index 0000000..7122dd6 --- /dev/null +++ b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueTodaySubscribeTask.java @@ -0,0 +1,61 @@ +package com.xiang.app.schedule.jntyzx; + +import com.google.common.collect.Maps; +import com.xiang.app.common.service.dingtalk.JtDingTalkFactory; +import com.xiang.app.modules.jntyzx.entity.resp.query.SitePositionList; +import com.xiang.app.modules.jntyzx.service.IJntyzxHttpService; +import com.xiang.app.modules.jntyzx.service.IUserTokenInfoService; +import com.xiang.app.modules.jntyzx.utils.VenueInfoUtils; +import com.xiang.app.modules.jntyzx.utils.WeekendUtils; +import com.xiang.core.quartz.annotation.XxzJob; +import com.xiang.xservice.basic.utils.DateUtils; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.GetMapping; + +import java.time.LocalDate; +import java.util.List; +import java.util.Map; + +/** + * @Author: xiang + * @Date: 2026-01-19 14:00 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class JtVenueTodaySubscribeTask { + + private final IJntyzxHttpService jntyzxHttpService; + private final IUserTokenInfoService userTokenInfoService; + private final JtDingTalkFactory jtDingTalkFactory; + + @XxzJob(name = "jtVenueTodaySubscribeTask") + @GetMapping("/jtVenueTodaySubscribeTask") + public void handle() { + String token = userTokenInfoService.getToken("Xiang"); + if (StringUtils.isBlank(token)) { + return; + } + List sitePositionLists = jntyzxHttpService.queryAvailable(WeekendUtils.isWeekend(), token); + if (CollectionUtils.isEmpty(sitePositionLists)) { + return; + } + sitePositionLists = sitePositionLists.stream().filter(VenueInfoUtils::get8210VenueInfo).toList(); + Map map = Maps.newLinkedHashMap(); + for (SitePositionList sitePositionList : sitePositionLists) { + if (map.containsKey(sitePositionList.getPlaceName())) { + continue; + } + map.put(sitePositionList.getPlaceName(), sitePositionList); + } + StringBuffer msg = new StringBuffer("查询江体场地信息=====>\n时间:" + DateUtils.getDateFromDate(LocalDate.now()) + " 20:00-22:00\n"); + map.forEach((placeName, sitePositionList) -> { + msg.append(placeName).append("订购人:").append(sitePositionList.getContacts()).append("\n"); + }); + jtDingTalkFactory.sendMsg(msg.toString()); + } +} diff --git a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueTomorrowPullTask.java b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueTomorrowPullTask.java index 76e5ae5..0de9b36 100644 --- a/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueTomorrowPullTask.java +++ b/xservice-server/src/main/java/com/xiang/app/schedule/jntyzx/JtVenueTomorrowPullTask.java @@ -21,12 +21,9 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDate; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.function.Function; -import java.util.stream.Collectors; @Slf4j @Component @@ -73,7 +70,7 @@ public class JtVenueTomorrowPullTask { } map.put(sitePositionList.getPlaceName(), sitePositionList); } - StringBuffer msg = new StringBuffer("查询场地信息===>时间:\n" + DateUtils.getDateFromDate(LocalDate.now()) + " 20:00-22:00\n"); + StringBuffer msg = new StringBuffer("查询江体场地信息===>时间:\n" + DateUtils.getDateFromDate(LocalDate.now().plusDays(1)) + " 20:00-22:00\n"); map.forEach((placeName, sitePositionList) -> { msg.append(placeName).append("订购人:").append(sitePositionList.getContacts()).append("\n"); });