sys_user.go 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package models
  2. import (
  3. "context"
  4. "time"
  5. "github.com/beego/beego/v2/client/orm"
  6. )
  7. type SysUser struct {
  8. SysUserId int `orm:"pk" description:"系统用户id"`
  9. SysUserName string `description:"账号"`
  10. SysRealName string `description:"姓名"`
  11. Password string `description:"密码"`
  12. Email string `description:"邮箱"`
  13. Phone string `description:"手机号"`
  14. AreaCode string `description:"手机区号"`
  15. SysRoleId int `description:"角色id"`
  16. SysRoleName string `description:"角色名称"`
  17. SysDepartmentId int `description:"所属部门id"`
  18. Province string `description:"省"`
  19. City string `description:"市"`
  20. IsEnabled bool `description:"是否启用"`
  21. CreateTime time.Time `description:"创建时间"`
  22. ModifyTime time.Time `description:"更新时间"`
  23. }
  24. type SysUserView struct {
  25. SysUserId int `orm:"pk" description:"系统用户id"`
  26. SysUserName string `description:"账号"`
  27. SysRealName string `description:"姓名"`
  28. Password string `description:"密码"`
  29. Email string `description:"邮箱"`
  30. Phone string `description:"手机号"`
  31. AreaCode string `description:"手机区号"`
  32. SysRoleId int `description:"角色id"`
  33. SysRoleName string `description:"角色名称"`
  34. SysDepartmentId int `description:"所属部门id"`
  35. SysDepartmentName string `description:"所属部门全路径"`
  36. Province string `description:"省"`
  37. City string `description:"市"`
  38. IsEnabled bool `description:"是否启用"`
  39. CreateTime time.Time `description:"创建时间"`
  40. ModifyTime time.Time `description:"更新时间"`
  41. }
  42. type SysUserMapping struct {
  43. SysUserId int `orm:"pk" description:"系统用户id"`
  44. SysUserName string `description:"账号"`
  45. SysRealName string `description:"姓名"`
  46. Password string `description:"密码"`
  47. Email string `description:"邮箱"`
  48. Phone string `description:"手机号"`
  49. AreaCode string `description:"手机区号"`
  50. SysRoleId int `description:"角色id"`
  51. SysRoleName string `description:"角色名称"`
  52. SysDepartmentId int `description:"所属部门id"`
  53. SysDepartmentName1 string `description:"所属部门一级"`
  54. SysDepartmentName2 string `description:"所属部门二级路径"`
  55. SysDepartmentName3 string `description:"所属部门三级路径"`
  56. Province string `description:"省"`
  57. City string `description:"市"`
  58. IsEnabled bool `description:"是否启用"`
  59. CreateTime time.Time `description:"创建时间"`
  60. ModifyTime time.Time `description:"更新时间"`
  61. }
  62. func (s *SysUser) Save() (err error) {
  63. o := orm.NewOrmUsingDB("master")
  64. _, err = o.InsertOrUpdate(s, "sys_user_id")
  65. return
  66. }
  67. func (s *SysUser) Update(cols []string) (err error) {
  68. o := orm.NewOrmUsingDB("master")
  69. _, err = o.Update(s, cols...)
  70. return
  71. }
  72. func SaveSysUser(sysUser *SysUser, sysDepartmendPathIds []int) (err error) {
  73. o := orm.NewOrmUsingDB("master")
  74. err = o.DoTx(func(ctx context.Context, txOrm orm.TxOrmer) error {
  75. insertId, e := txOrm.InsertOrUpdate(sysUser)
  76. if e != nil {
  77. return e
  78. }
  79. userDepMapping := &SysUserDepartmentMapping{}
  80. userDepMapping.SysUserId = int(insertId)
  81. userDepMapping.SysDepartmentId1 = sysDepartmendPathIds[0]
  82. userDepMapping.SysDepartmentId2 = sysDepartmendPathIds[1]
  83. userDepMapping.SysDepartmentId3 = sysDepartmendPathIds[2]
  84. _, e = txOrm.InsertOrUpdate(userDepMapping)
  85. if e != nil {
  86. return e
  87. }
  88. return nil
  89. })
  90. return
  91. }
  92. func GetSysUserBySysUserName(sysUserName string) (item *SysUser, err error) {
  93. sql := `SELECT * FROM sys_user WHERE sys_user_name=?`
  94. o := orm.NewOrmUsingDB("master")
  95. err = o.Raw(sql, sysUserName).QueryRow(&item)
  96. return
  97. }
  98. func GetSysUserById(sysUserId int) (item *SysUser, err error) {
  99. sql := `SELECT * FROM sys_user WHERE sys_user_id=?`
  100. o := orm.NewOrmUsingDB("master")
  101. err = o.Raw(sql, sysUserId).QueryRow(&item)
  102. return
  103. }
  104. func GetSysUserCountById(sysUserId int) (count int, err error) {
  105. sql := `SELECT COUNT(1) AS count FROM sys_user WHERE sys_user_id=?`
  106. o := orm.NewOrmUsingDB("master")
  107. err = o.Raw(sql, sysUserId).QueryRow(&count)
  108. return
  109. }
  110. func GetSysUserCountBySysUserName(sysUserName string) (count int, err error) {
  111. sql := `SELECT COUNT(1) AS count FROM sys_user WHERE sys_user_name=?`
  112. o := orm.NewOrmUsingDB("master")
  113. err = o.Raw(sql, sysUserName).QueryRow(&count)
  114. return
  115. }
  116. func GetSysUserCount(condition string, pars []interface{}) (count int, err error) {
  117. sql := `SELECT COUNT(1) AS count FROM sys_user WHERE 1=1`
  118. if condition != "" {
  119. sql += condition
  120. }
  121. o := orm.NewOrmUsingDB("master")
  122. err = o.Raw(sql, pars...).QueryRow(&count)
  123. return
  124. }
  125. func GetSysUserCountByRoleId(roleId int) (count int, err error) {
  126. sql := `SELECT COUNT(1) AS count FROM sys_user WHERE sys_role_id=?`
  127. o := orm.NewOrmUsingDB("master")
  128. err = o.Raw(sql, roleId).QueryRow(&count)
  129. return
  130. }
  131. func GetSysUserList(condition string, pars []interface{}, startSize, pageSize int) (items []*SysUserMapping, err error) {
  132. sql := `SELECT u.*,d1.sys_department_name sys_department_name1, d2.sys_department_name sys_department_name2, d3.sys_department_name sys_department_name3
  133. FROM sys_user u
  134. LEFT JOIN sys_user_department_mapping AS ud
  135. ON u.sys_user_id = ud.sys_user_id
  136. LEFT JOIN sys_department AS d1
  137. ON ud.sys_department_id1 = d1.sys_department_id
  138. LEFT JOIN sys_department AS d2
  139. ON ud.sys_department_id2 = d2.sys_department_id
  140. LEFT JOIN sys_department AS d3
  141. ON ud.sys_department_id3 = d3.sys_department_id
  142. WHERE 1=1 `
  143. if condition != "" {
  144. sql += condition
  145. }
  146. sql += `ORDER BY u.is_enabled, u.modify_time DESC LIMIT ?,?`
  147. o := orm.NewOrmUsingDB("master")
  148. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  149. return
  150. }