feat: PhotoWall 毕业照存储系统初始版本

后端: Go(Gin+GORM+MySQL+Redis)
- 17张业务表(yz_pw_前缀), 自动迁移
- JWT认证(3小时) + 盐+MD5密码 + 图形验证码
- 班级CRUD/加入(8人姓名验证/邀请码)/审核/30天自动清理
- 系统配置(16项)/菜单管理(动态路由)/数据统计
- 文件MD5去重/数据隔离/账号封禁/敏感词DFA检测

前端: Vue3+Vite+Element Plus+Less+ECharts+FontAwesome
- 动态路由(数据库菜单驱动)
- 蓝白配色, H5响应式
- 登录/注册/忘记密码/个人中心
- 班级创建向导/详情/加入/列表
- 管理后台: 审核/配置/菜单/统计/用户/敏感词

数据库: MySQL 10.31.100.3:3306/photowall
管理员: hero920103 / 920103
This commit is contained in:
hero920103
2026-09-03 05:55:23 +08:00
commit 57d9866dab
82 changed files with 12668 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
package model
import "time"
// UploadFile 上传文件记录表(MD5去重用)
type UploadFile struct {
ID uint `gorm:"primaryKey" json:"id"`
Md5 string `gorm:"size:32;uniqueIndex;not null" json:"md5"`
FilePath string `gorm:"size:512;not null" json:"file_path"` // 相对路径,如 classes/20260101_1_abc.jpg
FileUrl string `gorm:"size:512;not null" json:"file_url"` // 可访问URL,如 /uploads/classes/xxx.jpg
FileName string `gorm:"size:255" json:"file_name"`
FileSize int64 `gorm:"default:0" json:"file_size"`
FileType string `gorm:"size:32" json:"file_type"` // class/photo/avatar
UploaderID uint `gorm:"index" json:"uploader_id"`
RefCount int `gorm:"default:1" json:"ref_count"` // 引用次数
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}