docs(website): 添加简记memo产品原型和UI设计规范文档
- 新增「简记memo」一体化小程序产品原型设计文档 - 新增简记memo完整版UI视觉设计规范和界面细节 - 添加IDEA项目配置文件.gitignore - 创建404页面HTML文件,包含响应式布局和错误提示 - 添加关于页面HTML文件,展示品牌介绍和团队信息 - 实现AES加解密工具函数,支持请求体加密 - 添加用户协议页面基础框架
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
// 小程序用户接口
|
||||
package app
|
||||
|
||||
import (
|
||||
"simple-memo/global"
|
||||
"simple-memo/models"
|
||||
"simple-memo/utils"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// -------------------------- 1. 定义 Handler 接口 --------------------------
|
||||
// UserConfigHandler 用户模块接口定义
|
||||
type UserConfigHandler interface {
|
||||
UserConfigInfo(c *gin.Context) // 获取配置
|
||||
EditUserConfig(c *gin.Context) // 编辑配置
|
||||
}
|
||||
|
||||
// -------------------------- 2. 实现结构体(依赖注入DB) --------------------------
|
||||
// userHandler 接口实现结构体
|
||||
type userConfigHandler struct {
|
||||
db *gorm.DB // 注入数据库,方便测试
|
||||
}
|
||||
|
||||
// NewUserConfigHandler 创建用户处理器(对外暴露)
|
||||
func NewUserConfigHandler() UserConfigHandler {
|
||||
return &userConfigHandler{
|
||||
db: global.DB,
|
||||
}
|
||||
}
|
||||
|
||||
type EditUserConfigReq struct {
|
||||
Theme string `json:"theme"` // 主题
|
||||
}
|
||||
|
||||
// -------------------------- 4. 接口实现 --------------------------
|
||||
|
||||
// UserConfigInfo 获取用户配置信息
|
||||
func (h *userConfigHandler) UserConfigInfo(c *gin.Context) {
|
||||
userId, exists := c.Get("userID")
|
||||
if !exists {
|
||||
utils.Fail(c, "用户未登录")
|
||||
return
|
||||
}
|
||||
|
||||
var user models.UserConfig
|
||||
err := h.db.Where("user_id = ?", userId).First(&user).Error
|
||||
if err != nil {
|
||||
utils.Fail(c, "获取用户信息失败")
|
||||
return
|
||||
}
|
||||
|
||||
// 返回脱敏用户信息
|
||||
utils.Ok(c, gin.H{
|
||||
"id": user.ID,
|
||||
"theme": user.Theme,
|
||||
"createdAt": user.CreatedAt,
|
||||
})
|
||||
}
|
||||
|
||||
// EditUser 修改用户信息
|
||||
func (h *userConfigHandler) EditUserConfig(c *gin.Context) {
|
||||
userId, exists := c.Get("userID")
|
||||
if !exists {
|
||||
utils.Fail(c, "用户未登录")
|
||||
}
|
||||
var editUserConfigReq EditUserConfigReq
|
||||
if err := c.ShouldBindJSON(&editUserConfigReq); err != nil {
|
||||
utils.Fail(c, "参数解析失败")
|
||||
}
|
||||
var data map[string]any
|
||||
// 如果只存在一个字段,则只更新当前的一个
|
||||
if editUserConfigReq.Theme != "" {
|
||||
data = map[string]any{
|
||||
"user_id": userId,
|
||||
"theme": editUserConfigReq.Theme,
|
||||
}
|
||||
}
|
||||
if data == nil {
|
||||
utils.Ok(c, nil)
|
||||
}
|
||||
|
||||
err := h.db.Where("user_id = ?", userId).
|
||||
Assign(data).
|
||||
FirstOrCreate(&models.UserConfig{}).Error
|
||||
if err != nil {
|
||||
utils.Fail(c, "用户配置信息更新失败")
|
||||
}
|
||||
utils.Ok(c, nil)
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user