当前位置: 首页 > news >正文

Golang Web 前后端分离企业级后台开发项目计划书V2.0模型代码

Golang Web 前后端分离企业级后台开发项目计划书V2.0模型代码

rbac.go代码

packagemodelimport("time""gorm.io/gorm")// User 用户表typeUserstruct{IDint`gorm:"primarykey;comment:用户ID"`Usernamestring`gorm:"type:varchar(50);uniqueIndex;not null;comment:用户名"`Passwordstring`gorm:"type:varchar(255);not null;comment:密码(加密存储)" json:"-"`Nicknamestring`gorm:"type:varchar(50);comment:昵称"`Emailstring`gorm:"type:varchar(100);uniqueIndex;comment:邮箱"`Mobilestring`gorm:"type:varchar(20);index;comment:手机号"`Statusint8`gorm:"default:1;comment:状态(1:启用 0:禁用)"`CreatedAt time.Time`comment:创建时间`UpdatedAt time.Time`comment:更新时间`DeletedAt gorm.DeletedAt`gorm:"index;comment:软删除时间"`// 关联角色(多对多)//Roles []Role `gorm:"many2many:user_role;comment:用户关联的角色"`Roles*[]Role`gorm:"-"`Permissions*[]Permission`gorm:"-"`Menus*[]Menu`gorm:"-"`Departments*[]Department`gorm:"-"`Positions*[]Position`gorm:"-"`}// TableName 指定用户表名func(User)TableName()string{return"sys_user"}// Role 角色表typeRolestruct{IDint`gorm:"primarykey;comment:角色ID"`Namestring`gorm:"type:varchar(50);uniqueIndex;not null;comment:角色名称"`Codestring`gorm:"type:varchar(50);uniqueIndex;not null;comment:角色标识码"`Descriptionstring`gorm:"type:varchar(200);comment:角色描述"`Sortint`gorm:"default:0;comment:排序"`Statusint8`gorm:"default:1;comment:状态(1:启用 0:禁用)"`CreatedAt time.Time`comment:创建时间`UpdatedAt time.Time`comment:更新时间`DeletedAt gorm.DeletedAt`gorm:"index;comment:软删除时间"`// 关联用户(多对多)//Users []User `gorm:"many2many:sys_user_role;comment:拥有此角色的用户"`// 关联权限(多对多)//Permissions []Permission `gorm:"many2many:sys_role_permission;comment:角色拥有的权限"`// 关联菜单(多对多)//Menus []Menu `gorm:"many2many:sys_role_menu;comment:角色可见的菜单"`}// TableName 指定角色表名func(Role)TableName()string{return"sys_role"}// Permission 权限表(操作权限)typePermissionstruct{IDint`gorm:"primarykey;comment:权限ID"`Namestring`gorm:"type:varchar(100);not null;comment:权限名称(展示用)"`Keystring`gorm:"type:varchar(100);uniqueIndex;not null;comment:权限标识,如 user:create"`Modulestring`gorm:"type:varchar(50);index;comment:所属模块(用户管理、订单管理等)"`Descriptionstring`gorm:"type:varchar(200);comment:权限描述"`CreatedAt time.Time`comment:创建时间`UpdatedAt time.Time`comment:更新时间`DeletedAt gorm.DeletedAt`gorm:"index;comment:软删除时间"`// 关联角色(多对多)//Roles []Role `gorm:"many2many:sys_role_permission;comment:拥有此权限的角色"`}// TableName 指定权限表名func(Permission)TableName()string{return"sys_permission"}// Menu 菜单表(前端导航菜单)typeMenustruct{IDint`gorm:"primarykey;comment:菜单ID"`Namestring`gorm:"type:varchar(50);not null;comment:菜单名称"`Pathstring`gorm:"type:varchar(100);comment:前端路由路径"`Componentstring`gorm:"type:varchar(100);comment:前端组件路径"`ParentIDuint`gorm:"default:0;comment:父菜单ID,0表示根菜单"`Sortint`gorm:"default:0;comment:同级排序"`Iconstring`gorm:"type:varchar(50);comment:菜单图标"`IsHiddenbool`gorm:"default:false;comment:是否隐藏(不在侧边栏显示)"`CreatedAt time.Time`comment:创建时间`UpdatedAt time.Time`comment:更新时间`DeletedAt gorm.DeletedAt`gorm:"index;comment:软删除时间"`// 关联角色(多对多)//Roles []Role `gorm:"many2many:sys_role_menu;comment:可见此菜单的角色"`}// TableName 指定菜单表名func(Menu)TableName()string{return"sys_menu"}// ========== 多对多中间表 ==========// UserRole 用户-角色关联表typeUserRolestruct{UserIDint`gorm:"primaryKey;autoIncrement:false;comment:用户ID"`RoleIDint`gorm:"primaryKey;autoIncrement:false;comment:角色ID"`}// TableName 指定关联表名func(UserRole)TableName()string{return"sys_user_role"}// RolePermission 角色-权限关联表typeRolePermissionstruct{RoleIDint`gorm:"primaryKey;autoIncrement:false;comment:角色ID"`PermissionIDint`gorm:"primaryKey;autoIncrement:false;comment:权限ID"`}// TableName 指定关联表名func(RolePermission)TableName()string{return"sys_role_permission"}// RoleMenu 角色-菜单关联表typeRoleMenustruct{RoleIDint`gorm:"primaryKey;autoIncrement:false;comment:角色ID"`MenuIDint`gorm:"primaryKey;autoIncrement:false;comment:菜单ID"`}// TableName 指定关联表名func(RoleMenu)TableName()string{return"sys_role_menu"}

