Browse Source

重构协议代码

tsurumure 7 tháng trước cách đây
mục cha
commit
aeed9317be

+ 38 - 38
src/main/java/com/backendsys/entity/System/SysAgreementDTO.java

@@ -1,38 +1,38 @@
-package com.backendsys.entity.System;
-
-import com.backendsys.entity.validator.RangeArray;
-import jakarta.validation.constraints.NotEmpty;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import org.hibernate.validator.constraints.Range;
-
-@Data
-public class SysAgreementDTO {
-
-    public static interface List{}
-    public static interface Detail{}
-    public static interface Create{}
-    public static interface Update{}
-    public static interface Delete{}
-
-    private Long id;
-    @NotNull(message="agreement_id 不能为空", groups = { Update.class, Delete.class })
-    private Long agreement_id;
-
-    @NotEmpty(message="标识不能为空", groups = { Detail.class, Create.class, Update.class })
-    private String tag;
-
-    @NotEmpty(message="标题不能为空", groups = { Create.class, Update.class })
-    @Size(max = 50, message = "标题长度不超过 {max} 字符", groups = { Create.class, Update.class })
-    private String title;
-
-    @NotEmpty(message="内容不能为空", groups = { Create.class, Update.class })
-    private String content;
-    @Range(min = 1, max = 9999, message = "排序必须在 {min} 到 {max} 之间", groups = { Create.class, Update.class })
-    private Integer sort;
-    @RangeArray(message="状态取值有误,范围应是(-1禁用, 1启用)", value = {"-1", "1"}, groups = { Create.class, Update.class })
-    private Integer status;
-    private String create_time;
-    private String update_time;
-}
+//package com.backendsys.entity.System;
+//
+//import com.backendsys.entity.validator.RangeArray;
+//import jakarta.validation.constraints.NotEmpty;
+//import jakarta.validation.constraints.NotNull;
+//import jakarta.validation.constraints.Size;
+//import lombok.Data;
+//import org.hibernate.validator.constraints.Range;
+//
+//@Data
+//public class SysAgreementDTO {
+//
+//    public static interface List{}
+//    public static interface Detail{}
+//    public static interface Create{}
+//    public static interface Update{}
+//    public static interface Delete{}
+//
+//    private Long id;
+//    @NotNull(message="agreement_id 不能为空", groups = { Update.class, Delete.class })
+//    private Long agreement_id;
+//
+//    @NotEmpty(message="标识不能为空", groups = { Detail.class, Create.class, Update.class })
+//    private String tag;
+//
+//    @NotEmpty(message="标题不能为空", groups = { Create.class, Update.class })
+//    @Size(max = 50, message = "标题长度不超过 {max} 字符", groups = { Create.class, Update.class })
+//    private String title;
+//
+//    @NotEmpty(message="内容不能为空", groups = { Create.class, Update.class })
+//    private String content;
+//    @Range(min = 1, max = 9999, message = "排序必须在 {min} 到 {max} 之间", groups = { Create.class, Update.class })
+//    private Integer sort;
+//    @RangeArray(message="状态取值有误,范围应是(-1禁用, 1启用)", value = {"-1", "1"}, groups = { Create.class, Update.class })
+//    private Integer status;
+//    private String create_time;
+//    private String update_time;
+//}

+ 3 - 3
src/main/java/com/backendsys/exception/GlobalExceptionHandler.java

