From 9296908accf89a06fcfbc861e620c82685eabe28 Mon Sep 17 00:00:00 2001 From: zk Date: Fri, 15 May 2026 15:38:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7=E5=8F=8D?= =?UTF-8?q?=E9=A6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .kiro/hooks/java-code-style-check.kiro.hook | 16 -------- .../controller/UserFeedbackController.java | 28 +++++++++++++ .../param/feedback/UserFeedbackParam.java | 25 ++++++++++++ .../jiayunet/service/UserFeedbackService.java | 39 +++++++++++++++++++ .../jiayunet/mapper/UserFeedbackMapper.java | 14 +++++++ .../org/jiayunet/pojo/po/UserFeedback.java | 33 ++++++++++++++++ 6 files changed, 139 insertions(+), 16 deletions(-) delete mode 100644 .kiro/hooks/java-code-style-check.kiro.hook create mode 100644 client-api/src/main/java/org/jiayunet/controller/UserFeedbackController.java create mode 100644 client-api/src/main/java/org/jiayunet/pojo/param/feedback/UserFeedbackParam.java create mode 100644 client-api/src/main/java/org/jiayunet/service/UserFeedbackService.java create mode 100644 manager/src/main/java/org/jiayunet/mapper/UserFeedbackMapper.java create mode 100644 manager/src/main/java/org/jiayunet/pojo/po/UserFeedback.java diff --git a/.kiro/hooks/java-code-style-check.kiro.hook b/.kiro/hooks/java-code-style-check.kiro.hook deleted file mode 100644 index e57a306..0000000 --- a/.kiro/hooks/java-code-style-check.kiro.hook +++ /dev/null @@ -1,16 +0,0 @@ -{ - "enabled": true, - "name": "Java代码风格检查", - "description": "写 Java 代码前,提醒严格遵守 Java 端代码开发风格文档中的规范", - "version": "1", - "when": { - "type": "preToolUse", - "toolTypes": [ - "write" - ] - }, - "then": { - "type": "askAgent", - "prompt": "写 Java 代码前请严格遵守 back-end/.kiro/steering/代码开发风格文档.md 中的所有规范。特别注意:紧凑风格(流式语句和链式调用尽量一行)、Service 用 @Autowired 字段注入、Controller 用 @AllArgsConstructor 构造器注入、写操作加 @Transactional、Service 类注释需包含功能说明/依赖/使用表。" - } -} \ No newline at end of file diff --git a/client-api/src/main/java/org/jiayunet/controller/UserFeedbackController.java b/client-api/src/main/java/org/jiayunet/controller/UserFeedbackController.java new file mode 100644 index 0000000..6c70c4b --- /dev/null +++ b/client-api/src/main/java/org/jiayunet/controller/UserFeedbackController.java @@ -0,0 +1,28 @@ +package org.jiayunet.controller; + +import lombok.AllArgsConstructor; +import org.jiayunet.pojo.param.feedback.UserFeedbackParam; +import org.jiayunet.service.UserFeedbackService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * 用户反馈接口 + * + * @author zk + */ +@RestController +@RequestMapping("/user/feedback") +@AllArgsConstructor +public class UserFeedbackController { + + private final UserFeedbackService userFeedbackService; + + /** + * 提交反馈 + */ + @PostMapping + public void submit(@Validated @RequestBody UserFeedbackParam param) { + userFeedbackService.submit(param.getType(), param.getContent()); + } +} diff --git a/client-api/src/main/java/org/jiayunet/pojo/param/feedback/UserFeedbackParam.java b/client-api/src/main/java/org/jiayunet/pojo/param/feedback/UserFeedbackParam.java new file mode 100644 index 0000000..6c1e833 --- /dev/null +++ b/client-api/src/main/java/org/jiayunet/pojo/param/feedback/UserFeedbackParam.java @@ -0,0 +1,25 @@ +package org.jiayunet.pojo.param.feedback; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +/** + * 用户反馈提交入参 + * + * @author zk + */ +@Data +public class UserFeedbackParam { + + /** 反馈类型 1=Bug反馈 2=功能建议 3=使用体验 4=订阅及会员权益相关问题 5=其它 */ + @NotNull(message = "反馈类型不能为空") + private Integer type; + + /** 反馈内容 */ + @NotBlank(message = "反馈内容不能为空") + @Size(max = 2000, message = "反馈内容最多2000字") + private String content; +} diff --git a/client-api/src/main/java/org/jiayunet/service/UserFeedbackService.java b/client-api/src/main/java/org/jiayunet/service/UserFeedbackService.java new file mode 100644 index 0000000..f359947 --- /dev/null +++ b/client-api/src/main/java/org/jiayunet/service/UserFeedbackService.java @@ -0,0 +1,39 @@ +package org.jiayunet.service; + +import lombok.extern.slf4j.Slf4j; +import org.jiayunet.mapper.UserFeedbackMapper; +import org.jiayunet.pojo.po.UserFeedback; +import org.jiayunet.tool.UserSecurityTool; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 用户反馈服务 + *

主要功能:提交用户反馈

+ *

使用表:bg_user_feedback(插入反馈记录)

+ * + * @author zk + */ +@Slf4j +@Service +public class UserFeedbackService { + + @Autowired + private UserFeedbackMapper userFeedbackMapper; + + /** + * 提交反馈 + *

获取当前用户ID,构建反馈记录并插入

+ */ + public void submit(Integer type, String content) { + Long userId = UserSecurityTool.getUserId(); + + UserFeedback feedback = new UserFeedback(); + feedback.setUserId(userId); + feedback.setType(type); + feedback.setContent(content); + + userFeedbackMapper.insert(feedback); + log.info("用户反馈提交成功 userId:{} type:{}", userId, type); + } +} diff --git a/manager/src/main/java/org/jiayunet/mapper/UserFeedbackMapper.java b/manager/src/main/java/org/jiayunet/mapper/UserFeedbackMapper.java new file mode 100644 index 0000000..1519962 --- /dev/null +++ b/manager/src/main/java/org/jiayunet/mapper/UserFeedbackMapper.java @@ -0,0 +1,14 @@ +package org.jiayunet.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.jiayunet.pojo.po.UserFeedback; + +/** + * 用户反馈Mapper + * + * @author zk + */ +@Mapper +public interface UserFeedbackMapper extends CommonMapper { + +} diff --git a/manager/src/main/java/org/jiayunet/pojo/po/UserFeedback.java b/manager/src/main/java/org/jiayunet/pojo/po/UserFeedback.java new file mode 100644 index 0000000..70c9874 --- /dev/null +++ b/manager/src/main/java/org/jiayunet/pojo/po/UserFeedback.java @@ -0,0 +1,33 @@ +package org.jiayunet.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.Instant; + +/** + * 用户反馈表 + * + * @author zk + */ +@Data +@TableName(value = "bg_user_feedback") +public class UserFeedback { + + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** 用户ID */ + private Long userId; + + /** 反馈类型 1=Bug反馈 2=功能建议 3=使用体验 4=订阅及会员权益相关问题 5=其它 */ + private Integer type; + + /** 反馈内容,最多2000字 */ + private String content; + + /** 创建时间 */ + private Instant createTime; +}