32 Commits

Author SHA1 Message Date
Xiang
0f7af30789 feat:zlb场地排序 2026-05-09 16:43:55 +08:00
Xiang
b4ed93171c feat:日志打印优化 2026-05-09 15:42:21 +08:00
Xiang
6902a16cfa feat:日志打印优化 2026-05-09 15:24:44 +08:00
Xiang
60992dc4f6 feat:zlb江体优化 2026-05-09 15:17:12 +08:00
Xiang
cb21b38287 feat:江体小程序定时任务优化 2026-05-09 14:58:07 +08:00
Xiang
268b63e607 feat:江体小程序定时任务优化 2026-05-09 14:35:54 +08:00
Xiang
d1584184ae feat:江体小程序 2026-05-09 11:41:03 +08:00
Xiang
fea069d795 feat:江体小程序 2026-05-09 10:56:26 +08:00
Xiang
b30af008e0 feat:江体小程序 2026-05-09 10:21:03 +08:00
Xiang
76ec2c8b3c feat:江体小程序 2026-05-08 17:32:17 +08:00
Xiang
c61343a238 fix:定时任务时间调整 2026-05-08 16:42:24 +08:00
Xiang
a78da44f23 feat:glados积分数量 2026-05-08 16:04:18 +08:00
Xiang
3b596bfa91 feat:glados积分数量 2026-05-08 15:57:50 +08:00
Xiang
f1f3268e84 feat:生产配置 2026-05-08 15:24:35 +08:00
Xiang
9d3db5e1b3 feat:生产配置 2026-05-08 15:02:58 +08:00
Xiang
833b6fc208 doc:注释 2026-05-08 14:59:49 +08:00
Xiang
04862d861a feat:任务加载配置 2026-05-08 14:57:50 +08:00
Xiang
0a8e853753 feat:配置场地信息 2026-05-08 14:28:51 +08:00
Xiang
4eeacf8c52 feat:场地信息拉取 2026-05-08 14:26:57 +08:00
Xiang
c0647b69e2 feat:zlb调试 2026-05-08 14:12:38 +08:00
Xiang
8c4ea440b6 feat:zlb调试 2026-05-08 14:05:51 +08:00
Xiang
8a302db65a feat:zlb任务调试 2026-05-08 12:02:45 +08:00
Xiang
3964547e84 debugger:zlb下单调试 2026-05-08 09:23:50 +08:00
Xiang
c387f81225 feat:zlb接口 2026-05-08 09:19:04 +08:00
Xiang
582beb13db feat:zlb接口 2026-05-07 16:38:59 +08:00
xiang
a1d42a4b27 feat:验证码 2026-05-05 21:23:11 +08:00
xiang
66a69a4968 feat:下单 2026-05-05 17:28:14 +08:00
xiang
d551427821 feat:zlb脚本 2026-05-03 23:43:37 +08:00
xiang
72db541e22 feat:glados和ddns脚本 2026-05-03 23:11:50 +08:00
xiang
f36766112f feat:任务模板方法 2026-05-03 00:06:07 +08:00
xiang
fb48f447be feat:日志 2026-05-02 14:39:55 +08:00
xiang
b8083381b6 feat:ddns 动态解析 2026-05-02 14:36:21 +08:00
171 changed files with 9740 additions and 11 deletions

46
pom.xml
View File

