feat():learning后台管理项目初始化

This commit is contained in:
yuj
2025-12-04 16:23:46 +08:00
parent 39886d50d2
commit 88e048f4d1
154 changed files with 28966 additions and 6 deletions

View File

@@ -0,0 +1,63 @@
package models
import (
"gorm.io/gorm"
"time"
)
// UserFeedback 用户反馈模型
type UserFeedback struct {
ID int64 `gorm:"primaryKey;autoIncrement" json:"id"`
UID uint64 `gorm:"column:uid;not null;index;comment:用户ID" json:"user_id"`
Content string `gorm:"type:text;not null;comment:反馈内容" json:"content"`
FileKeys string `gorm:"column:file_keys;type:json;not null;comment:关联文件Key列表" json:"file_keys"`
Status int `gorm:"default:0;comment:0未处理 1已处理" json:"status"`
HandledBy *int `gorm:"column:handled_by;comment:处理人" json:"handled_by"`
HandledAt *time.Time `gorm:"column:handled_at;comment:处理时间" json:"handled_at"`
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime" json:"created_at"`
UpdatedAt time.Time `gorm:"column:updated_at;autoUpdateTime" json:"updated_at"`
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;index" json:"-"`
}
// TableName 指定数据库表名
func (UserFeedback) TableName() string {
return "m_problem_feedbacks"
}
// UserFeedbackListRequest 用户反馈列表请求
type UserFeedbackListRequest struct {
Page int `json:"page" form:"page" binding:"min=1"`
PageSize int `json:"page_size" form:"page_size" binding:"min=1,max=100"`
Status *int `json:"status" form:"status"`
UserID *int `json:"user_id" form:"user_id"`
Keyword string `json:"keyword" form:"keyword"`
StartTime string `json:"start_time" form:"start_time"`
EndTime string `json:"end_time" form:"end_time"`
}
// UserFeedbackListResponse 用户反馈列表响应
type UserFeedbackListResponse struct {
List []UserFeedbackItem `json:"list"`
Total int64 `json:"total"`
Page int `json:"page"`
PageSize int `json:"page_size"`
}
// UserFeedbackItem 列表项扩展返回可访问URL
type UserFeedbackItem struct {
ID int64 `json:"id"`
UserID uint64 `json:"user_id"`
Content string `json:"content"`
FileKeys []string `json:"file_keys"`
FileContents []string `json:"file_contents"` // Base64编码的图片内容
Status int `json:"status"`
HandledBy *int `json:"handled_by"`
HandledAt *time.Time `json:"handled_at"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
// UserFeedbackMarkRequest 标记处理请求
type UserFeedbackMarkRequest struct {
Note string `json:"note" form:"note"`
}