system.go代码

packagemodelimport("time""gorm.io/gorm")// ========== 注册记录表 ==========// Registration 用户注册记录表typeRegistrationstruct{IDint64`gorm:"primarykey;comment:注册记录ID"`Usernamestring`gorm:"type:varchar(50);not null;comment:注册用户名"`Passwordstring`gorm:"type:varchar(255);not null;comment:注册密码(加密)"`Emailstring`gorm:"type:varchar(100);comment:注册邮箱"`Mobilestring`gorm:"type:varchar(20);comment:注册手机号"`RegisterTypestring`gorm:"type:varchar(20);not null;default:'normal';comment:注册类型(normal:普通用户 admin:管理员用户)"`Statusint8`gorm:"default:0;comment:审核状态(0:待审核 1:审核通过 2:审核拒绝)"`ReviewRemarkstring`gorm:"type:varchar(200);comment:审核备注"`ReviewedByuint`gorm:"default:0;comment:审核人ID"`ReviewedAt*time.Time`comment:审核时间`IPstring`gorm:"type:varchar(50);comment:注册IP"`UserAgentstring`gorm:"type:varchar(500);comment:注册设备信息"`CreatedAt time.Time`comment:创建时间`UpdatedAt time.Time`comment:更新时间`DeletedAt gorm.DeletedAt`gorm:"index;comment:软删除时间"`}func(Registration)TableName()string{return"sys_registration"}// ========== 部门管理 ==========// Department 部门表typeDepartmentstruct{IDuint`gorm:"primarykey;comment:部门ID"`Namestring`gorm:"type:varchar(50);not null;comment:部门名称"`Codestring`gorm:"type:varchar(50);uniqueIndex;comment:部门编码"`ParentIDuint`gorm:"default:0;comment:父部门ID"`Leaderstring`gorm:"type:varchar(50);comment:负责人"`Phonestring`gorm:"type:varchar(20);comment:联系电话"`Emailstring`gorm:"type:varchar(100);comment:邮箱"`Sortint`gorm:"default:0;comment:排序"`Statusint8`gorm:"default:1;comment:状态(1:启用 0:禁用)"`CreatedAt time.Time`comment:创建时间`UpdatedAt time.Time`comment:更新时间`DeletedAt gorm.DeletedAt`gorm:"index;comment:软删除时间"`// 关联用户(多对多)//Users []User `gorm:"many2many:sys_user_department;comment:部门下的用户"`}func(Department)TableName()string{return"sys_department"}// UserDepartment 用户-部门关联表(多对多)typeUserDepartmentstruct{UserIDint`gorm:"primaryKey;autoIncrement:false;comment:用户ID"`DepartmentIDuint`gorm:"primaryKey;autoIncrement:false;comment:部门ID"`}func(UserDepartment)TableName()string{return"sys_user_department"}// ========== 岗位管理 ==========// Position 岗位表typePositionstruct{IDuint`gorm:"primarykey;comment:岗位ID"`Namestring`gorm:"type:varchar(50);not null;comment:岗位名称"`Codestring`gorm:"type:varchar(50);uniqueIndex;comment:岗位编码"`Sortint`gorm:"default:0;comment:排序"`Statusint8`gorm:"default:1;comment:状态(1:启用 0:禁用)"`Remarkstring`gorm:"type:varchar(200);comment:备注"`CreatedAt time.Time`comment:创建时间`UpdatedAt time.Time`comment:更新时间`DeletedAt gorm.DeletedAt`gorm:"index;comment:软删除时间"`// 关联用户(多对多)//Users []User `gorm:"many2many:sys_user_position;comment:岗位下的用户"`}func(Position)TableName()string{return"sys_position"}// UserPosition 用户-岗位关联表(多对多)typeUserPositionstruct{UserIDint`gorm:"primaryKey;autoIncrement:false;comment:用户ID"`PositionIDuint`gorm:"primaryKey;autoIncrement:false;comment:岗位ID"`}func(UserPosition)TableName()string{return"sys_user_position"}// ========== 字典管理 ==========// DictType 字典类型表typeDictTypestruct{IDuint`gorm:"primarykey;comment:字典类型ID"`Namestring`gorm:"type:varchar(50);not null;comment:字典类型名称"`Typestring`gorm:"type:varchar(50);uniqueIndex;not null;comment:字典类型标识(如 sys_user_status)"`Statusint8`gorm:"default:1;comment:状态(1:启用 0:禁用)"`Remarkstring`gorm:"type:varchar(200);comment:备注"`CreatedAt time.Time`comment:创建时间`UpdatedAt time.Time`comment:更新时间`DeletedAt gorm.DeletedAt`gorm:"index;comment:软删除时间"`// 关联字典数据//DictData []DictData `gorm:"foreignKey:DictTypeID"`}func(DictType)TableName()string{return"sys_dict_type"}// DictData 字典数据表typeDictDatastruct{IDint`gorm:"primarykey;comment:字典数据ID"`DictTypeIDuint`gorm:"index;not null;comment:字典类型ID"`Labelstring`gorm:"type:varchar(50);not null;comment:字典标签(展示值)"`Valuestring`gorm:"type:varchar(50);not null;comment:字典键值(存储值)"`Sortint`gorm:"default:0;comment:排序"`Statusint8`gorm:"default:1;comment:状态(1:启用 0:禁用)"`Remarkstring`gorm:"type:varchar(200);comment:备注"`CreatedAt time.Time`comment:创建时间`UpdatedAt time.Time`comment:更新时间`DeletedAt gorm.DeletedAt`gorm:"index;comment:软删除时间"`// 关联字典类型//DictType DictType `gorm:"foreignKey:DictTypeID"`}func(DictData)TableName()string{return"sys_dict_data"}// ========== 参数管理 ==========// Config 参数配置表typeConfigstruct{IDint`gorm:"primarykey;comment:参数ID"`Namestring`gorm:"type:varchar(100);not null;comment:参数名称"`Keystring`gorm:"type:varchar(100);uniqueIndex;not null;comment:参数键名(如 system.log.level)"`Valuestring`gorm:"type:text;comment:参数键值"`Typestring`gorm:"type:varchar(20);default:'string';comment:参数类型(string/int/bool/array)"`IsSystemint8`gorm:"default:0;comment:是否系统内置(1:是 0:否)"`Remarkstring`gorm:"type:varchar(200);comment:备注"`CreatedAt time.Time`comment:创建时间`UpdatedAt time.Time`comment:更新时间`DeletedAt gorm.DeletedAt`gorm:"index;comment:软删除时间"`}func(Config)TableName()string{return"sys_config"}// ========== 通知公告 ==========// Notice 通知公告表typeNoticestruct{IDint`gorm:"primarykey;comment:公告ID"`Titlestring`gorm:"type:varchar(100);not null;comment:公告标题"`Contentstring`gorm:"type:text;comment:公告内容"`Typestring`gorm:"type:varchar(20);default:'notice';comment:类型(notice:通知 announcement:公告)"`Prioritystring`gorm:"type:varchar(10);default:'normal';comment:优先级(high/normal/low)"`Statusint8`gorm:"default:1;comment:状态(1:发布 0:草稿)"`PublishTime*time.Time`comment:发布时间(为空则立即发布)`ExpireTime*time.Time`comment:过期时间`CreatedByuint`gorm:"comment:创建人ID"`CreatedAt time.Time`comment:创建时间`UpdatedAt time.Time`comment:更新时间`DeletedAt gorm.DeletedAt`gorm:"index;comment:软删除时间"`// 关联已读记录//ReadRecords []NoticeRead `gorm:"foreignKey:NoticeID"`}func(Notice)TableName()string{return"sys_notice"}// NoticeRead 公告已读记录表typeNoticeReadstruct{IDint64`gorm:"primarykey;comment:记录ID"`NoticeIDint`gorm:"index;not null;comment:公告ID"`UserIDint`gorm:"index;not null;comment:用户ID"`ReadTime time.Time`gorm:"comment:阅读时间"`CreatedAt time.Time`comment:创建时间`}func(NoticeRead)TableName()string{return"sys_notice_read"}// ========== 操作日志 ==========// OperationLog 操作日志记录表typeOperationLogstruct{IDint64`gorm:"primarykey;comment:日志ID"`UserIDuint`gorm:"index;comment:操作用户ID"`Usernamestring`gorm:"type:varchar(50);comment:操作用户名"`Modulestring`gorm:"type:varchar(50);comment:操作模块"`Operationstring`gorm:"type:varchar(50);comment:操作类型(如 create/update/delete/export)"`Methodstring`gorm:"type:varchar(10);comment:请求方法(GET/POST/PUT/DELETE)"`URLstring`gorm:"type:varchar(500);comment:请求URL"`Paramsstring`gorm:"type:text;comment:请求参数"`Resultstring`gorm:"type:text;comment:返回结果"`Durationint64`gorm:"comment:执行耗时(毫秒)"`IPstring`gorm:"type:varchar(50);comment:操作IP"`UserAgentstring`gorm:"type:varchar(500);comment:用户代理"`Statusint8`gorm:"default:1;comment:操作状态(1:成功 0:失败)"`ErrorMsgstring`gorm:"type:text;comment:错误信息"`CreatedAt time.Time`gorm:"index;comment:创建时间"`}func(OperationLog)TableName()string{return"sys_operation_log"}// ========== 登录日志 ==========// LoginLog 登录日志表(系统访问记录)typeLoginLogstruct{IDint64`gorm:"primarykey;comment:日志ID"`UserIDuint`gorm:"index;comment:登录用户ID(可能为0表示未注册或未知)"`Usernamestring`gorm:"type:varchar(50);comment:登录用户名"`LoginTypestring`gorm:"type:varchar(20);default:'normal';comment:登录类型(normal:普通登录 sms:短信登录 qr:扫码等)"`Statusint8`gorm:"default:1;comment:登录状态(1:成功 0:失败)"`ErrorMsgstring`gorm:"type:varchar(200);comment:失败原因"`IPstring`gorm:"type:varchar(50);index;comment:登录IP"`Locationstring`gorm:"type:varchar(100);comment:登录地点(根据IP解析)"`UserAgentstring`gorm:"type:varchar(500);comment:设备信息"`LoginTime time.Time`gorm:"index;comment:登录时间"`LogoutTime*time.Time`comment:登出时间(如果记录)`}func(LoginLog)TableName()string{return"sys_login_log"}
http://www.jsqmd.com/news/626357/

