diff --git a/pom.xml b/pom.xml
index 6dadccd..216c74b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,6 +84,11 @@
org.springframework.boot
spring-boot-starter-data-redis
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ 1.4.6
+
diff --git a/src/main/java/com/example/demo/Util/BusinessException.java b/src/main/java/com/example/demo/Util/BusinessException.java
new file mode 100644
index 0000000..956bcec
--- /dev/null
+++ b/src/main/java/com/example/demo/Util/BusinessException.java
@@ -0,0 +1,31 @@
+package com.example.demo.Util;
+
+/**
+ * @program: GOLD
+ * @ClassName BusinessException
+ * @description:
+ * @author: huangqizhen
+ * @create: 2025−06-23 14:58
+ * @Version 1.0
+ **/
+
+import lombok.Getter;
+
+/**
+ * 业务异常,可抛出到前端
+ */
+@Getter
+public class BusinessException extends RuntimeException {
+ private int code; // 业务状态码
+ // 使用默认状态码0的构造方法
+ public BusinessException(String message) {
+ this(400, message); // 默认状态码400
+ }
+
+ // 指定状态码的构造方法
+ public BusinessException(int code, String message) {
+ super(message);
+ this.code = code;
+ }
+
+}
diff --git a/src/main/java/com/example/demo/controller/GoldDetailController.java b/src/main/java/com/example/demo/controller/GoldDetailController.java
new file mode 100644
index 0000000..f01bc53
--- /dev/null
+++ b/src/main/java/com/example/demo/controller/GoldDetailController.java
@@ -0,0 +1,45 @@
+package com.example.demo.controller;
+
+import com.example.demo.domain.vo.GoldDetail;
+import com.example.demo.domain.vo.Page;
+import com.example.demo.domain.vo.Result;
+import com.example.demo.service.GoldDetailService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @program: GOLD
+ * @ClassName GoldDetailController
+ * @description:
+ * @author: huangqizhen
+ * @create: 2025−06-23 14:41
+ * @Version 1.0
+ **/
+
+@RestController
+@RequestMapping("/goldDetail")
+@RequiredArgsConstructor
+@Slf4j
+@CrossOrigin
+public class GoldDetailController {
+ private final GoldDetailService goldDetailService;
+ @PostMapping("/getGoldDetail")
+ public Result getGoldDetail(@RequestBody Page page){
+
+ if(ObjectUtils.isEmpty(page.getPageNum())){
+ return Result.error("页码数为空!");
+ }
+ if(ObjectUtils.isEmpty(page.getPageSize())){
+ return Result.error("页大小为空!");
+ }
+ else{
+ return Result.success(goldDetailService.getGoldDetail(page.getPageNum(), page.getPageSize(), page.getGoldDetail()));
+ }
+ }
+ @PostMapping("/getTotal")
+ public Result getTotal(@RequestBody GoldDetail goldDetail) {
+ return Result.success(goldDetailService.getTotal(goldDetail));
+ }
+}
diff --git a/src/main/java/com/example/demo/domain/vo/GoldDetail.java b/src/main/java/com/example/demo/domain/vo/GoldDetail.java
new file mode 100644
index 0000000..d1ee6ca
--- /dev/null
+++ b/src/main/java/com/example/demo/domain/vo/GoldDetail.java
@@ -0,0 +1,44 @@
+package com.example.demo.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @program: GOLD
+ * @ClassName GoldDetail
+ * @description:
+ * @author: huangqizhen
+ * @create: 2025−06-23 13:03
+ * @Version 1.0
+ **/
+@Data
+@NoArgsConstructor
+public class GoldDetail {
+ private static final long serialVersionUID = 1L;
+
+ private String token;
+ private String name; // 名称
+ private Integer jwcode; // 精网号
+ private String market; // 所属地区
+ private String payPlatform; // 支付平台
+ private Integer type; // 类型
+ private Integer sumGold; // 总金币
+ private Integer permentGold; //永久金币
+ private Integer freeJune; // 免费金币六月到期
+ private Integer freeDecember; // 免费金币七月到期
+ private Integer taskGold; // 任务金币
+ private String adminName; //提交人
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private Date startTime; // 开始时间
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private Date endTime; // 结束时间
+ private String sortField; //排序字段
+ private String sortOrder; //排序顺序
+
+}
diff --git a/src/main/java/com/example/demo/domain/vo/Page.java b/src/main/java/com/example/demo/domain/vo/Page.java
new file mode 100644
index 0000000..36d7d9d
--- /dev/null
+++ b/src/main/java/com/example/demo/domain/vo/Page.java
@@ -0,0 +1,23 @@
+package com.example.demo.domain.vo;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @program: GOLD
+ * @ClassName Page
+ * @description:
+ * @author: huangqizhen
+ * @create: 2025−06-23 16:23
+ * @Version 1.0
+ **/
+@Data
+@NoArgsConstructor
+public class Page {
+ private static final long serialVersionUID = 1L;
+
+ private Integer pageNum;
+ private Integer pageSize;
+ private GoldDetail goldDetail;
+
+}
diff --git a/src/main/java/com/example/demo/domain/vo/Result.java b/src/main/java/com/example/demo/domain/vo/Result.java
index 09089da..9de7ea5 100644
--- a/src/main/java/com/example/demo/domain/vo/Result.java
+++ b/src/main/java/com/example/demo/domain/vo/Result.java
@@ -1,5 +1,6 @@
package com.example.demo.domain.vo;
+import com.example.demo.Util.BusinessException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.AllArgsConstructor;
@@ -8,40 +9,67 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
+import java.util.HashMap;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result implements Serializable {
private static final long serialVersionUID = 1L;
- private Integer code;
- private String msg;
- private Object data;
+ private Integer code; // 响应码,200 代表成功;401 代表未授权
+ private String msg; // 响应消息
+ private Object data; // 返回的数据
- public static Result success(Integer code, String msg, Object data) {
- return new Result(code, msg, data);
+ // 成功响应(不需要给前端返回数据)
+ public static Result success() {
+ return new Result(200, "success", new HashMap<>());
}
- public static Result success(Integer code, Object data) {
- return success(code, "操作成功", data);
+
+ // 查询成功响应(把查询结果作为返回数据响应给前端)
+ public static Result success(Object data) {
+ return new Result(200, "success", data);
}
- public static Result success(String msg, Object data) {return success(200, msg, data);}
- public static Result success(Object data){
- return success(200, data);
+
+ // 失败响应
+ public static Result error(String msg) {
+ return new Result(0, msg, new HashMap<>());
}
- public static Result success(){
- return success(null);
+
+ // 失败响应,可以自定义错误码
+ public static Result error(int code, String msg) {
+ return new Result(code, msg, new HashMap<>());
}
- public static Result error(Integer code, String msg, Object data){
- return new Result(code, msg, data);
+ // 成功响应,可以自定义消息和数据
+ public static Result success(String msg, HashMap resultData) {
+ return new Result(200, msg, resultData); // 返回成功响应,状态码为 200
}
- public static Result error(Integer code, String msg){
- return error(code, msg, null);
+
+ // 未授权响应,可以自定义错误码
+ public static Result unauthorized(int code, String msg) {
+ return new Result(code, msg, new HashMap<>());
}
- public static Result error(String msg){
- return error(0, msg);
+
+ // 错误响应,状态码为200,code为401
+ public static Result unauthorized(String msg) {
+ return new Result(401, msg, new HashMap<>());
}
+ //失败响应 自定义状态码 默认为500
+ public static Result error(BusinessException e) {
+ Result response = new Result();
+ // 定义默认错误码映射
+ final int defaultErrorCode = 400;
+ // 检查 getCode() 是否为 null(如果是 Integer)
+ Integer code = e.getCode();
+ if (code == null || code == 0) {
+ response.setCode(defaultErrorCode); // 默认错误码
+ } else {
+ response.setCode(code);
+ }
+ response.setMsg(e.getMessage());
+ return response;
+ }
public String toJson() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(this);
diff --git a/src/main/java/com/example/demo/domain/vo/Total.java b/src/main/java/com/example/demo/domain/vo/Total.java
new file mode 100644
index 0000000..a7e9f18
--- /dev/null
+++ b/src/main/java/com/example/demo/domain/vo/Total.java
@@ -0,0 +1,25 @@
+package com.example.demo.domain.vo;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @program: GOLD
+ * @ClassName Total
+ * @description:
+ * @author: huangqizhen
+ * @create: 2025−06-23 16:53
+ * @Version 1.0
+ **/
+@Data
+@NoArgsConstructor
+public class Total {
+ private static final long serialVersionUID = 1L;
+
+ private String token;
+ private Integer Goldtotal;
+ private Integer permanentGold;
+ private Integer freeGold;
+ private Integer taskGold;
+
+}
diff --git a/src/main/java/com/example/demo/mapper/GoldDetailMapper.java b/src/main/java/com/example/demo/mapper/GoldDetailMapper.java
new file mode 100644
index 0000000..faebecb
--- /dev/null
+++ b/src/main/java/com/example/demo/mapper/GoldDetailMapper.java
@@ -0,0 +1,21 @@
+package com.example.demo.mapper;
+
+import com.example.demo.domain.vo.GoldDetail;
+import com.example.demo.domain.vo.Total;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @program: GOLD
+ * @ClassName GoldDetailMapper
+ * @description:
+ * @author: huangqizhen
+ * @create: 2025−06-23 13:47
+ * @Version 1.0
+ **/
+@Mapper
+public interface GoldDetailMapper {
+ List getGoldDetail(GoldDetail goldDetail);
+ Total getTotal(GoldDetail goldDetail);
+}
diff --git a/src/main/java/com/example/demo/security/TokenFilter.java b/src/main/java/com/example/demo/security/TokenFilter.java
index 15abb56..7652567 100644
--- a/src/main/java/com/example/demo/security/TokenFilter.java
+++ b/src/main/java/com/example/demo/security/TokenFilter.java
@@ -228,8 +228,8 @@ public class TokenFilter extends OncePerRequestFilter {
// 检查是否是上传请求
boolean isErpRequest = request.getRequestURI().startsWith("/ERP") || request.getRequestURI().contains("ERP");
boolean isUploadRequest = request.getRequestURI().startsWith("/upload");
- System.out.println(request.getRequestURI());
- System.out.println(isUploadRequest);
+// System.out.println(request.getRequestURI());
+// System.out.println(isUploadRequest);
if (isUploadRequest ) {
// 如果是上传请求,直接将请求传递给下一个过滤器或目标资源
filterChain.doFilter(request, response);
@@ -237,7 +237,7 @@ public class TokenFilter extends OncePerRequestFilter {
} else {
// 使用RequestWrapper包装原始的HttpServletRequest,使其输入流可以被重复读取
RequestWrapper requestWrapper = new RequestWrapper(request);
- System.out.println(request);
+// System.out.println(request);
// 确保请求体只被读取一次
boolean hasRequestBody = "POST".equals(requestWrapper.getMethod());
diff --git a/src/main/java/com/example/demo/service/GoldDetailService.java b/src/main/java/com/example/demo/service/GoldDetailService.java
new file mode 100644
index 0000000..7095f16
--- /dev/null
+++ b/src/main/java/com/example/demo/service/GoldDetailService.java
@@ -0,0 +1,18 @@
+package com.example.demo.service;
+
+import com.example.demo.domain.vo.GoldDetail;
+import com.example.demo.domain.vo.Total;
+import com.github.pagehelper.PageInfo;
+
+/**
+ * @program: GOLD
+ * @ClassName GoldDetailService
+ * @description:
+ * @author: huangqizhen
+ * @create: 2025−06-23 11:59
+ * @Version 1.0
+ **/
+public interface GoldDetailService {
+ PageInfo getGoldDetail(Integer pageNum, Integer pageSize, GoldDetail goldDetail);
+ Total getTotal(GoldDetail goldDetail);
+}
diff --git a/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java
new file mode 100644
index 0000000..96cbd1c
--- /dev/null
+++ b/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java
@@ -0,0 +1,39 @@
+package com.example.demo.serviceImpl;
+
+import com.example.demo.domain.vo.GoldDetail;
+import com.example.demo.domain.vo.Total;
+import com.example.demo.mapper.GoldDetailMapper;
+import com.example.demo.service.GoldDetailService;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @program: GOLD
+ * @ClassName GoldDetailServiceImpl
+ * @description:
+ * @author: huangqizhen
+ * @create: 2025−06-23 13:44
+ * @Version 1.0
+ **/
+@Service
+public class GoldDetailServiceImpl implements GoldDetailService {
+
+ @Autowired
+ private GoldDetailMapper goldDetailMapper;
+ @Override
+ public PageInfo getGoldDetail(Integer pageNum, Integer pageSize, GoldDetail goldDetail) {
+ PageHelper.startPage(pageNum, pageSize);
+ List list= goldDetailMapper.getGoldDetail(goldDetail);
+ return new PageInfo<>(list);
+ }
+
+ @Override
+ public Total getTotal(GoldDetail goldDetail) {
+
+ return goldDetailMapper.getTotal(goldDetail);
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 6d2229c..4ddfebc 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -62,9 +62,9 @@ spring:
data:
redis:
database: 0
- host: 54.251.137.151
- port: 10703
- password: 8912h12jhhajsd
+ host: 192.168.8.220
+ port: 6379
+ password:
timeout: 1000
lettuce:
pool:
diff --git a/src/main/resources/mapper/GoldDetailMapper.xml b/src/main/resources/mapper/GoldDetailMapper.xml
new file mode 100644
index 0000000..c0c6acf
--- /dev/null
+++ b/src/main/resources/mapper/GoldDetailMapper.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+