Ver Fonte

新增协议接口

tsurumure há 1 ano atrás
pai
commit
c9ca4ee0db

+ 65 - 0
src/main/java/com/backendsys/controller/api/Systems/SysAgreementController.java

@@ -0,0 +1,65 @@
+package com.backendsys.controller.api.Systems;
+
+import cn.hutool.core.util.StrUtil;
+import com.backendsys.entity.PageDTO;
+import com.backendsys.entity.System.SysAgreementDTO;
+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;
+
+
+    @GetMapping("/api/public/system/getAgreementView")
+    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()));
+    }
+
+}

+ 26 - 0
src/main/java/com/backendsys/database/sys_agreement.sql

@@ -0,0 +1,26 @@
+/**
+Source Server Version: 8.0.31
+Source Database: rk_meitusys
+Date: 2024/06/16 01:37:21
+*/
+
+DROP TABLE IF EXISTS `sys_agreement`;
+
+CREATE TABLE `sys_agreement` (
+    PRIMARY KEY (`id`),
+    `id` BIGINT(10) AUTO_INCREMENT COMMENT 'ID',
+    `tag` VARCHAR(50) NOT NULL COMMENT '标识',
+    `title` VARCHAR(50) NOT NULL COMMENT '标题',
+    `content` TEXT NOT NULL COMMENT '内容',
+    `sort` BIGINT(10) DEFAULT '1' COMMENT '排序',
+    `status` TINYINT(1) DEFAULT '1' COMMENT '资讯状态 (-1禁用, 1启用)',
+    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
+) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='系统协议表';
+
+INSERT INTO sys_agreement(tag, title, content, sort) VALUES
+    ('SERVICE_AGREEMENT', '服务协议', '<p>本服务协议规定了用户使用平台时的权利与义务。用户必须遵守相关法律法规,不得从事任何违法活动。</p><p>我们承诺提供安全、稳定的服务,不断优化用户体验。</p>', 1),
+    ('PRIVACY_POLICY', '隐私政策', '<p>我们尊重并保护用户隐私,严格管理用户数据。未经用户同意,不会向第三方披露个人信息。</p><p>用户有权访问、更正个人信息,并可随时更新隐私设置。</p>', 2),
+    ('REAL_AUTH_AGREEMENT', '实名认证服务协议', '<p>为保障用户合法权益,本平台实行实名认证服务。</p><p>用户需提供真实身份信息,完成认证。我们承诺对您的个人信息严格保密,仅用于服务提供和安全保障。</p><p>用户应确保信息真实有效,如有变更,及时更新。违反协议者,平台有权终止服务。</p>', 3),
+    ('FACE_PROCESSING_RULES', '人脸信息处理规则', '<p>本平台对人脸信息的处理遵循法律法规和行业标准。</p><p>用户同意在身份验证过程中使用人脸信息。我们保证不将人脸信息用于任何非法目的或未经授权的第三方共享。</p><p>用户有权随时撤回人脸信息授权,平台将立即停止使用并安全删除。</p>', 4)
+;

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

@@ -0,0 +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;
+}

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

@@ -0,0 +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);
+}

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

@@ -0,0 +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">
+
+    <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>
+
+    <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>
+
+    <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>
+
+</mapper>

+ 7 - 7
src/main/java/com/backendsys/service/SDKService/SDKBaidu/SDKBaiduAiGenerateVideoServiceImpl.java

@@ -208,13 +208,13 @@ public class SDKBaiduAiGenerateVideoServiceImpl implements SDKBaiduAiGenerateVid
         // Http 远程调用
         URI uriWithParams = getUriWithParams("https://aip.baidubce.com/rpc/2.0/brain/creative/ttv/material");
         Map<String, Object> resp = WebClient.create()
-                .method(HttpMethod.POST)
-                .uri(uriWithParams)
-                .bodyValue(customDTO)
-                .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
-                .retrieve().bodyToMono(new ParameterizedTypeReference<Map<String, Object>>() {
-                })
-                .block();
+            .method(HttpMethod.POST)
+            .uri(uriWithParams)
+            .bodyValue(customDTO)
+            .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
+            .retrieve().bodyToMono(new ParameterizedTypeReference<Map<String, Object>>() {
+            })
+            .block();
         return resp;
     }
 

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

@@ -0,0 +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);
+}

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

@@ -0,0 +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);
+    }
+
+}