相关文章:

  • KWP2000协议库:摩托车ECU诊断的嵌入式通信实现
  • ADS1220_WE驱动库:工业级高精度ADC嵌入式实践指南
  • 龙芯k - 走马观碑组MPU驱动移植笔
  • 2026南京实木板材全屋定制:南京全屋定制哪家好/南京全屋定制展厅地址/南京全屋定制工厂排名/南京全屋定制工厂直营/选择指南 - 优质品牌商家
  • GPT-4o实战指南:如何用它解决内容创作与代码开发的真实痛点
  • 亲测!先进SOP防错漏实践分享
  • Kinetis MCU上的轻量级RGB LED控制库设计
  • Java面试一定会遇到的200个面试题(程序员必备)
  • 2026年合肥市蜀山区废铜回收:合肥市蜀山区废铝回收/合肥市蜀山区电缆回收/合肥市蜀山区铝合金回收/合肥市蜀山区不锈钢回收/选择指南 - 优质品牌商家
  • 1970~2024年各省市区县、乡镇CO2排放量面板数据栅格数据(EDGAR v2025)
  • EmDash挑战WordPress,变革将至?
  • 高光谱成像基础(完)光谱融合(Spectral Fusion)乩
  • B站视频下载神器:一键解锁4K大会员画质的Python解决方案
  • Mysql 11: 存储过程全解——从创建到使用
  • Langchain .. 学习 --- LCEL和Runnable挪
  • Linux I/O 演进史:从管道到零拷贝,一篇串起个服务端核心原语百
  • 基于STM32F103C8T6和OV7670的数字手势识别系统设计
  • flutter TextTheme 手机端适配验证
  • 微信 Windows 版全版本历史归档:找回你曾经顺手的那个版本
  • G-Helper技术深度解析:华硕硬件控制架构揭秘与性能优化实践
  • 嵌入式轻量级命令解析库:非阻塞状态机与零拷贝设计
  • GORM中钩子了解
  • JMS, ActiveMQ 学习一则亓
  • 2026年电脑显卡故障维修权威服务商排行及选购指南:广州电脑维修键盘故障、广州蓝屏电脑维修、广州进水电脑维修、电脑维修键盘故障选择指南 - 优质品牌商家
  • 【紧急预警】传统音视频微服务架构将在2026Q3大规模失效——SITS2026原生处理标准已强制嵌入工信部信创目录
  • 用Multisim仿真LM324AJ搭建RC桥式振荡器:从起振到稳幅的完整调试记录
  • [AI应用框架/Java] Spring AI 应用开发指南<>概述、快速入门刈
  • 代码审计 | Listener —— Tomcat 内存马 回显问题 反射总结
  • 嵌入式TFTP服务器库TFTPServer深度解析与移植指南
  • 微服务架构原则