package models import ( "context" "time" "github.com/beego/beego/v2/client/orm" ) type SysUser struct { SysUserId int `orm:"pk" description:"系统用户id"` SysUserName string `description:"账号"` SysRealName string `description:"姓名"` Password string `description:"密码"` Email string `description:"邮箱"` Phone string `description:"手机号"` AreaCode string `description:"手机区号"` SysRoleId int `description:"角色id"` SysRoleName string `description:"角色名称"` SysDepartmentId int `description:"所属部门id"` Province string `description:"省"` City string `description:"市"` IsEnabled bool `description:"是否启用"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"更新时间"` } type SysUserView struct { SysUserId int `orm:"pk" description:"系统用户id"` SysUserName string `description:"账号"` SysRealName string `description:"姓名"` Password string `description:"密码"` Email string `description:"邮箱"` Phone string `description:"手机号"` AreaCode string `description:"手机区号"` SysRoleId int `description:"角色id"` SysRoleName string `description:"角色名称"` SysDepartmentId int `description:"所属部门id"` SysDepartmentName string `description:"所属部门全路径"` Province string `description:"省"` City string `description:"市"` IsEnabled bool `description:"是否启用"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"更新时间"` } type SysUserMapping struct { SysUserId int `orm:"pk" description:"系统用户id"` SysUserName string `description:"账号"` SysRealName string `description:"姓名"` Password string `description:"密码"` Email string `description:"邮箱"` Phone string `description:"手机号"` AreaCode string `description:"手机区号"` SysRoleId int `description:"角色id"` SysRoleName string `description:"角色名称"` SysDepartmentId int `description:"所属部门id"` SysDepartmentName1 string `description:"所属部门一级"` SysDepartmentName2 string `description:"所属部门二级路径"` SysDepartmentName3 string `description:"所属部门三级路径"` Province string `description:"省"` City string `description:"市"` IsEnabled bool `description:"是否启用"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"更新时间"` } func (s *SysUser) Save() (err error) { o := orm.NewOrmUsingDB("master") _, err = o.InsertOrUpdate(s, "sys_user_id") return } func (s *SysUser) Update(cols []string) (err error) { o := orm.NewOrmUsingDB("master") _, err = o.Update(s, cols...) return } func SaveSysUser(sysUser *SysUser, sysDepartmendPathIds []int) (err error) { o := orm.NewOrmUsingDB("master") err = o.DoTx(func(ctx context.Context, txOrm orm.TxOrmer) error { insertId, e := txOrm.InsertOrUpdate(sysUser) if e != nil { return e } userDepMapping := &SysUserDepartmentMapping{} userDepMapping.SysUserId = int(insertId) userDepMapping.SysDepartmentId1 = sysDepartmendPathIds[0] userDepMapping.SysDepartmentId2 = sysDepartmendPathIds[1] userDepMapping.SysDepartmentId3 = sysDepartmendPathIds[2] _, e = txOrm.InsertOrUpdate(userDepMapping) if e != nil { return e } return nil }) return } func GetSysUserBySysUserName(sysUserName string) (item *SysUser, err error) { sql := `SELECT * FROM sys_user WHERE sys_user_name=?` o := orm.NewOrmUsingDB("master") err = o.Raw(sql, sysUserName).QueryRow(&item) return } func GetSysUserById(sysUserId int) (item *SysUser, err error) { sql := `SELECT * FROM sys_user WHERE sys_user_id=?` o := orm.NewOrmUsingDB("master") err = o.Raw(sql, sysUserId).QueryRow(&item) return } func GetSysUserCountById(sysUserId int) (count int, err error) { sql := `SELECT COUNT(1) AS count FROM sys_user WHERE sys_user_id=?` o := orm.NewOrmUsingDB("master") err = o.Raw(sql, sysUserId).QueryRow(&count) return } func GetSysUserCountBySysUserName(sysUserName string) (count int, err error) { sql := `SELECT COUNT(1) AS count FROM sys_user WHERE sys_user_name=?` o := orm.NewOrmUsingDB("master") err = o.Raw(sql, sysUserName).QueryRow(&count) return } func GetSysUserCount(condition string, pars []interface{}) (count int, err error) { sql := `SELECT COUNT(1) AS count FROM sys_user WHERE 1=1` if condition != "" { sql += condition } o := orm.NewOrmUsingDB("master") err = o.Raw(sql, pars...).QueryRow(&count) return } func GetSysUserCountByRoleId(roleId int) (count int, err error) { sql := `SELECT COUNT(1) AS count FROM sys_user WHERE sys_role_id=?` o := orm.NewOrmUsingDB("master") err = o.Raw(sql, roleId).QueryRow(&count) return } func GetSysUserList(condition string, pars []interface{}, startSize, pageSize int) (items []*SysUserMapping, err error) { sql := `SELECT u.*,d1.sys_department_name sys_department_name1, d2.sys_department_name sys_department_name2, d3.sys_department_name sys_department_name3 FROM sys_user u LEFT JOIN sys_user_department_mapping AS ud ON u.sys_user_id = ud.sys_user_id LEFT JOIN sys_department AS d1 ON ud.sys_department_id1 = d1.sys_department_id LEFT JOIN sys_department AS d2 ON ud.sys_department_id2 = d2.sys_department_id LEFT JOIN sys_department AS d3 ON ud.sys_department_id3 = d3.sys_department_id WHERE 1=1 ` if condition != "" { sql += condition } sql += `ORDER BY u.is_enabled, u.modify_time DESC LIMIT ?,?` o := orm.NewOrmUsingDB("master") _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items) return }