@@ -104,6 +104,11 @@
<artifactId>mapstruct</artifactId>
<version>1.5.5.Final</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.9</version>
</dependency>
<!-- http -->
<dependency>
@@ -111,6 +116,11 @@
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.12.0</version>
</dependency>
<!-- collections -->
<dependency>
<groupId>com.google.guava</groupId>
@@ -129,6 +139,11 @@
</dependency>
<!-- json -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
@@ -145,6 +160,37 @@
<artifactId>alibaba-dingtalk-service-sdk</artifactId>
<version>2.0.0</version>
</dependency>
<!-- aliyun dns解析 -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alidns20150109</artifactId>
<version>3.4.7</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.0.RELEASE</version>
<configuration>
<classifier>exec</classifier>
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.xiang.Application</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -4,8 +4,10 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class Application {
private static final Logger log = LoggerFactory.getLogger(Application.class);

View File

@@ -0,0 +1,77 @@
package com.xiang;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.xiang.common.enums.RedisKeyConstant;
import com.xiang.common.enums.ScheduleEnums;
import com.xiang.common.pojo.schedule.ScheduleOpeningConfigDO;
import com.xiang.common.service.IScheduleOpeningConfigService;
import com.xiang.common.utils.RedisService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @Author: xiang
* @Date: 2026-05-08 14:32
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class ApplicationInit implements ApplicationRunner {
private final IScheduleOpeningConfigService scheduleOpeningConfigService;
private final RedisService redisService;
@Override
public void run(ApplicationArguments args) throws Exception {
log.info("开始加载任务配置!");
loadScheduleTask();
log.info("任务配置加载完成!");
log.info("redis key 加载开始!");
loadRedisKey();
log.info("redis key 加载结束!");
}
private void loadScheduleTask() {
List<ScheduleOpeningConfigDO> allSchedules = scheduleOpeningConfigService.getAll();
Map<String, ScheduleOpeningConfigDO> map = Maps.newHashMap();
if (CollectionUtils.isNotEmpty(allSchedules)) {
map.putAll(allSchedules.stream().collect(Collectors.toMap(ScheduleOpeningConfigDO::getBeanName, Function.identity(), (a, b) -> a)));
}
ScheduleEnums[] enums = ScheduleEnums.values();
if (ArrayUtils.isEmpty(enums)) {
log.info("暂无需要配置的");
return;
}
List<ScheduleOpeningConfigDO> list = Lists.newArrayList();
for (ScheduleEnums scheduleEnum : enums) {
if (map.containsKey(scheduleEnum.getTaskName())) {
continue;
}
ScheduleOpeningConfigDO scheduleOpeningConfigDO = new ScheduleOpeningConfigDO();
scheduleOpeningConfigDO.setModule(scheduleEnum.getModuleCode());
scheduleOpeningConfigDO.setBeanName(scheduleEnum.getTaskName());
scheduleOpeningConfigDO.setStatus(1);
list.add(scheduleOpeningConfigDO);
}
if (CollectionUtils.isNotEmpty(list)) {
scheduleOpeningConfigService.saveBatch(list);
}
}
private void loadRedisKey() {
redisService.set(RedisKeyConstant.JNTYZX_SUBSCRIBE_TIME_KEY, "18:00");
}
}

View File

@@ -0,0 +1,17 @@
package com.xiang.common.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@ConfigurationProperties(prefix = "aliyun.dns")
@Data
public class AliyunDnsPropertyConfig {
private List<String> RR;
private String rootDomain;
}

View File

@@ -3,17 +3,21 @@ package com.xiang.common.config;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.xiang.common.utils.RedisService;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisPassword;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.time.Duration;
@Configuration
public class RedisConfig {
@Bean
@@ -37,7 +41,6 @@ public class RedisConfig {
template.setValueSerializer(jackson2JsonRedisSerializer);
template.setHashValueSerializer(jackson2JsonRedisSerializer);
template.afterPropertiesSet();
return template;
}
@@ -46,4 +49,18 @@ public class RedisConfig {
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory factory) {
return new StringRedisTemplate(factory);
}
@Bean
public RedisConnectionFactory redisConnectionFactory(RedisProperties props) {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
config.setHostName(props.getHost());
config.setPort(Integer.parseInt(props.getPort()));
config.setPassword(RedisPassword.of(props.getPassword()));
config.setDatabase(props.getDatabase());
LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
.commandTimeout(Duration.ofSeconds(3))
.build();
return new LettuceConnectionFactory(config, clientConfig);
}
}

View File

@@ -14,7 +14,7 @@ public class RedisProperties {
private String host;
private String port;
private String password;
private Integer database = 0;
private Integer database;
public String getAddress() {
return "redis://" + host + ":" + port;

View File

@@ -0,0 +1,38 @@
package com.xiang.common.enums;
/**
* @author clover
* @Date 2020/9/15 20:11
*/
public enum DateFormatEnum {
COMMON("ECS_DISK", "yyyy-MM-dd'T'HH:mm:ss'Z'"),
COMMON1("ENUM_FORMAT", "yyyy-MM-dd HH:mm:ss"),
ENUM_FORMAT_OTS("ENUM_FORMAT_OTS", "yyyy-MM-ddHH:mm:ss"),
ASCM_ONE_FORMAT("ASCM_ONE_FORMAT", "yyyy-MM-dd'T'HH:mm'Z'"),
ASCM_TWO_FORMAT("ASCM_TWO_FORMAT", "yyyy-MM-dd'T'HH:mm:ss'Z'"),
ASCM_THREE_FORMAT("ASCM_THREE_FORMAT", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"),
ASCM_FOUR_FORMAT("ASCM_FOUR_FORMAT", "yyyy-MM-dd'T'HH:mm:ss+08:00"),
ASCM_FIVE_FORMAT("ASCM_FIVE_FORMAT", "yyyy-MM-dd'T'HH:mm:ss"),
IRS_FORMAT_YMD("IRS_FORMAT_YMD", "yyyyMMdd"),
IRS_FORMAT_YM("IRS_FORMAT_YM", "yyyyMM"),
ENUM_FORMAT_YMD("ENUM_FORMAT_YMD", "yyyy-MM-dd"),
ENUM_FORMAT_YMD000("ENUM_FORMAT_YMD", "yyyy-MM-dd 00:00:00"),
ENUM_FORMAT_YMD_CSB("ENUM_FORMAT_YMD_CSB", "yyyy-MM-dd/00");
private String key;
private String value;
public String getKey() {
return key;
}
public String getValue() {
return value;
}
DateFormatEnum(String key, String value) {
this.key = key;
this.value = value;
}
}

View File

@@ -0,0 +1,20 @@
package com.xiang.common.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* @Author: xiang
* @Date: 2026-01-04 16:13
*/
@Getter
@RequiredArgsConstructor
public enum DingTalkBizTypeEnum implements BaseDingTalkBizType {
JT("venue", "江南体育中心"),
XB("xb", "股票基金变化通知"),
SCRIPT("script", "脚本运行通知群")
;
private final String bizName;
private final String desc;
}

View File

@@ -0,0 +1,47 @@
package com.xiang.common.enums;
/**
* @Author: xiang
* @Date: 2025-12-15 13:46
*/
public class JntyzxUrlConstant {
/**
* 江南体育中心基础URL
*/
private final static String GNTYZX_BASE_URL = "https://jntyzx.cn:8443";
/**
* 查询当天的场地信息
*/
public final static String QUERY_TODAY_SUBSCRIBE_URL = GNTYZX_BASE_URL + "/GYM-JN/multi/Subscribe/getSubscribeByToday";
/**
* 查询明天场地信息
*/
public final static String QUERY_TOMORROW_SUBSCRIBE_URL = GNTYZX_BASE_URL + "/GYM-JN/multi/Subscribe/getSubscribeByTomorrow";
/**
* 订阅场地
*/
public final static String ADD_SUBSCRIBE = GNTYZX_BASE_URL + "/GYM-JN/multi/Subscribe/addSubscribe";
/**
* 订单信息
*/
public final static String ORDER_INFO = GNTYZX_BASE_URL + "/GYM-JN/multi/busiOrder/queryOrderInfo";
/**
* 心跳监测接口
*/
public final static String HEALTH_DECLARATION = GNTYZX_BASE_URL + "/GYM-JN//busi/healthDeclaration/addUserPrivacy";
/**
* 校验会员卡状态
*/
public final static String CHECK_NUM = GNTYZX_BASE_URL + "/GYM-JN/multi/Subscribe/checkDefaultsNum";
/**
* 根据openId查询会员卡信息
*/
public final static String QUERY_BY_OPEN_ID = GNTYZX_BASE_URL + "/GYM-JN/multi/xfConsumer/queryByOpenId";
}

View File

@@ -0,0 +1,38 @@
package com.xiang.common.enums;
import com.xiang.common.utils.DateUtils;
import java.time.LocalDate;
/**
* @Author: xiang
* @Date: 2025-12-16 10:43
*/
public class RedisKeyConstant {
public static final String JNTYZX_ORDER_CREATE_KEY = "jntyzx:order:create:orderId:";
public static final String JNTUZX_ORDER_PEEK_KEY = "jntyzx:order:peek:user:";
public static final String JNTYZX_VENUE_MSG_SEND_KEY = "jntyzx:order:venue:msg:send";
private static final String JNTYZX_VENUE_SUBSCRIBE_KEY = "jntyzx:venue:subscribe:";
private static final String JNTYZX_ORDER_CLOSE_CARD_KEY = "jntyzx:order:close:card:";
public static String getCloseCardKey(String username) {
return JNTYZX_ORDER_CLOSE_CARD_KEY + username + ":" +getDate();
}
public static String getVenueSubscribeKey(String placeName) {
return JNTYZX_VENUE_SUBSCRIBE_KEY + placeName + ":" + getDate();
}
public static final String JNTYZX_SUBSCRIBE_TIME_KEY = "jntyzx:subscribe:time";
public static String getDate() {
LocalDate now = LocalDate.now();
return ":" + DateUtils.getDateFromDate(now);
}
}

View File

@@ -0,0 +1,49 @@
package com.xiang.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum ScheduleEnums {
/**
* 0glados 1芬玩岛 2江体小程序 3江体zlb 4DDNS
*/
/**
* Aliyun DDNS任务
*/
DOMAIN_DYNAMIC_ANALYSIS_TASK(4, "domain", "domainDynamicAnalysisTask"),
/**
* Glados任务
*/
GLADOS_CHECK_IN_TASK(0, "glados", "gladosCheckInTask"),
/**
* 江体 ZLB任务
*/
ZLB_LOGIN_TASK(3, "zlb", "zlbLoginTask"),
ZLB_TOKEN_CHECK_TASK(3, "zlb", "zlbTokenCheckTask"),
ZLB_SITE_QUERY_TASK(3, "zlb", "zlbSiteQueryTask"),
ZLB_SITE_DAY_TASK(3, "zlb", "zlbSiteDayTask"),
ZLB_ORDER_CREATE_TASK(3, "zlb", "zlbOrderCreateTask"),
ZLB_USER_CONFIG_TASK(3, "zlb", "zlbUserConfigTask"),
JNTYZX_TOKEN_REFRESH_TASK(4, "jt-miniApp", "jntyzxTokenRefreshTask"),
JNTYZX_VENUE_INFO_PULL_TASK(4, "jt-miniApp", "jntyzxVenuePullTask"),
JNTYZX_ORDER_SUBSCRIBE_TASK(4, "jt-miniApp", "jntyzxOrderSubscribeTask"),
JNTYZX_VENUE_TODAY_SUBSCRIBE_TASK(4, "jt-miniApp", "jntyzxVenueTodaySubscribeTask"),
JNTYZX_VENUE_TOMORROW_PULL_TASK(4, "jt-miniApp", "jntyzxVenueTodayPullTask"),
JNTYZX_USER_INFO_CONFIG(4, "jt-miniApp", "jntyzxUserInfoConfigTask"),
JNTYZX_VENUE_INFO_TODAY_RESULT_TASK(4, "jt-miniApp", "jtVenueInfoTodayResultTask"),
JNTYZX_VENUE_INFO_TOMORROW_RESULT_TASK(4, "jt-miniApp", "jtVenueInfoTomorrowResultTask"),
;
private final Integer moduleCode;
private final String module;
private final String taskName;
}

View File

@@ -0,0 +1,18 @@
package com.xiang.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum YcCodeTypeEnum {
YC_10118(10118, "中文字符 1~4位 plus 其他类型准确率不满足 可使用本类型"),
YC_6246(30100, "通用中文点选1"),
YC_310700(310700, "适合Zlb使用的word click")
;
private final Integer type;
private final String desc;
}

View File

@@ -0,0 +1,19 @@
package com.xiang.common.factory;
import com.xiang.common.config.DingTalkRobotProperties;
import com.xiang.common.enums.DingTalkBizTypeEnum;
import com.xiang.common.utils.dingTalk.AbstractDingTalkFactory;
import com.xiang.common.utils.dingTalk.DingTalkSender;
import org.springframework.stereotype.Service;
@Service
public class JntyzxDingTalkFactory extends AbstractDingTalkFactory {
public JntyzxDingTalkFactory(DingTalkRobotProperties dingTalkRobotProperties, DingTalkSender dingTalkSender) {
super(dingTalkRobotProperties, dingTalkSender);
}
@Override
public void sendMsg(String msg) {
getClient(DingTalkBizTypeEnum.JT).sendDingTalkMsg(msg);
}
}

View File

@@ -0,0 +1,19 @@
package com.xiang.common.factory;
import com.xiang.common.config.DingTalkRobotProperties;
import com.xiang.common.enums.DingTalkBizTypeEnum;
import com.xiang.common.utils.dingTalk.AbstractDingTalkFactory;
import com.xiang.common.utils.dingTalk.DingTalkSender;
import org.springframework.stereotype.Service;
@Service
public class ScriptDingTalkFactory extends AbstractDingTalkFactory {
public ScriptDingTalkFactory(DingTalkRobotProperties dingTalkRobotProperties, DingTalkSender dingTalkSender) {
super(dingTalkRobotProperties, dingTalkSender);
}
@Override
public void sendMsg(String msg) {
getClient(DingTalkBizTypeEnum.SCRIPT).sendDingTalkMsg(msg);
}
}

View File

@@ -0,0 +1,171 @@
package com.xiang.common.factory.schedule;
import com.xiang.common.pojo.schedule.ScheduleOpeningConfigDO;
import com.xiang.common.pojo.schedule.ScheduleRunLogDO;
import com.xiang.common.pojo.schedule.TaskResult;
import com.xiang.common.pojo.schedule.ValidationResult;
import com.xiang.common.service.IScheduleOpeningConfigService;
import com.xiang.common.service.IScheduleRunLogService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Objects;
public abstract class BaseScheduleTaskTemplate {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private final IScheduleOpeningConfigService scheduleOpeningConfigService;
private final IScheduleRunLogService scheduleRunLogService;
protected BaseScheduleTaskTemplate(IScheduleOpeningConfigService scheduleOpeningConfigService, IScheduleRunLogService scheduleRunLogService) {
this.scheduleOpeningConfigService = scheduleOpeningConfigService;
this.scheduleRunLogService = scheduleRunLogService;
}
/**
* 模板方法 - 定义任务执行的标准流程
* 子类不应覆写此方法
*/
public final void run() {
String taskName = getTaskName();
Integer module = getModule();
LocalDateTime startTime = LocalDateTime.now();
logger.info("【{}】任务开始执行,开始时间:{}", taskName, startTime.format(formatter));
try {
// 1. 参数校验
logger.info("【{}】开始参数校验...", taskName);
ValidationResult validate = validate(module, taskName);
if (!validate.isValid()) {
logger.error("【{}】参数校验失败:{}", taskName, validate.getMessage());
onValidationFailure(validate);
return;
}
logger.info("【{}】参数校验通过", taskName);
// 2. 执行业务逻辑
logger.info("【{}】开始执行业务逻辑...", taskName);
TaskResult result = doExecute(validate.getValidatedParams());
// 3. 记录成功结果
recordSuccess(result, startTime);
} catch (Exception e) {
// 4. 记录失败结果
logger.error("【{}】任务执行异常", taskName, e);
recordFailure(e, startTime);
}
LocalDateTime endTime = LocalDateTime.now();
logger.info("【{}】任务结束,结束时间:{}", taskName, endTime.format(formatter));
}
/**
* 获取任务名称(子类必须实现)
*/
protected abstract String getTaskName();
/**
* 获取模块名称(子类必须实现)
* @return
*/
protected abstract Integer getModule();
/**
* 获取模块名称(子类必须实现)
* @return
*/
protected abstract String getModuleName();
/**
* 任务校验(子类必须实现)
* @return 校验结果,包含是否通过、错误信息、校验通过的参数对象
*/
private ValidationResult validate(Integer moduleCode, String taskName) {
ValidationResult validationResult = new ValidationResult();
boolean flag = checkTaskOpening(moduleCode, taskName);
validationResult.setValidatedParams(null);
validationResult.setValid(flag);
validationResult.setMessage(flag ? "" : "任务未开启");
return validationResult;
}
/**
* 校验任务是否开启
* @param moduleCode 模块id
* @param taskName 任务名称
* @return
*/
private boolean checkTaskOpening(Integer moduleCode, String taskName) {
ScheduleOpeningConfigDO configsByModule = scheduleOpeningConfigService.getConfigByModule(moduleCode, taskName);
if (Objects.isNull(configsByModule)) {
return false;
}
return Objects.equals(configsByModule.getStatus(), 1);
}
/**
* 具体的业务逻辑执行(子类必须实现)
* @param validatedParams 校验通过的参数
* @return 任务执行结果
*/
protected abstract TaskResult doExecute(Object validatedParams) throws Exception;
/**
* 记录成功结果 - 子类可选择性覆写
*/
protected void recordSuccess(TaskResult result, LocalDateTime startTime) {
LocalDateTime endTime = LocalDateTime.now();
long duration = java.time.Duration.between(startTime, endTime).toMillis();
logger.info("【{}】任务执行成功,耗时:{}ms结果概要{}",
getTaskName(), duration, result.getSummary());
// 可在此扩展:写入数据库、发送通知等
// 例如saveTaskLog(getTaskName(), "SUCCESS", duration, result.getDetail());
ScheduleRunLogDO scheduleRunLogDO = new ScheduleRunLogDO();
scheduleRunLogDO.setModuleName(getModuleName());
scheduleRunLogDO.setTaskName(getTaskName());
scheduleRunLogDO.setParams(result.getParams());
scheduleRunLogDO.setResponse(result.getSummary());
scheduleRunLogDO.setCreateTime(endTime);
scheduleRunLogDO.setRequestFlag(result.isSuccess() ? 1 : 0);
scheduleRunLogService.save(scheduleRunLogDO);
}
/**
* 记录失败结果 - 子类可选择性覆写
*/
protected void recordFailure(Exception e, LocalDateTime startTime) {
LocalDateTime endTime = LocalDateTime.now();
long duration = java.time.Duration.between(startTime, endTime).toMillis();
logger.error("【{}】任务执行失败,耗时:{}ms错误{}",
getTaskName(), duration, e.getMessage());
// 可在此扩展:写入数据库、发送告警等
// 例如saveTaskLog(getTaskName(), "FAILURE", duration, e.getMessage());
ScheduleRunLogDO scheduleRunLogDO = new ScheduleRunLogDO();
scheduleRunLogDO.setModuleName(getModuleName());
scheduleRunLogDO.setTaskName(getTaskName());
// scheduleRunLogDO.setParams();
scheduleRunLogDO.setResponse(e.getMessage());
scheduleRunLogDO.setCreateTime(endTime);
scheduleRunLogDO.setRequestFlag(0);
scheduleRunLogService.save(scheduleRunLogDO);
}
/**
* 参数校验失败时的处理 - 子类可选择性覆写
*/
protected void onValidationFailure(ValidationResult result) {
// 默认实现:仅记录日志
logger.warn("【{}】参数校验失败,跳过任务执行", getTaskName());
// 可在此扩展:发送通知、写入失败日志等
}
}

View File

@@ -0,0 +1,6 @@
package com.xiang.common.handler;
public interface CallbackHandler {
void onResponse(String response);
void onFailure(Throwable t);
}

View File

@@ -0,0 +1,17 @@
package com.xiang.common.manage.jntyzx.miniapp;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.OrderInfoDO;
import java.util.List;
/**
* @Author: xiang
* @Date: 2025-12-16 10:59
*/
public interface IOrderCreateInfoManage extends IService<OrderInfoDO> {
List<OrderInfoDO> queryNoPayOrder();
}

View File

@@ -0,0 +1,12 @@
package com.xiang.common.manage.jntyzx.miniapp;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.UserInfoDO;
/**
* @Author: xiang
* @Date: 2026-05-09 10:17
*/
public interface IUserInfoManage extends IService<UserInfoDO> {
boolean delAll();
}

View File

@@ -0,0 +1,13 @@
package com.xiang.common.manage.jntyzx.miniapp;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.UserRestrictionInfo;
import java.util.List;
public interface IUserRestrictionManage extends IService<UserRestrictionInfo> {
UserRestrictionInfo queryByUserId(Long userId);
List<UserRestrictionInfo> queryByIdList(List<Long> idList);
}

View File

@@ -0,0 +1,20 @@
package com.xiang.common.manage.jntyzx.miniapp;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.UserTokenInfoDO;
import com.xiang.common.pojo.jntyzx.miniapp.req.UserQueryReq;
import java.util.List;
/**
* @Author: xiang
* @Date: 2025-12-16 09:19
*/
public interface IUserTokenInfoManage extends IService<UserTokenInfoDO> {
List<UserTokenInfoDO> listUser();
UserTokenInfoDO getByName(String name);
List<UserTokenInfoDO> listCanOrder();
List<UserTokenInfoDO> queryByList(UserQueryReq req);
}

View File

@@ -0,0 +1,18 @@
package com.xiang.common.manage.jntyzx.miniapp;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.VenueInfoDO;
import java.time.LocalDate;
import java.util.List;
/**
* @Author: xiang
* @Date: 2025-12-15 15:50
*/
public interface IVenueInfoManage extends IService<VenueInfoDO> {
List<VenueInfoDO> queryByDate(LocalDate date);
List<VenueInfoDO> queryByType(LocalDate date, Integer type);
}

View File

@@ -0,0 +1,26 @@
package com.xiang.common.manage.jntyzx.miniapp;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.OrderInfoDO;
import com.xiang.common.mapper.JntyzxOrderCreateInfoMapper;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Author: xiang
* @Date: 2025-12-16 10:59
*/
@Service
public class OrderCreateInfoManageImpl extends ServiceImpl<JntyzxOrderCreateInfoMapper, OrderInfoDO> implements IOrderCreateInfoManage {
@Override
public List<OrderInfoDO> queryNoPayOrder() {
LambdaQueryWrapper<OrderInfoDO> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(OrderInfoDO::getOrderStatus, 0);
return baseMapper.selectList(lambdaQueryWrapper);
}
}

View File

@@ -0,0 +1,18 @@
package com.xiang.common.manage.jntyzx.miniapp;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiang.common.mapper.JntyzxUserInfoMapper;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.UserInfoDO;
import org.springframework.stereotype.Service;
/**
* @Author: xiang
* @Date: 2026-05-09 10:17
*/
@Service
public class UserInfoManageImpl extends ServiceImpl<JntyzxUserInfoMapper, UserInfoDO> implements IUserInfoManage {
@Override
public boolean delAll() {
return baseMapper.delAll() > 0;
}
}

View File

@@ -0,0 +1,27 @@
package com.xiang.common.manage.jntyzx.miniapp;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.UserRestrictionInfo;
import com.xiang.common.mapper.JntyzxUserRestrictionInfoMapper;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserRestrictionManageImpl extends ServiceImpl<JntyzxUserRestrictionInfoMapper, UserRestrictionInfo> implements IUserRestrictionManage {
@Override
public UserRestrictionInfo queryByUserId(Long userId) {
LambdaQueryWrapper<UserRestrictionInfo> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(UserRestrictionInfo::getUserId, userId);
return baseMapper.selectOne(lambdaQueryWrapper);
}
@Override
public List<UserRestrictionInfo> queryByIdList(List<Long> idList) {
LambdaQueryWrapper<UserRestrictionInfo> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.in(UserRestrictionInfo::getUserId, idList);
return baseMapper.selectList(lambdaQueryWrapper);
}
}

View File

@@ -0,0 +1,69 @@
package com.xiang.common.manage.jntyzx.miniapp;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.UserTokenInfoDO;
import com.xiang.common.pojo.jntyzx.miniapp.req.UserQueryReq;
import com.xiang.common.mapper.JntyzxUserTokenInfoMapper;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
/**
* @Author: xiang
* @Date: 2025-12-16 09:19
*/
@Service
public class UserTokenInfoManageImpl extends ServiceImpl<JntyzxUserTokenInfoMapper, UserTokenInfoDO> implements IUserTokenInfoManage {
@Override
public List<UserTokenInfoDO> listUser() {
LambdaQueryWrapper<UserTokenInfoDO> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(UserTokenInfoDO::getStatus, 1);
return baseMapper.selectList(lambdaQueryWrapper);
}
@Override
public UserTokenInfoDO getByName(String name) {
LambdaQueryWrapper<UserTokenInfoDO> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(UserTokenInfoDO::getStatus, 1);
lambdaQueryWrapper.eq(UserTokenInfoDO::getName, name);
lambdaQueryWrapper.last("limit 1");
return baseMapper.selectOne(lambdaQueryWrapper);
}
@Override
public List<UserTokenInfoDO> listCanOrder() {
LambdaQueryWrapper<UserTokenInfoDO> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(UserTokenInfoDO::getStatus, 1);
lambdaQueryWrapper.eq(UserTokenInfoDO::getIsOrder, 1);
lambdaQueryWrapper.eq(UserTokenInfoDO::getIsRestriction, 0);
return baseMapper.selectList(lambdaQueryWrapper);
}
@Override
public List<UserTokenInfoDO> queryByList(UserQueryReq req) {
LambdaQueryWrapper<UserTokenInfoDO> lambdaQueryWrapper = Wrappers.lambdaQuery();
if (StringUtils.isNotBlank(req.getName())) {
lambdaQueryWrapper.like(UserTokenInfoDO::getName, req.getName());
}
if (StringUtils.isNotBlank(req.getOpenId())) {
lambdaQueryWrapper.eq(UserTokenInfoDO::getOpenId, req.getOpenId());
}
if (StringUtils.isNotBlank(req.getMemberCardNo())) {
lambdaQueryWrapper.eq(UserTokenInfoDO::getMemberCardNo, req.getMemberCardNo());
}
if (Objects.nonNull(req.getStatus())) {
lambdaQueryWrapper.eq(UserTokenInfoDO::getStatus, req.getStatus());
}
if (Objects.nonNull(req.getIsRestriction())) {
lambdaQueryWrapper.eq(UserTokenInfoDO::getIsRestriction, req.getIsRestriction());
}
if (Objects.nonNull(req.getIsOrder())) {
lambdaQueryWrapper.eq(UserTokenInfoDO::getIsOrder, req.getIsOrder());
}
return baseMapper.selectList(lambdaQueryWrapper);
}
}

View File

@@ -0,0 +1,33 @@
package com.xiang.common.manage.jntyzx.miniapp;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.VenueInfoDO;
import com.xiang.common.mapper.JntyzxVenueInfoMapper;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.List;
/**
* @Author: xiang
* @Date: 2025-12-15 15:51
*/
@Service
public class VenueInfoManageImpl extends ServiceImpl<JntyzxVenueInfoMapper, VenueInfoDO> implements IVenueInfoManage {
public List<VenueInfoDO> queryByDate(LocalDate date) {
LambdaQueryWrapper<VenueInfoDO> lqw = Wrappers.lambdaQuery();
lqw.eq(VenueInfoDO::getDate, date);
return baseMapper.selectList(lqw);
}
@Override
public List<VenueInfoDO> queryByType(LocalDate date, Integer type) {
LambdaQueryWrapper<VenueInfoDO> lqw = Wrappers.lambdaQuery();
lqw.eq(VenueInfoDO::getDate, date);
lqw.eq(VenueInfoDO::getType, type);
return baseMapper.selectList(lqw);
}
}

View File

@@ -0,0 +1,11 @@
package com.xiang.common.manage.jntyzx.zlb;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiang.common.pojo.jntyzx.zlb.ZlbPayOrder;
/**
* @Author: xiang
* @Date: 2026-05-09 15:11
*/
public interface IZlbOrderInfoManage extends IService<ZlbPayOrder> {
}

View File

@@ -0,0 +1,15 @@
package com.xiang.common.manage.jntyzx.zlb;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiang.common.mapper.ZlbOrderInfoMapper;
import com.xiang.common.pojo.jntyzx.zlb.ZlbPayOrder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @Author: xiang
* @Date: 2026-05-09 15:11
*/
@Service
public class ZlbOrderInfoManageImpl extends ServiceImpl<ZlbOrderInfoMapper, ZlbPayOrder> implements IZlbOrderInfoManage {
}

View File

@@ -0,0 +1,13 @@
package com.xiang.common.manage.jntyzx.zlb;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiang.common.pojo.jntyzx.zlb.ZlbSiteInfo;
/**
* @author a123
* @description 针对表【zlb_site_info】的数据库操作Service
* @createDate 2025-06-19 23:32:29
*/
public interface ZlbSiteInfoService extends IService<ZlbSiteInfo> {
}

View File

@@ -0,0 +1,21 @@
package com.xiang.common.manage.jntyzx.zlb;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiang.common.mapper.ZlbSiteInfoMapper;
import com.xiang.common.pojo.jntyzx.zlb.ZlbSiteInfo;
import org.springframework.stereotype.Service;
/**
* @author a123
* @description 针对表【zlb_site_info】的数据库操作Service实现
* @createDate 2025-06-19 23:32:29
*/
@Service
public class ZlbSiteInfoServiceImpl extends ServiceImpl<ZlbSiteInfoMapper, ZlbSiteInfo>
implements ZlbSiteInfoService {
}

View File

@@ -0,0 +1,18 @@
package com.xiang.common.manage.jntyzx.zlb;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiang.common.pojo.jntyzx.zlb.ZlbTokenInfo;
import java.util.List;
/**
* @author a123
* @description 针对表【zlb_token_info】的数据库操作Service
* @createDate 2025-06-20 23:51:24
*/
public interface ZlbTokenInfoService extends IService<ZlbTokenInfo> {
ZlbTokenInfo queryByName(String name);
List<ZlbTokenInfo> getAllUsers();
}

View File

@@ -0,0 +1,38 @@
package com.xiang.common.manage.jntyzx.zlb;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiang.common.mapper.ZlbTokenInfoMapper;
import com.xiang.common.pojo.jntyzx.zlb.ZlbTokenInfo;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author a123
* @description 针对表【zlb_token_info】的数据库操作Service实现
* @createDate 2025-06-20 23:51:24
*/
@Service
public class ZlbTokenInfoServiceImpl extends ServiceImpl<ZlbTokenInfoMapper, ZlbTokenInfo>
implements ZlbTokenInfoService {
@Override
public ZlbTokenInfo queryByName(String name) {
LambdaQueryWrapper<ZlbTokenInfo> wrapper = Wrappers.lambdaQuery();
wrapper.eq(ZlbTokenInfo::getName, name);
return this.getOne(wrapper);
}
@Override
public List<ZlbTokenInfo> getAllUsers() {
LambdaQueryWrapper<ZlbTokenInfo> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(ZlbTokenInfo::getIsDel, 0);
return baseMapper.selectList(lambdaQueryWrapper);
}
}

View File

@@ -0,0 +1,20 @@
package com.xiang.common.manage.jntyzx.zlb;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiang.common.pojo.jntyzx.zlb.ZlbUserInfo;
import java.time.LocalDate;
import java.util.List;
public interface ZlbUserInfoService extends IService<ZlbUserInfo> {
/**
* 查询日期内未预订的用户
* @param date
* @return
*/
List<ZlbUserInfo> getNoBookUsers(LocalDate date);
int delAll();
}

View File

@@ -0,0 +1,28 @@
package com.xiang.common.manage.jntyzx.zlb;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiang.common.mapper.ZlbUserInfoMapper;
import com.xiang.common.pojo.jntyzx.zlb.ZlbUserInfo;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.List;
@Service
public class ZlbUserInfoServiceImpl extends ServiceImpl<ZlbUserInfoMapper, ZlbUserInfo>
implements ZlbUserInfoService {
@Override
public List<ZlbUserInfo> getNoBookUsers(LocalDate date) {
return List.of();
}
@Override
public int delAll() {
return baseMapper.deleteAll();
}
}

View File

@@ -0,0 +1,11 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.glados.GladosRunLogDO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface GladosRunLogDao extends BaseMapper<GladosRunLogDO> {
}

View File

@@ -0,0 +1,17 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.glados.GladosUserDO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
* @Author: xiang
* @Date: 2025-05-09 13:49
*/
@Mapper
@Repository
public interface GladosUserDao extends BaseMapper<GladosUserDO> {
}

View File

@@ -0,0 +1,15 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.OrderInfoDO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
* @Author: xiang
* @Date: 2025-12-16 10:58
*/
@Mapper
@Repository
public interface JntyzxOrderCreateInfoMapper extends BaseMapper<OrderInfoDO> {
}

View File

@@ -0,0 +1,20 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.UserInfoDO;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
* @Author: xiang
* @Date: 2026-05-09 10:16
*/
@Mapper
@Repository
public interface JntyzxUserInfoMapper extends BaseMapper<UserInfoDO> {
@Delete("delete from jntyzx_user_info where 1=1")
int delAll();
}

View File

@@ -0,0 +1,11 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.UserRestrictionInfo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface JntyzxUserRestrictionInfoMapper extends BaseMapper<UserRestrictionInfo> {
}

View File

@@ -0,0 +1,15 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.UserTokenInfoDO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
* @Author: xiang
* @Date: 2025-12-16 09:18
*/
@Mapper
@Repository
public interface JntyzxUserTokenInfoMapper extends BaseMapper<UserTokenInfoDO> {
}

View File

@@ -0,0 +1,15 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.jntyzx.miniapp.pojo.VenueInfoDO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
* @Author: xiang
* @Date: 2025-12-15 15:48
*/
@Mapper
@Repository
public interface JntyzxVenueInfoMapper extends BaseMapper<VenueInfoDO> {
}

View File

@@ -0,0 +1,11 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.schedule.ScheduleOpeningConfigDO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface ScheduleOpeningConfigDao extends BaseMapper<ScheduleOpeningConfigDO> {
}

View File

@@ -0,0 +1,11 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.schedule.ScheduleRunLogDO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface ScheduleRunLogDao extends BaseMapper<ScheduleRunLogDO> {
}

View File

@@ -0,0 +1,17 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.jntyzx.zlb.ZlbJlUserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface ZlbJlUserInfoMapper extends BaseMapper<ZlbJlUserInfo> {
}

View File

@@ -0,0 +1,17 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.jntyzx.zlb.ZlbLoginInfo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface ZlbLoginInfoMapper extends BaseMapper<ZlbLoginInfo> {
}

View File

@@ -0,0 +1,16 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.jntyzx.zlb.ZlbPayOrder;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface ZlbOrderInfoMapper extends BaseMapper<ZlbPayOrder> {
}

View File

@@ -0,0 +1,16 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.jntyzx.zlb.ZlbSiteInfo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface ZlbSiteInfoMapper extends BaseMapper<ZlbSiteInfo> {
}

View File

@@ -0,0 +1,16 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.jntyzx.zlb.ZlbTokenInfo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface ZlbTokenInfoMapper extends BaseMapper<ZlbTokenInfo> {
}

View File

@@ -0,0 +1,19 @@
package com.xiang.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiang.common.pojo.jntyzx.zlb.ZlbUserInfo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Repository
@Mapper
public interface ZlbUserInfoMapper extends BaseMapper<ZlbUserInfo> {
@Delete("delete from zlb_user_info where 1=1")
int deleteAll();
}

View File

@@ -0,0 +1,29 @@
package com.xiang.common.pojo;
/**
* @Author: xiang
* @Date: 2026-05-07 15:57
*/
import lombok.Data;
/**
* 轨迹点类
*/
@Data
public class TrackPoint {
public int x, y, t;
public String type;
public TrackPoint(int x, int y, int t, String type) {
this.x = x;
this.y = y;
this.t = t;
this.type = type;
}
@Override
public String toString() {
return String.format("{\"x\":%d,\"y\":%d,\"t\":%d,\"type\":\"%s\"}", x, y, t, type);
}
}

View File

@@ -0,0 +1,14 @@
package com.xiang.common.pojo.code;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class YcCodeBaseResponse<T> {
private String msg;
private Integer code;
private T data;
}

View File

@@ -0,0 +1,14 @@
package com.xiang.common.pojo.code;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class YcCodeDataResp {
private Integer code;
private String data;
private Double time;
}

View File

@@ -0,0 +1,31 @@
package com.xiang.common.pojo.code;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class YcCodeRequest {
/**
* 图片 base64
*/
private String image;
/**
* token
*/
private String token;
/**
* 接口类型
*/
private Integer type;
private String extra;
/**
* 模板图片 base64
*/
@JSONField(name = "label_image")
private String labelImage;
}

View File

@@ -0,0 +1,47 @@
package com.xiang.common.pojo.glados;
import lombok.Builder;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @Author: xiang
* @Date: 2025-05-09 13:56
*/
@Data
@Builder
public class GladosRunLogDO {
private static final long serialVersionUID = 1L;
private Integer id;
/**
* 用户id
*/
private Integer userId;
/**
* 用户
*/
private String user;
/**
* 请求的时间
*/
private LocalDateTime time;
/**
* 是否成功0: 失败 1:成功)
*/
private Integer status;
private Integer code;
/**
* 返回的响应
*/
private String response;
}

View File

@@ -0,0 +1,24 @@
package com.xiang.common.pojo.glados;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* @Author: xiang
* @Date: 2025-05-09 13:49
*/
@Data
@TableName("glados_script_user")
public class GladosUserDO {
private Integer id;
private String user;
private String email;
private String cookie;
private Integer status;
}

View File

@@ -0,0 +1,16 @@
package com.xiang.common.pojo.glados.req;
import lombok.Data;
/**
* @Author: xiang
* @Date: 2025-05-08 15:22
*/
@Data
public class GladosCheckInReq {
/**
* cookie
*/
private String cookie;
}

View File

@@ -0,0 +1,20 @@
package com.xiang.common.pojo.glados.resp;
import lombok.Data;
/**
* @Author: xiang
* @Date: 2026-01-23 09:21
*/
@Data
public class CheckInResp {
private Long id;
private Long userId;
private Long time;
private String asset;
private String business;
private String change;
private String balance;
private String detail;
}

View File

@@ -0,0 +1,21 @@
package com.xiang.common.pojo.glados.resp;
import lombok.Data;
import java.util.List;
/**
* @Author: xiang
* @Date: 2025-05-08 14:55
*/
@Data
public class GLaDOSResponse<T> {
private Long code;
private Integer points;
private String message;
private List<T> list;
}

View File

@@ -0,0 +1,26 @@
package com.xiang.common.pojo.glados.resp;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author: xiang
* @Date: 2026-05-08 15:47
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GladosPointsHistoryResp {
private String asset;
private String balance;
private String business;
private String change;
private String detail;
private Long id;
private Long time;
@JSONField(name = "user_id")
private Long userId;
}

View File

@@ -0,0 +1,30 @@
package com.xiang.common.pojo.glados.resp;
import lombok.Data;
import java.util.List;
/**
* @Author: xiang
* @Date: 2026-05-08 15:46
*/
@Data
public class GladosPointsResp {
private Integer code;
private List<GladosPointsHistoryResp> history;
private Plans plans;
private String points;
}
@Data
class Plans {
private Plan plan100;
private Plan plan200;
private Plan plan500;
}
@Data
class Plan {
private Integer days;
private Integer points;
}

View File

@@ -0,0 +1,34 @@
package com.xiang.common.pojo.jntyzx.miniapp.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author: xiang
* @Date: 2025-12-15 13:55
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class VenueListDTO {
/**
* 时间
*/
private String date;
/**
* 时间
*/
private String sjName;
/**
* 场地名称
*/
private String placeName;
/**
* 联系人
*/
private String contacts;
}

View File

@@ -0,0 +1,55 @@
package com.xiang.common.pojo.jntyzx.miniapp.pojo;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @Author: xiang
* @Date: 2025-12-16 10:57
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("jntyzx_order_create_info")
public class OrderInfoDO {
private Long id;
/**
* 订单id
*/
private String orderId;
/**
* 参数
*/
private String params;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 订单创建人
*/
private String username;
/**
* 场地号
*/
private String placeName;
/**
* 所属日期
*/
private LocalDate date;
/**
* 订单状态 0:待付款1:已付款)
*/
private Integer orderStatus;
}

View File

@@ -0,0 +1,53 @@
package com.xiang.common.pojo.jntyzx.miniapp.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* @Author: xiang
* @Date: 2026-05-09 09:54
*/
@Data
@TableName("jntyzx_user_info")
public class UserInfoDO {
/**
*
*/
@TableId(type = IdType.AUTO)
private Integer id;
private Integer loginInfoId;
/**
* 名称
*/
private String name;
/**
* 星期几
*/
private String week;
/**
* 分配的任务参数
*/
private String type;
/**
* 场地信息
*/
private String placeName;
/**
* 时间id111
*/
private String siteTimeName;
/**
* 是否开抢0-抢,1-不抢
*/
private Integer isBook;
}

View File

@@ -0,0 +1,29 @@
package com.xiang.common.pojo.jntyzx.miniapp.pojo;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("jntyzx_user_restriction")
public class UserRestrictionInfo {
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 封禁截止时间
*/
private LocalDateTime restrictionDeadline;
/**
* 封禁原因
*/
private String restrictionDesc;
}

View File

@@ -0,0 +1,59 @@
package com.xiang.common.pojo.jntyzx.miniapp.pojo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/**
* @Author: xiang
* @Date: 2025-12-16 09:18
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("jntyzx_user_token_info")
public class UserTokenInfoDO {
private Long id;
/**
* 用户名
*/
private String name;
/**
* token
*/
private String token;
/**
* wx openid
*/
private String openId;
/**
* 状态(0:禁用 1:启用)
*/
private Integer status;
/**
* 是否可以下单 0否 1
*/
private Integer isOrder;
/**
* 会员卡号
*/
@TableField("member_card_no")
private String memberCardNo;
/**
* 是否封禁 0否 1:是
*/
@TableField("is_restriction")
private Integer isRestriction;
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,72 @@
package com.xiang.common.pojo.jntyzx.miniapp.pojo;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @Author: xiang
* @Date: 2025-12-15 15:48
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("jntyzx_venue_info")
public class VenueInfoDO {
private Long id;
/**
* 场地名称
*/
private String placeName;
/**
* 所属日期
*/
private LocalDate date;
/**
* 场地信息三方主键
*/
private Long placeMainId;
/**
* 场地id
*/
private Integer placeId;
/**
*
*/
private Integer scheduleId;
/**
* 时间范围
*/
private String sjName;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 联系人
*/
private String contacts;
/**
* 状态
*/
private Integer type;
private BigDecimal money;
private String className;
private String classCode;
private String appointments;
private String cTypeCode;
}

View File

@@ -0,0 +1,23 @@
package com.xiang.common.pojo.jntyzx.miniapp.req;
import com.alibaba.fastjson2.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Author: xiang
* @Date: 2025-12-15 16:34
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SubscribeRequest {
private JSONObject jsonObject;
private List<SubscribeVo> subscribeVos;
private String bookTime;
private Integer paymentMethod;
private String svCiphertext;
}

View File

@@ -0,0 +1,60 @@
package com.xiang.common.pojo.jntyzx.miniapp.req;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @Author: xiang
* @Date: 2025-12-15 16:35
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SubscribeVo {
private int id;
private String ballCourtId;
private String sjName;
private String scheduleId;
private String placeName;
private int placeId;
private String type;
private String className;
private String classCode;
private BigDecimal money;
private String contacts;
private String contactNumber;
private String memberNumber;
private String appointments;
private String operator;
private String endTime;
private String beginTime;
private int specOneTimes;
private String ctypeCode;
private int isWhole;
private String orderId;
private int votesnum;
}

View File

@@ -0,0 +1,33 @@
package com.xiang.common.pojo.jntyzx.miniapp.req;
import lombok.Data;
import org.jetbrains.annotations.NotNull;
@Data
public class UserAddReq {
/**
* 用户名称
*/
private String name;
/**
* token
*/
private String token;
/**
* wx openId
*/
private String openId;
/**
* 会员卡号
*/
private String memberCardNo;
/**
* 状态 0:禁用 1:启用
*/
private Integer status;
}

View File

@@ -0,0 +1,41 @@
package com.xiang.common.pojo.jntyzx.miniapp.req;
import lombok.Data;
/**
* @Author: xiang
* @Date: 2026-03-24 16:40
*/
@Data
public class UserQueryReq {
/**
* 用户名称
*/
private String name;
/**
* wx openId
*/
private String openId;
/**
* 会员卡号
*/
private String memberCardNo;
/**
* 状态 0:禁用 1:启用
*/
private Integer status;
/**
* 是否可以下单 0:否 1:是
*/
private Integer isOrder;
/**
* 是否封禁 0:否 1:是
*/
private Integer isRestriction;
}

View File

@@ -0,0 +1,18 @@
package com.xiang.common.pojo.jntyzx.miniapp.req;
import lombok.Data;
@Data
public class UserStatusUpdateReq {
/**
* 用户名称
*/
private String username;
/**
* status
*/
private Integer status;
}

View File

@@ -0,0 +1,18 @@
package com.xiang.common.pojo.jntyzx.miniapp.req;
import lombok.Data;
@Data
public class UserTokenUpdateReq {
/**
* 用户名称
*/
private String username;
/**
* token
*/
private String token;
}

View File

@@ -0,0 +1,9 @@
package com.xiang.common.pojo.jntyzx.miniapp.req;
import lombok.Data;
@Data
public class UsernameReq {
private String username;
}

View File

@@ -0,0 +1,33 @@
package com.xiang.common.pojo.jntyzx.miniapp.req;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.jetbrains.annotations.NotNull;
import java.time.LocalDate;
/**
* @Author: xiang
* @Date: 2026-04-09 09:39
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class VenueInfoQueryRequest{
/**
* 日期
*/
private LocalDate date;
/**
* 时间段 例如 20:00-21:00
*/
private String sj;
/**
* 场地名称
*/
private String placeName;
}

View File

@@ -0,0 +1,11 @@
package com.xiang.common.pojo.jntyzx.miniapp.req;
import lombok.Data;
/**
* @Author: xiang
* @Date: 2026-04-09 10:00
*/
@Data
public class VenueInfoSubscribeRequest {
}

View File

@@ -0,0 +1,20 @@
package com.xiang.common.pojo.jntyzx.miniapp.resp;
import lombok.Data;
/**
* @Author: xiang
* @Date: 2025-05-14 14:38
*/
@Data
public class JntyzxResponse<T> {
private Boolean success;
private String message;
private Integer code;
private T result;
private Long timestamp;
}

View File

@@ -0,0 +1,64 @@
package com.xiang.common.pojo.jntyzx.miniapp.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
/**
* @Author: xiang
* @Date: 2026-03-24 16:40
*/
@Data
public class JtUserVo {
private Long userId;
/**
* 用户名称
*/
private String name;
/**
* token
*/
private String token;
/**
* wx:openId
*/
private String openId;
/**
* 账号状态:
* 状态(0:禁用 1:启用)
*/
private Integer status;
/**
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd Hh:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd Hh:mm:ss")
private LocalDateTime updateTime;
/**
* 江南体育中心会员卡号
*/
private String memberCardNo;
/**
* 是否可以下单
*/
private Boolean isOrder;
/**
* 是否封禁
*/
private Boolean isRestriction;
/**
* 封禁结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd Hh:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd Hh:mm:ss")
private LocalDateTime restrictionDeadline;
/**
* 封禁缘由
*/
private String restrictionDesc;
}

View File

@@ -0,0 +1,18 @@
package com.xiang.common.pojo.jntyzx.miniapp.resp;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author: xiang
* @Date: 2025-12-16 10:36
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OrderCreateResp {
private String id;
private String countDownNum;
}

View File

@@ -0,0 +1,53 @@
package com.xiang.common.pojo.jntyzx.miniapp.resp;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* @Author: xiang
* @Date: 2026-04-09 09:42
*/
@Data
@AllArgsConstructor
public class VenueInfoQueryResp {
/**
* 场地名称
*/
private String placeName;
/**
* 日期
*/
private LocalDate date;
/**
* 时间范围
*/
private String sjName;
/**
* 价格
*/
private BigDecimal money;
/**
* 联系人
*/
private String contacts;
/**
* 0可订购 2zlb 4已订购
*/
private Integer type;
private Long placeMainId;
private Integer placeId;
private Integer scheduleId;
private String className;
private String classCode;
private String appointments;
private String cTypeCode;
}

View File

@@ -0,0 +1,16 @@
package com.xiang.common.pojo.jntyzx.miniapp.resp.query;
import lombok.Data;
import java.util.List;
/**
* @Author: xiang
* @Date: 2025-05-14 14:37
*/
@Data
public class QueryVenueResponse {
private List<TimeList> timeList;
private List<VenueList> venue;
}

View File

@@ -0,0 +1,56 @@
package com.xiang.common.pojo.jntyzx.miniapp.resp.query;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Author: xiang
* @Date: 2025-05-14 14:45
*/
@Data
public class SitePositionList {
private Long id;
private String ballCourtId;
private String sjName;
private String scheduleId;
private String placeName;
private Integer placeId;
private Integer type;
private String className;
private String classCode;
private BigDecimal money;
private String contacts;
private String contactNumber;
private String memberNumber;
private String appointments;
private String operator;
private String endTime;
private String beginTime;
private Integer specOneTimes;
private String ctypeCode;
private String isWhole;
private Long orderId;
private Integer votesnum;
}

View File

@@ -0,0 +1,32 @@
package com.xiang.common.pojo.jntyzx.miniapp.resp.query;
import lombok.Data;
/**
* @Author: xiang
* @Date: 2025-05-14 14:39
*/
@Data
public class TimeList {
private Long id;
private String name;
private String beginTime;
private String endTime;
private String type;
private String isenable;
private String operator;
private String createtime;
private String remarks;
private String default01;
private String default02;
private String default03;
private String votesnum;
}

View File

@@ -0,0 +1,109 @@
package com.xiang.common.pojo.jntyzx.miniapp.resp.query;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserInfoResponse {
/**
* id
*/
private Long id;
/**
* 会员卡号
*/
private String consCard;
/**
* 姓名
*/
private String consName;
/**
* 性别
*/
private String consSex;
/**
* 身份证号
*/
private String consIdCard;
/**
* 固定电话
*/
private String consTel;
/**
* 手机号码
*/
private String consHandSet;
/**
* 单位
*/
private String consUnit;
/**
* 照片
*/
private String consPhoto;
private Integer consWaste;
/**
* 会员卡号
*/
private String consNumber;
private BigDecimal consMin;
private Integer consProp;
/**
* 注册年
*/
private String consYear;
/**
* 注册月
*/
private String consMonth;
/**
* 注册日
*/
private String consDay;
private boolean consIflag;
/**
* 注册时间
*/
private LocalDateTime consTimes;
/**
* openId
*/
private String openId;
/**
* 头像
*/
private String photoUrl;
/**
* 会员
*/
private Integer consVip;
/**
* 会员等级号
*/
private String consVipCode;
private String eleCardNum;
private Integer appointmentEligibility;
/**
* 封禁截止日期
*/
@JSONField(name = "restrictionDeadline")
private String restrictionDeadline;
/**
* 封禁原因
*/
private String restrictionDescription;
/**
* 封禁截止日期
*/
@JSONField(name = "RestrictionDeadline")
private String RestrictionDeadline2;
}

View File

@@ -0,0 +1,20 @@
package com.xiang.common.pojo.jntyzx.miniapp.resp.query;
import lombok.Data;
import java.util.List;
/**
* @Author: xiang
* @Date: 2025-05-14 14:39
*/
@Data
public class VenueList {
private Integer placeId;
private String placeName;
private List<SitePositionList> sitePosition;
}

View File

@@ -0,0 +1,26 @@
package com.xiang.common.pojo.jntyzx.zlb;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author: xiang
* @Date: 2026-05-07 15:44
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ZlbCaptcha {
private String type;
private String backgroundImage;
private String templateImage;
private String backgroundImageTag;
private String templateImageTag;
private Integer backgroundImageWidth;
private Integer backgroundImageHeight;
private Integer templateImageWidth;
private Integer templateImageHeight;
private String data;
}

View File

@@ -0,0 +1,17 @@
package com.xiang.common.pojo.jntyzx.zlb;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author: xiang
* @Date: 2026-05-07 15:44
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ZlbCaptchaResp {
private String id;
private ZlbCaptcha captcha;
}

View File

@@ -0,0 +1,55 @@
package com.xiang.common.pojo.jntyzx.zlb;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
*
* @TableName zlb_jl_user_info
*/
@TableName(value ="zlb_jl_user_info")
@Data
public class ZlbJlUserInfo {
/**
*
*/
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 名称
*/
private String name;
/**
* 星期几
*/
private String week;
/**
* 日期
*/
private String day;
/**
* token
*/
private String token;
/**
* secretKey
*/
private String secretKey;
/**
* 场地信息
*/
private String placeName;
/**
* 时间id111
*/
private String siteTimeName;
}

View File

@@ -0,0 +1,82 @@
package com.xiang.common.pojo.jntyzx.zlb;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
*
* @TableName zlb_login_info
*/
@TableName(value ="zlb_login_info")
@Data
public class ZlbLoginInfo {
/**
*
*/
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 名称
*/
private String name;
/**
* 11
*/
private String cookie;
/**
* 22
*/
private String bizSessionId;
/**
* 33
*/
private String xDeviceId;
/**
* 44
*/
private String xSignValue;
/**
* 55
*/
private String token;
/**
* 66
*/
private String gucGsid;
/**
* 77
*/
private String xSiteCode;
/**
* 77
*/
private String aliyungfTc;
/**
* 是否失效0-未失效,1-失效
*/
private Integer isDel;
/**
* 数据创建时间
*/
private Date createdDate;
/**
* 数据修改时间
*/
private Date updatedDate;
}

View File

@@ -0,0 +1,36 @@
package com.xiang.common.pojo.jntyzx.zlb;
import lombok.Data;
import java.util.List;
/**
* @author caoliang
* @version 1.0
* @date 2025-06-18 00:52:44
* @Description***
*/
@Data
public class ZlbOrderInfo {
private String id;
private ZlbData data;
@Data
public static class ZlbData {
private Integer bgImageWidth;
private Integer bgImageHeight;
private String startTime;
private String stopTime;
private List<TrackList> trackList;
@Data
public static class TrackList {
private Integer x;
private Integer y;
private Integer t;
private String type;
}
}
private String siteOrderDetailsStr;
}

View File

@@ -0,0 +1,56 @@
package com.xiang.common.pojo.jntyzx.zlb;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* @author caoliang
* @version 1.0
* @date 2025-06-22 19:49:46
* @Description***
*/
@Data
public class ZlbOrderJson {
@JsonProperty("issueIds")
@JSONField(ordinal=1)
private String issueIds;
@JsonProperty("issueAmount")
@JSONField(ordinal=2)
private Integer issueAmount;
@JsonProperty("cardOrderId")
@JSONField(ordinal=3)
private String cardOrderId;
@JsonProperty("amount")
@JSONField(ordinal=4)
private Integer amount;
@JsonProperty("belongDate")
@JSONField(ordinal=5)
private String belongDate;
@JsonProperty("dayEffectiveTimes")
@JSONField(ordinal=6)
private String dayEffectiveTimes;
@JsonProperty("dayOverdueTimes")
@JSONField(ordinal=7)
private String dayOverdueTimes;
@JsonProperty("placeName")
@JSONField(ordinal=8)
private String placeName;
@JsonProperty("siteId")
@JSONField(ordinal=9)
private String siteId;
@JsonProperty("siteItemId")
@JSONField(ordinal=10)
private Integer siteItemId;
@JsonProperty("siteRuleId")
@JSONField(ordinal=11)
private String siteRuleId;
@JsonProperty("siteTicketId")
@JSONField(ordinal=12)
private Integer siteTicketId;
@JsonProperty("payChannel")
@JSONField(ordinal=13)
private Integer payChannel;
}

View File

@@ -0,0 +1,14 @@
package com.xiang.common.pojo.jntyzx.zlb;
import lombok.Data;
/**
* @author caoliang
* @version 1.0
* @date 2025-06-18 00:52:44
* @Description***
*/
@Data
public class ZlbOrderWqInfo {
private String siteOrderDetailsStr;
}

View File

@@ -0,0 +1,61 @@
package com.xiang.common.pojo.jntyzx.zlb;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* @author caoliang
* @version 1.0
* @date 2025-06-22 19:49:46
* @Description***
*/
@Data
public class ZlbOrderWqJson {
@JsonProperty("issueIds")
@JSONField(ordinal=1)
private String issueIds;
@JsonProperty("issueAmount")
@JSONField(ordinal=2)
private Integer issueAmount;
@JsonProperty("cardOrderId")
@JSONField(ordinal=3)
private String cardOrderId;
@JsonProperty("amount")
@JSONField(ordinal=4)
private Integer amount;
@JsonProperty("belongDate")
@JSONField(ordinal=5)
private String belongDate;
@JsonProperty("dayEffectiveTimes")
@JSONField(ordinal=6)
private String dayEffectiveTimes;
@JsonProperty("dayOverdueTimes")
@JSONField(ordinal=7)
private String dayOverdueTimes;
@JsonProperty("placeName")
@JSONField(ordinal=8)
private String placeName;
@JsonProperty("saasTicketId")
@JSONField(ordinal=9)
private String saasTicketId;
@JsonProperty("siteId")
@JSONField(ordinal=10)
private String siteId;
@JsonProperty("siteItemId")
@JSONField(ordinal=11)
private Integer siteItemId;
@JsonProperty("siteRuleId")
@JSONField(ordinal=12)
private String siteRuleId;
@JsonProperty("siteTicketId")
@JSONField(ordinal=13)
private Integer siteTicketId;
@JsonProperty("payChannel")
@JSONField(ordinal=14)
private Integer payChannel;
}

View File

@@ -0,0 +1,50 @@
package com.xiang.common.pojo.jntyzx.zlb;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
*
* @TableName zlb_order_info
*/
@TableName(value ="zlb_order_info")
@Data
public class ZlbPayOrder {
/**
*
*/
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 姓名
*/
private String name;
/**
* 日期
*/
private String day;
/**
* 场馆
*/
private String venues;
/**
* 场地名称
*/
private String placeName;
/**
* 时间id111
*/
private String time;
/**
* 0-未付款,1-已付款
*/
private Integer isPay;
}

View File

@@ -0,0 +1,139 @@
package com.xiang.common.pojo.jntyzx.zlb;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
*
* @TableName zlb_site_info
*/
@TableName(value ="zlb_site_info")
@Data
public class ZlbSiteInfo {
/**
*
*/
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 场地Id
*/
private Integer type;
private Integer siteTicketId;
/**
* 场地名称
*/
private String siteTicketName;
private String saasTicketId;
/**
* 金额
*/
private String siteRuleId;
/**
* 金额
*/
private String siteId;
/**
* 时间顺序id
*/
private String placeName;
/**
* 票id
*/
private Integer weekType;
/**
* 票id
*/
private Integer blocId;
/**
* 票id
*/
private Integer stadiumId;
/**
* 会员号
*/
private String stadiumName;
/**
* 票id
*/
private Integer siteItemId;
/**
* 订场人信息
*/
private String spName;
/**
* 订场人电话
*/
private String url;
/**
* 票id
*/
private Integer startCheckMinutes;
/**
* 票id
*/
private Integer endCheckMinutes;
/**
* 订场时间
*/
private String dayEffectiveTimes;
/**
* 场地票名
*/
private String dayOverdueTimes;
/**
* 票id
*/
private Integer amount;
/**
* 票id
*/
private Integer ticketType;
/**
* 场地票名
*/
private String belongDate;
/**
* 场地票名
*/
private String isOpen;
/**
* 票id
*/
private Integer isPreferential;
/**
* 数据创建时间
*/
private Date createdDate;
/**
* 数据修改时间
*/
private Date updatedDate;
}

View File

@@ -0,0 +1,18 @@
package com.xiang.common.pojo.jntyzx.zlb;
import lombok.Data;
/**
* @author caoliang
* @version 1.0
* @date 2025-06-19 23:53:44
* @Description***
*/
@Data
public class ZlbSiteRequest {
private String dataStr;
private String stadiumId;
private Integer siteItemId;
}

View File

@@ -0,0 +1,43 @@
package com.xiang.common.pojo.jntyzx.zlb;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
*
* @TableName zlb_token_info
*/
@TableName(value ="zlb_token_info")
@Data
public class ZlbTokenInfo {
/**
*
*/
@TableId(type = IdType.AUTO)
private Integer id;
private Integer loginInfoId;
/**
* 名称
*/
private String name;
/**
* tokenId
*/
private String tokenId;
private String zlbUserId;
private String secretKey;
/**
* 是否失效0-未失效,1-失效
*/
private Integer isDel;
private Date createdDate;
private Date updatedDate;
}

View File

@@ -0,0 +1,52 @@
package com.xiang.common.pojo.jntyzx.zlb;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
*
* @TableName zlb_user_info
*/
@TableName(value ="zlb_user_info")
@Data
public class ZlbUserInfo {
/**
*
*/
@TableId(type = IdType.AUTO)
private Integer id;
private Integer loginInfoId;
/**
* 名称
*/
private String name;
/**
* 星期几
*/
private String week;
/**
* 分配的任务参数
*/
private String type;
/**
* 场地信息
*/
private String placeName;
/**
* 时间id111
*/
private String siteTimeName;
/**
* 是否开抢0-抢,1-不抢
*/
private Integer isBook;
}

View File

@@ -0,0 +1,24 @@
package com.xiang.common.pojo.schedule;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("schedule_opening_config")
public class ScheduleOpeningConfigDO {
private Long id;
/**
* 模块id(0glados 1芬玩岛 2江体小程序 3江体zlb 4:ddns)
*/
private Integer module;
private String beanName;
private Integer status;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,22 @@
package com.xiang.common.pojo.schedule;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("schedule_run_log")
public class ScheduleRunLogDO {
private Long id;
private String moduleName;
private String taskName;
private String params;
private String response;
private LocalDateTime createTime;
private Integer requestFlag;
}

View File

@@ -0,0 +1,22 @@
package com.xiang.common.pojo.schedule;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TaskResult {
private String params;
/**
* 是否成功
*/
private boolean success;
/**
* 响应结果
*/
private String summary;
}

Some files were not shown because too many files have changed in this diff Show More