@@ -203,11 +203,11 @@ public class GlobalExceptionHandler implements ResponseBodyAdvice<Object> {
     @ExceptionHandler(MissingServletRequestParameterException.class)
     public Result handleMissingServletRequestParameterException(MissingServletRequestParameterException e) {
         System.out.println("****** MissingServletRequestParameterException.class: ******");
-        printErrorException(e, true);
+        printErrorException(e, false);
         return Result.error(
             ResultEnum.PARAMETER_EXCEPTION.getCode(),
-            "缺少参数 " + e.getParameterName() + " 或类型不匹配 (" + e.getParameterType() + ")",
-            e.getMessage()
+            "缺少参数(" + e.getParameterName() + ")或参数类型不匹配(" + e.getParameterType() + ")",
+            "Field: " + e.getParameterName()
         );
     }
 

+ 13 - 13
src/main/java/com/backendsys/mapper/System/SysAgreementMapper.java

@@ -1,13 +1,13 @@
-package com.backendsys.mapper.System;
-
-import com.backendsys.entity.System.SysAgreementDTO;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-import java.util.Map;
-
-@Mapper
-public interface SysAgreementMapper {
-    List<Map<String, Object>> querySysAgreement(SysAgreementDTO sysAgreementDTO);
-    Map<String, Object> querySysAgreementDetailByTag(String tag);
-}
+//package com.backendsys.mapper.System;
+//
+//import com.backendsys.entity.System.SysAgreementDTO;
+//import org.apache.ibatis.annotations.Mapper;
+//
+//import java.util.List;
+//import java.util.Map;
+//
+//@Mapper
+//public interface SysAgreementMapper {
+//    List<Map<String, Object>> querySysAgreement(SysAgreementDTO sysAgreementDTO);
+//    Map<String, Object> querySysAgreementDetailByTag(String tag);
+//}

+ 56 - 56
src/main/java/com/backendsys/mapper/System/SysAgreementMapper.xml

@@ -1,63 +1,63 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.backendsys.mapper.System.SysAgreementMapper">
+<!--<?xml version="1.0" encoding="utf-8" ?>-->
+<!--<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >-->
+<!--<mapper namespace="com.backendsys.mapper.System.SysAgreementMapper">-->
 
-    <sql id="includeSysAgreement">
-        id,
-        id agreement_id,
-        tag,
-        title,
-        COALESCE(sort, '') sort,
-        status,
-        create_time,
-        update_time
-    </sql>
+<!--    <sql id="includeSysAgreement">-->
+<!--        id,-->
+<!--        id agreement_id,-->
+<!--        tag,-->
+<!--        title,-->
+<!--        COALESCE(sort, '') sort,-->
+<!--        status,-->
+<!--        create_time,-->
+<!--        update_time-->
+<!--    </sql>-->
 
-    <sql id="includeSysAgreementDetail">
-        id,
-        id agreement_id,
-        tag,
-        title,
-        content,
-        COALESCE(sort, '') sort,
-        status,
-        create_time,
-        update_time
-    </sql>
+<!--    <sql id="includeSysAgreementDetail">-->
+<!--        id,-->
+<!--        id agreement_id,-->
+<!--        tag,-->
+<!--        title,-->
+<!--        content,-->
+<!--        COALESCE(sort, '') sort,-->
+<!--        status,-->
+<!--        create_time,-->
+<!--        update_time-->
+<!--    </sql>-->
 
-    <resultMap id="resultMapSysAgreement" type="java.util.LinkedHashMap">
-        <id property="id" column="id" jdbcType="BIGINT" />
-        <result property="agreement_id" column="agreement_id" javaType="java.lang.Long"/>
-        <result property="tag" column="tag" />
-        <result property="title" column="title" />
-        <result property="sort" column="sort" javaType="java.lang.Integer" />
-        <result property="status" column="status" javaType="java.lang.Integer" />
-        <result property="create_time" column="create_time" />
-        <result property="update_time" column="update_time" />
-    </resultMap>
+<!--    <resultMap id="resultMapSysAgreement" type="java.util.LinkedHashMap">-->
+<!--        <id property="id" column="id" jdbcType="BIGINT" />-->
+<!--        <result property="agreement_id" column="agreement_id" javaType="java.lang.Long"/>-->
+<!--        <result property="tag" column="tag" />-->
+<!--        <result property="title" column="title" />-->
+<!--        <result property="sort" column="sort" javaType="java.lang.Integer" />-->
+<!--        <result property="status" column="status" javaType="java.lang.Integer" />-->
+<!--        <result property="create_time" column="create_time" />-->
+<!--        <result property="update_time" column="update_time" />-->
+<!--    </resultMap>-->
 
-    <resultMap id="resultMapSysAgreementDetail" type="java.util.LinkedHashMap">
-        <id property="id" column="id" jdbcType="BIGINT" />
-        <result property="agreement_id" column="agreement_id" javaType="java.lang.Long"/>
-        <result property="tag" column="tag" />
-        <result property="title" column="title" />
-        <result property="content" column="content" />
-        <result property="sort" column="sort" javaType="java.lang.Integer" />
-        <result property="status" column="status" javaType="java.lang.Integer" />
-        <result property="create_time" column="create_time" />
-        <result property="update_time" column="update_time" />
-    </resultMap>
+<!--    <resultMap id="resultMapSysAgreementDetail" type="java.util.LinkedHashMap">-->
+<!--        <id property="id" column="id" jdbcType="BIGINT" />-->
+<!--        <result property="agreement_id" column="agreement_id" javaType="java.lang.Long"/>-->
+<!--        <result property="tag" column="tag" />-->
+<!--        <result property="title" column="title" />-->
+<!--        <result property="content" column="content" />-->
+<!--        <result property="sort" column="sort" javaType="java.lang.Integer" />-->
+<!--        <result property="status" column="status" javaType="java.lang.Integer" />-->
+<!--        <result property="create_time" column="create_time" />-->
+<!--        <result property="update_time" column="update_time" />-->
+<!--    </resultMap>-->
 
-    <select id="querySysAgreement" resultMap="resultMapSysAgreement">
-        SELECT <include refid="includeSysAgreement" />
-        FROM sys_agreement
-        ORDER BY sort DESC
-    </select>
+<!--    <select id="querySysAgreement" resultMap="resultMapSysAgreement">-->
+<!--        SELECT <include refid="includeSysAgreement" />-->
+<!--        FROM sys_agreement-->
+<!--        ORDER BY sort DESC-->
+<!--    </select>-->
 
-    <select id="querySysAgreementDetailByTag" resultMap="resultMapSysAgreementDetail">
-        SELECT <include refid="includeSysAgreementDetail" />
-        FROM sys_agreement
-        WHERE tag = #{tag}
-    </select>
+<!--    <select id="querySysAgreementDetailByTag" resultMap="resultMapSysAgreementDetail">-->
+<!--        SELECT <include refid="includeSysAgreementDetail" />-->
+<!--        FROM sys_agreement-->
+<!--        WHERE tag = #{tag}-->
+<!--    </select>-->
 
-</mapper>
+<!--</mapper>-->

+ 54 - 67
src/main/java/com/backendsys/modules/system/controller/SysAgreementController.java

@@ -1,67 +1,54 @@
-//package com.backendsys.modules.system.controller;
-//
-//import cn.hutool.core.util.StrUtil;
-//import com.backendsys.entity.PageDTO;
-//import com.backendsys.entity.System.SysAgreementDTO;
-//import com.backendsys.modules.common.config.security.annotations.Anonymous;
-//import com.backendsys.service.System.SysAgreementService;
-//import com.backendsys.utils.response.Result;
-//import jakarta.servlet.http.HttpServletResponse;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.validation.annotation.Validated;
-//import org.springframework.web.bind.annotation.GetMapping;
-//import org.springframework.web.bind.annotation.RequestParam;
-//import org.springframework.web.bind.annotation.RestController;
-//
-//import java.util.Map;
-//
-//@Validated
-//@RestController
-//public class SysAgreementController {
-//
-//    @Autowired
-//    private SysAgreementService sysAgreementService;
-//
-//
-//    @Anonymous
-//    @GetMapping("/api/system/getAgreementHtml")
-//    public String getAgreementView(HttpServletResponse response, @RequestParam(name = "tag", required = false) String tag) {
-//
-//        // 校验
-//        if (StrUtil.isEmpty(tag)) return "tag 参数不能为空";
-//        Map<String, Object> detail = sysAgreementService.querySysAgreementByTag(tag);
-//        if (detail == null) return "找不到内容";
-//
-//        String title = (String) detail.get("title");
-//        String content = (String) detail.get("content");
-//
-//        // 设置响应的类型为 text/html,这样浏览器就知道接收到的是 HTML 内容
-//        response.setContentType("text/html;charset=UTF-8");
-//
-//        // 直接返回 HTML 字符串
-//        return "<html>" +
-//                "<head><title>" + title + "</title></head>" +
-//                "<body>" +
-//                content +
-//                "</body>" +
-//                "</html>";
-//
-//    }
-//
-//    /**
-//     * 获得协议
-//     */
-//    @GetMapping("/api/public/system/getAgreement")
-//    public Result getUser(@Validated PageDTO pageDTO, @Validated(SysAgreementDTO.List.class) SysAgreementDTO sysAgreementDTO) {
-//        return Result.success(sysAgreementService.querySysAgreement(pageDTO.getPage_num(), pageDTO.getPage_size(), sysAgreementDTO));
-//    }
-//
-//    /**
-//     * 获得协议详情
-//     */
-//    @GetMapping("/api/public/system/getAgreementByTag")
-//    public Result getUser(@Validated(SysAgreementDTO.Detail.class) SysAgreementDTO sysAgreementDTO) {
-//        return Result.success(sysAgreementService.querySysAgreementByTag(sysAgreementDTO.getTag()));
-//    }
-//
-//}
+package com.backendsys.modules.system.controller;
+
+import com.backendsys.modules.common.config.security.annotations.Anonymous;
+import com.backendsys.modules.common.utils.Result;
+import com.backendsys.modules.system.entity.SysAgreement;
+import com.backendsys.modules.system.service.SysAgreementService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@Validated
+@RestController
+@Tag(name = "协议管理")
+public class SysAgreementController {
+
+    @Autowired
+    private SysAgreementService sysAgreementService;
+
+    @Anonymous
+    @Operation(summary = "获得协议详情 (HTML)")
+    @GetMapping("/api/system/getAgreementToHtml")
+    public String getAgreementHtml(HttpServletResponse response, @RequestParam(name = "tag", required = true) String tag) {
+
+        SysAgreement sysAgreement = sysAgreementService.selectAgreementByTag(tag);
+        if (sysAgreement == null) return "找不到内容";
+
+        // 设置响应的类型为 text/html,这样浏览器就知道接收到的是 HTML 内容
+        response.setContentType("text/html;charset=UTF-8");
+        return "<html>" +
+                "<head><title>" + sysAgreement.getTitle() + "</title></head>" +
+                "<body>" + sysAgreement.getContent() + "</body>" +
+                "</html>";
+    }
+
+    @Anonymous
+    @Operation(summary = "获得协议列表")
+    @GetMapping("/api/system/getAgreementList")
+    public Result getAgreementList(SysAgreement sysAgreement) {
+        return Result.success().put("data", sysAgreementService.selectAgreementList(sysAgreement));
+    }
+
+    @Anonymous
+    @Operation(summary = "获得协议详情")
+    @GetMapping("/api/system/getAgreementByTag")
+    public Result getAgreementByTag(String tag) {
+        return Result.success().put("data", sysAgreementService.selectAgreementByTag(tag));
+    }
+
+}

+ 9 - 0
src/main/java/com/backendsys/modules/system/dao/SysAgreementDao.java

@@ -0,0 +1,9 @@
+package com.backendsys.modules.system.dao;
+
+import com.backendsys.modules.system.entity.SysAgreement;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysAgreementDao extends BaseMapper<SysAgreement> {
+}

+ 47 - 0
src/main/java/com/backendsys/modules/system/entity/SysAgreement.java

@@ -0,0 +1,47 @@
+package com.backendsys.modules.system.entity;
+
+import com.backendsys.entity.validator.RangeArray;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+import org.hibernate.validator.constraints.Range;
+
+@Data
+@TableName("sys_agreement")
+public class SysAgreement {
+
+    public static interface List{}
+    public static interface Detail{}
+    public static interface Create{}
+    public static interface Update{}
+    public static interface Delete{}
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+//    @TableField(exist = false)
+//    @NotNull(message="agreement_id 不能为空", groups = { Update.class, Delete.class })
+//    private Long agreement_id;
+
+    @NotEmpty(message="标识不能为空", groups = { Detail.class, Create.class, Update.class })
+    private String tag;
+
+    @NotEmpty(message="标题不能为空", groups = { Create.class, Update.class })
+    @Size(max = 50, message = "标题长度不超过 {max} 字符", groups = { Create.class, Update.class })
+    private String title;
+
+    @NotEmpty(message="内容不能为空", groups = { Create.class, Update.class })
+    private String content;
+    @Range(min = 1, max = 9999, message = "排序必须在 {min} 到 {max} 之间", groups = { Create.class, Update.class })
+    private Integer sort;
+    @RangeArray(message="状态取值有误,范围应是(-1禁用, 1启用)", value = {"-1", "1"}, groups = { Create.class, Update.class })
+    private Integer status;
+    private String create_time;
+    private String update_time;
+
+}

+ 14 - 0
src/main/java/com/backendsys/modules/system/service/SysAgreementService.java

@@ -0,0 +1,14 @@
+package com.backendsys.modules.system.service;
+
+import com.backendsys.modules.system.entity.SysAgreement;
+import com.backendsys.utils.response.PageEntity;
+
+public interface SysAgreementService {
+
+    // 获得协议列表
+    PageEntity selectAgreementList(SysAgreement sysAgreement);
+
+    // 获得协议详情 (By tag)
+    SysAgreement selectAgreementByTag(String tag);
+
+}

+ 43 - 0
src/main/java/com/backendsys/modules/system/service/impl/SysAgreementServiceImpl.java

@@ -0,0 +1,43 @@
+package com.backendsys.modules.system.service.impl;
+
+import com.backendsys.exception.CustException;
+import com.backendsys.modules.system.dao.SysAgreementDao;
+import com.backendsys.modules.system.entity.SysAgreement;
+import com.backendsys.modules.system.service.SysAgreementService;
+import com.backendsys.utils.response.PageEntity;
+import com.backendsys.utils.response.PageInfoResult;
+import com.backendsys.utils.v2.PageUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class SysAgreementServiceImpl implements SysAgreementService {
+
+    @Autowired
+    private SysAgreementDao sysAgreementDao;
+
+    /**
+     * 获得协议列表
+     */
+    @Override
+    public PageEntity selectAgreementList(SysAgreement sysAgreement) {
+        PageUtils.startPage();  // 分页
+        List<SysAgreement> list = sysAgreementDao.selectList(new QueryWrapper<>());
+        return new PageInfoResult(list).toEntity();
+    }
+
+    /**
+     * 获得协议详情 (By tag)
+     */
+    @Override
+    public SysAgreement selectAgreementByTag(String tag) {
+        SysAgreement detail = sysAgreementDao.selectOne(new LambdaQueryWrapper<SysAgreement>().eq(SysAgreement::getTag, tag));
+        if (detail == null) throw new CustException("协议不存在");
+        return detail;
+    }
+
+}

+ 12 - 12
src/main/java/com/backendsys/service/System/SysAgreementService.java

@@ -1,12 +1,12 @@
-package com.backendsys.service.System;
-
-import com.backendsys.entity.System.SysAgreementDTO;
-
-import java.util.Map;
-
-public interface SysAgreementService {
-
-    Map<String, Object> querySysAgreement(Integer pageNum, Integer pageSize, SysAgreementDTO sysAgreementDTO);
-
-    Map<String, Object> querySysAgreementByTag(String tag);
-}
+//package com.backendsys.service.System;
+//
+//import com.backendsys.entity.System.SysAgreementDTO;
+//
+//import java.util.Map;
+//
+//public interface SysAgreementService {
+//
+//    Map<String, Object> querySysAgreement(Integer pageNum, Integer pageSize, SysAgreementDTO sysAgreementDTO);
+//
+//    Map<String, Object> querySysAgreementByTag(String tag);
+//}

+ 34 - 34
src/main/java/com/backendsys/service/System/SysAgreementServiceImpl.java

@@ -1,34 +1,34 @@
-package com.backendsys.service.System;
-
-import com.backendsys.entity.System.SysAgreementDTO;
-import com.backendsys.mapper.System.SysAgreementMapper;
-import com.backendsys.utils.response.PageInfoResult;
-import com.github.pagehelper.PageHelper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.Map;
-
-@Service
-public class SysAgreementServiceImpl implements SysAgreementService {
-
-    @Autowired
-    private SysAgreementMapper sysAgreementMapper;
-
-    public Map<String, Object> querySysAgreement(Integer pageNum, Integer pageSize, SysAgreementDTO sysAgreementDTO) {
-        // 分页查询
-        if (pageNum != null && pageSize != null) {
-            PageHelper.startPage(pageNum, pageSize);
-        }
-        // 分页输出 (自定义)
-        List<Map<String, Object>> list = sysAgreementMapper.querySysAgreement(sysAgreementDTO);
-        PageInfoResult pageInfoResult = new PageInfoResult(list);
-        return pageInfoResult.toMap();
-    }
-
-    public Map<String, Object> querySysAgreementByTag(String tag) {
-        return sysAgreementMapper.querySysAgreementDetailByTag(tag);
-    }
-
-}
+//package com.backendsys.service.System;
+//
+//import com.backendsys.entity.System.SysAgreementDTO;
+//import com.backendsys.mapper.System.SysAgreementMapper;
+//import com.backendsys.utils.response.PageInfoResult;
+//import com.github.pagehelper.PageHelper;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Service;
+//
+//import java.util.List;
+//import java.util.Map;
+//
+//@Service
+//public class SysAgreementServiceImpl implements SysAgreementService {
+//
+//    @Autowired
+//    private SysAgreementMapper sysAgreementMapper;
+//
+//    public Map<String, Object> querySysAgreement(Integer pageNum, Integer pageSize, SysAgreementDTO sysAgreementDTO) {
+//        // 分页查询
+//        if (pageNum != null && pageSize != null) {
+//            PageHelper.startPage(pageNum, pageSize);
+//        }
+//        // 分页输出 (自定义)
+//        List<Map<String, Object>> list = sysAgreementMapper.querySysAgreement(sysAgreementDTO);
+//        PageInfoResult pageInfoResult = new PageInfoResult(list);
+//        return pageInfoResult.toMap();
+//    }
+//
+//    public Map<String, Object> querySysAgreementByTag(String tag) {
+//        return sysAgreementMapper.querySysAgreementDetailByTag(tag);
+//    }
+//
+//}