diff --git a/pom.xml b/pom.xml
index a65e6bc..365a067 100644
--- a/pom.xml
+++ b/pom.xml
@@ -104,6 +104,11 @@
mapstruct
1.5.5.Final
+
+ cn.hutool
+ hutool-all
+ 5.8.9
+
@@ -111,6 +116,11 @@
httpclient
4.5.13
+
+ com.squareup.okhttp3
+ okhttp
+ 4.12.0
+
com.google.guava
@@ -129,6 +139,11 @@
+
+ com.alibaba
+ fastjson
+ 1.2.83
+
com.alibaba.fastjson2
fastjson2
diff --git a/src/main/java/com/xiang/common/enums/DateFormatEnum.java b/src/main/java/com/xiang/common/enums/DateFormatEnum.java
new file mode 100644
index 0000000..d157410
--- /dev/null
+++ b/src/main/java/com/xiang/common/enums/DateFormatEnum.java
@@ -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;
+ }
+
+}
diff --git a/src/main/java/com/xiang/common/factory/JntyzxDingTalkFactory.java b/src/main/java/com/xiang/common/factory/JntyzxDingTalkFactory.java
new file mode 100644
index 0000000..e67c3ac
--- /dev/null
+++ b/src/main/java/com/xiang/common/factory/JntyzxDingTalkFactory.java
@@ -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);
+ }
+}
diff --git a/src/main/java/com/xiang/common/handler/CallbackHandler.java b/src/main/java/com/xiang/common/handler/CallbackHandler.java
new file mode 100644
index 0000000..ec4b76d
--- /dev/null
+++ b/src/main/java/com/xiang/common/handler/CallbackHandler.java
@@ -0,0 +1,6 @@
+package com.xiang.common.handler;
+
+public interface CallbackHandler {
+ void onResponse(String response);
+ void onFailure(Throwable t);
+}
diff --git a/src/main/java/com/xiang/common/mapper/ZlbJlUserInfoMapper.java b/src/main/java/com/xiang/common/mapper/ZlbJlUserInfoMapper.java
new file mode 100644
index 0000000..e779a99
--- /dev/null
+++ b/src/main/java/com/xiang/common/mapper/ZlbJlUserInfoMapper.java
@@ -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 {
+
+}
+
+
+
+
diff --git a/src/main/java/com/xiang/common/mapper/ZlbLoginInfoMapper.java b/src/main/java/com/xiang/common/mapper/ZlbLoginInfoMapper.java
new file mode 100644
index 0000000..144dadd
--- /dev/null
+++ b/src/main/java/com/xiang/common/mapper/ZlbLoginInfoMapper.java
@@ -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 {
+
+}
+
+
+
+
diff --git a/src/main/java/com/xiang/common/mapper/ZlbOrderInfoMapper.java b/src/main/java/com/xiang/common/mapper/ZlbOrderInfoMapper.java
new file mode 100644
index 0000000..5c2b242
--- /dev/null
+++ b/src/main/java/com/xiang/common/mapper/ZlbOrderInfoMapper.java
@@ -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 {
+
+}
+
+
+
+
diff --git a/src/main/java/com/xiang/common/mapper/ZlbSiteInfoMapper.java b/src/main/java/com/xiang/common/mapper/ZlbSiteInfoMapper.java
new file mode 100644
index 0000000..1e68cb3
--- /dev/null
+++ b/src/main/java/com/xiang/common/mapper/ZlbSiteInfoMapper.java
@@ -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 {
+
+}
+
+
+
+
diff --git a/src/main/java/com/xiang/common/mapper/ZlbTokenInfoMapper.java b/src/main/java/com/xiang/common/mapper/ZlbTokenInfoMapper.java
new file mode 100644
index 0000000..4c185c8
--- /dev/null
+++ b/src/main/java/com/xiang/common/mapper/ZlbTokenInfoMapper.java
@@ -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 {
+
+}
+
+
+
+
diff --git a/src/main/java/com/xiang/common/mapper/ZlbUserInfoMapper.java b/src/main/java/com/xiang/common/mapper/ZlbUserInfoMapper.java
new file mode 100644
index 0000000..cc38bae
--- /dev/null
+++ b/src/main/java/com/xiang/common/mapper/ZlbUserInfoMapper.java
@@ -0,0 +1,16 @@
+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.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Repository
+@Mapper
+public interface ZlbUserInfoMapper extends BaseMapper {
+
+}
+
+
+
+
diff --git a/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbJlUserInfo.java b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbJlUserInfo.java
new file mode 100644
index 0000000..a5316df
--- /dev/null
+++ b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbJlUserInfo.java
@@ -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;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbLoginInfo.java b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbLoginInfo.java
new file mode 100644
index 0000000..90d935f
--- /dev/null
+++ b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbLoginInfo.java
@@ -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;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbOrderInfo.java b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbOrderInfo.java
new file mode 100644
index 0000000..0fa2ce7
--- /dev/null
+++ b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbOrderInfo.java
@@ -0,0 +1,35 @@
+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;
+
+ @Data
+ public static class TrackList {
+ private Integer x;
+ private Integer y;
+ private Integer t;
+ private String type;
+ }
+ }
+ private String siteOrderDetailsStr;
+}
diff --git a/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbOrderJson.java b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbOrderJson.java
new file mode 100644
index 0000000..6b62659
--- /dev/null
+++ b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbOrderJson.java
@@ -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;
+}
diff --git a/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbOrderWqInfo.java b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbOrderWqInfo.java
new file mode 100644
index 0000000..d525bf9
--- /dev/null
+++ b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbOrderWqInfo.java
@@ -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;
+}
diff --git a/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbOrderWqJson.java b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbOrderWqJson.java
new file mode 100644
index 0000000..570916a
--- /dev/null
+++ b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbOrderWqJson.java
@@ -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;
+}
diff --git a/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbPayOrder.java b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbPayOrder.java
new file mode 100644
index 0000000..bdf54a8
--- /dev/null
+++ b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbPayOrder.java
@@ -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;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbSiteInfo.java b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbSiteInfo.java
new file mode 100644
index 0000000..95e2121
--- /dev/null
+++ b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbSiteInfo.java
@@ -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;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbSiteRequest.java b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbSiteRequest.java
new file mode 100644
index 0000000..391cdbf
--- /dev/null
+++ b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbSiteRequest.java
@@ -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;
+
+}
diff --git a/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbTokenInfo.java b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbTokenInfo.java
new file mode 100644
index 0000000..99000df
--- /dev/null
+++ b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbTokenInfo.java
@@ -0,0 +1,41 @@
+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 String name;
+
+ /**
+ * tokenId
+ */
+ private String tokenId;
+ private String zlbUserId;
+ private String secretKey;
+
+ /**
+ * 是否失效0-未失效,1-失效
+ */
+ private Integer isDel;
+ private Date createdDate;
+ private Date updatedDate;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbUserInfo.java b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbUserInfo.java
new file mode 100644
index 0000000..59b54c3
--- /dev/null
+++ b/src/main/java/com/xiang/common/pojo/jntyzx/zlb/ZlbUserInfo.java
@@ -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_user_info
+ */
+@TableName(value ="zlb_user_info")
+@Data
+public class ZlbUserInfo {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 名称
+ */
+ private String name;
+
+ /**
+ * 星期几
+ */
+ private String week;
+
+ /**
+ * 分配的任务参数
+ */
+ private String type;
+
+ /**
+ * 场地信息
+ */
+ private String placeName;
+
+ /**
+ * 时间id111
+ */
+ private String siteTimeName;
+
+ /**
+ * 是否开抢0-抢,1-不抢
+ */
+ private Integer isBook;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xiang/common/utils/AESECBUtils.java b/src/main/java/com/xiang/common/utils/AESECBUtils.java
new file mode 100644
index 0000000..1ed916d
--- /dev/null
+++ b/src/main/java/com/xiang/common/utils/AESECBUtils.java
@@ -0,0 +1,86 @@
+package com.xiang.common.utils;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.SecretKeySpec;
+import java.nio.charset.StandardCharsets;
+
+public class AESECBUtils {
+ // 填充方式(PKCS5Padding)
+ private static final String ALGORITHM = "AES/ECB/PKCS5Padding";
+
+ /**
+ * AES ECB 模式加密
+ *
+ * @param plainText 明文字符串
+ * @param key 密钥(16 / 24 / 32 字节)
+ * @return 十六进制格式的密文
+ */
+ public static String encrypt(String plainText, String key) throws Exception {
+ Cipher cipher = Cipher.getInstance(ALGORITHM);
+ SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES");
+ cipher.init(Cipher.ENCRYPT_MODE, keySpec);
+
+ byte[] encrypted = cipher.doFinal(plainText.getBytes(StandardCharsets.UTF_8));
+ return bytesToHex(encrypted).toUpperCase();
+ }
+
+ /**
+ * AES ECB 模式解密
+ *
+ * @param hexCipherText 十六进制格式的密文
+ * @param key 密钥(16 / 24 / 32 字节)
+ * @return 解密后的明文
+ */
+ public static String decrypt(String hexCipherText, String key) throws Exception {
+ Cipher cipher = Cipher.getInstance(ALGORITHM);
+ SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES");
+ cipher.init(Cipher.DECRYPT_MODE, keySpec);
+
+ byte[] cipherData = hexStringToByteArray(hexCipherText);
+ byte[] decrypted = cipher.doFinal(cipherData);
+ return new String(decrypted, StandardCharsets.UTF_8);
+ }
+
+ // 十六进制字符串转 byte[]
+ private static byte[] hexStringToByteArray(String s) {
+ int len = s.length();
+ byte[] data = new byte[len / 2];
+ for (int i = 0; i < len; i += 2) {
+ data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ + Character.digit(s.charAt(i + 1), 16));
+ }
+ return data;
+ }
+
+ // byte[] 转十六进制字符串
+ private static String bytesToHex(byte[] bytes) {
+ StringBuilder sb = new StringBuilder();
+ for (byte b : bytes) {
+ sb.append(String.format("%02x", b));
+ }
+ return sb.toString();
+ }
+
+ // 示例主函数
+ public static void main(String[] args) {
+ String key = "1ad2ee1b6e3f4e81"; // 16字节密钥
+ // String key = "3f18655f909d495d"; // 16字节密钥
+ // String key = "ea08f7da82e44df7"; // 16字节密钥
+ // 取前16位数密钥
+ //String key = keystr.substring(0,16);
+
+ String longCiphertext = "8A559F1F4A8A782169E6F5BC32217A8CAA263E173FA2C05751CFC49B9018D57779F5B7C47B8C1570142EAB5A781175DE45AD141C3CC8E62380EA6C0036A2D80BF219B326C2302553E43B0F534A51D18D";
+
+ try {
+ String decrypted = decrypt(longCiphertext, key);
+ System.out.println("长密文解密结果: " + decrypted);
+ decrypted = "{\"stadiumId\":\"49\",\"siteItemId\":1940,\"belongDate\":\"2025-10-10\",\"channelType\":6}";
+ // decrypted = " {\"stadiumId\":\"360112\",\"siteItemId\":1148,\"belongDate\":\"2025-08-11\",\"channelType\":6}";
+ String reEncrypted = encrypt(decrypted, key);
+ System.out.println("重新加密结果: " + reEncrypted);
+ } catch (Exception e) {
+ System.err.println("长密文解密失败: " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/main/java/com/xiang/common/utils/DateUtils.java b/src/main/java/com/xiang/common/utils/DateUtils.java
new file mode 100644
index 0000000..4a2b3df
--- /dev/null
+++ b/src/main/java/com/xiang/common/utils/DateUtils.java
@@ -0,0 +1,606 @@
+package com.xiang.common.utils;
+
+
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.xiang.common.enums.DateFormatEnum;
+
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author clover
+ * @Date 2020/9/15 09:31
+ */
+public class DateUtils {
+
+
+ /**
+ * 构造函数.
+ */
+ public void DateUtil() {
+ throw new RuntimeException("this is a util class,can not instance!");
+ }
+
+ /**
+ * 添加字段注释.
+ */
+ public static final String ENUM_FORMAT = "yyyy-MM-dd HH:mm:ss";
+ /**
+ * 添加字段注释.
+ */
+ public static final String ASCM_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
+
+ /**
+ * 添加字段注释.
+ */
+ public static final String ENUM_FORMAT_YMD = "yyyy-MM-dd";
+ public static final String ENUM_FORMAT_YMD_1 = "yyyyMMdd";
+
+ /**
+ * 添加字段注释.
+ */
+ public static final String ENUM_FORMAT_YMDS = "yyyy-MM-dd HH:mm:ss.S";
+
+ /**
+ * 添加字段注释.
+ */
+ public static final String ENUM_FORMAT_SLASH = "yyyy/MM/dd HH:mm:ss";
+
+ /**
+ * 添加字段注释.
+ */
+ public static final String ENUM_FORMAT_YMDS_SLASH = "yyyy/MM/dd HH:mm:ss.S";
+
+ /**
+ * 添加字段注释.
+ */
+ public static final String LEVEL_DAY = "day"; // 粒度级别
+
+ /**
+ * 添加字段注释.
+ */
+ public static final String LEVEL_HOUR = "hour";
+
+ /**
+ * 添加字段注释.
+ */
+ public static final String LEVEL_MINUTE = "minute";
+
+ /**
+ * 添加字段注释.
+ */
+ public static final String LEVEL_SECOND = "second";
+
+ /**
+ * 日期特殊字符对应.
+ */
+ private static Map mapSign = new HashMap<>();
+
+ /**
+ * 使用ThreadLocal保证SimpleDateFormat线程安全.
+ */
+ private static ThreadLocal