sys_user.go 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. package system
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "hongze/hongze_ETA_mobile_api/utils"
  5. "time"
  6. )
  7. type LoginReq struct {
  8. Username string `description:"账号"`
  9. Password string `description:"密码"`
  10. IsRemember bool `description:"是否属于受信设备"`
  11. }
  12. type LoginResp struct {
  13. Authorization string
  14. AdminName string `description:"系统用户名称"`
  15. RealName string `description:"系统用户姓名"`
  16. RoleName string `description:"角色名称"`
  17. RoleTypeCode string `description:"角色类型编码"`
  18. SysRoleTypeCode string `description:"角色类型编码"`
  19. AdminId int `description:"系统用户id"`
  20. ProductName string `description:"产品名称:admin,ficc,权益"`
  21. DepartmentName string `description:"部门名称"`
  22. Authority int `description:"管理权限,0:无,1:部门负责人,2:小组负责人,或者ficc销售主管,4:ficc销售组长"`
  23. }
  24. type Admin struct {
  25. AdminId int `orm:"column(admin_id);pk" description:"系统用户id"`
  26. AdminName string `description:"系统用户名称"`
  27. AdminAvatar string `description:"用户头像"`
  28. RealName string `description:"系统用户姓名"`
  29. Password string `json:"-"`
  30. LastUpdatedPasswordTime string `json:"-"`
  31. Enabled int
  32. Email string `description:"系统用户邮箱"`
  33. LastLoginTime string
  34. CreatedTime time.Time
  35. LastUpdatedTime string
  36. Role string `description:"系统用户角色"`
  37. Mobile string `description:"手机号"`
  38. RoleType int `description:"角色类型:1需要录入指标,0:不需要"`
  39. RoleId int `description:"角色ID"`
  40. RoleName string `description:"角色名称"`
  41. RoleTypeCode string `description:"角色类型编码"`
  42. DepartmentId int `description:"部门id"`
  43. DepartmentName string `description:"部门名称"`
  44. GroupId int `description:"分组id"`
  45. GroupName string `description:"分组名称"`
  46. Authority int `description:"管理权限,0:无,1:部门负责人,2:小组负责人,或者ficc销售主管,3:超级管理员,4:ficc销售组长"`
  47. Position string `description:"职位"`
  48. DisableTime time.Time `description:"禁用时间"`
  49. ChartPermission int8 `description:"图表权限id"`
  50. OpenId string `description:"弘则部门公众号的openid"`
  51. UnionId string `description:"微信公众平台唯一标识"`
  52. EdbPermission int8 `description:"指标库操作权限,0:只能操作 自己的,1:所有指标可操作"`
  53. MysteelChemicalPermission int8 `description:"钢联化工指标操作权限,0:只能操作 自己的,1:所有指标可操作"`
  54. PredictEdbPermission int8 `description:"预测指标库操作权限,0:只能操作 自己的,1:所有预测指标可操作"`
  55. Province string `description:"省"`
  56. ProvinceCode string `description:"省编码"`
  57. City string `description:"市"`
  58. CityCode string `description:"市编码"`
  59. EmployeeId string `description:"员工工号(钉钉/每刻报销)"`
  60. }
  61. // Update 更新用户基础信息
  62. func (item *Admin) Update(cols []string) (err error) {
  63. o := orm.NewOrm()
  64. _, err = o.Update(item, cols...)
  65. return
  66. }
  67. func CheckSysUser(userName, password string) (item *Admin, err error) {
  68. sql := ` SELECT a.*,b.role_type_code FROM admin AS a
  69. INNER JOIN sys_role AS b ON a.role_id=b.role_id WHERE a.admin_name=? AND a.password=? LIMIT 1`
  70. o := orm.NewOrm()
  71. err = o.Raw(sql, userName, password).QueryRow(&item)
  72. return
  73. }
  74. func GetSysUserById(sysUserId int) (item *Admin, err error) {
  75. sql := `SELECT * FROM admin WHERE admin_id=? LIMIT 1`
  76. o := orm.NewOrm()
  77. err = o.Raw(sql, sysUserId).QueryRow(&item)
  78. return
  79. }
  80. // 根据权限code获取系统用户列表
  81. func GetAdminListByRoleCode(roleTypeCode string) (items []*Admin, err error) {
  82. sql := `SELECT * FROM admin WHERE role_type_code=? and enabled=1 `
  83. o := orm.NewOrm()
  84. _, err = o.Raw(sql, roleTypeCode).QueryRows(&items)
  85. return
  86. }
  87. // 根据权限id获取系统用户列表
  88. func GetAdminListByRoleId(roleId string) (items []*Admin, err error) {
  89. sql := `SELECT * FROM admin WHERE role_id=? and enabled=1 `
  90. o := orm.NewOrm()
  91. _, err = o.Raw(sql, roleId).QueryRows(&items)
  92. return
  93. }
  94. // GetAdminListByIds 根据用户id字符串获取系统用户列表
  95. func GetAdminListByIds(ids string) (items []*Admin, err error) {
  96. sql := `SELECT * FROM admin WHERE admin_id in (` + ids + `) and enabled=1 `
  97. o := orm.NewOrm()
  98. _, err = o.Raw(sql).QueryRows(&items)
  99. return
  100. }
  101. func ModifyPwd(sysUserId int, newPwd string) (err error) {
  102. sql := `UPDATE admin SET password=?,last_updated_time=NOW() WHERE admin_id=? `
  103. o := orm.NewOrm()
  104. _, err = o.Raw(sql, newPwd, sysUserId).Exec()
  105. return
  106. }
  107. type ModifyPwdReq struct {
  108. OldPwd string `description:"旧密码"`
  109. NewPwd string `description:"新密码"`
  110. }
  111. func GetAdminList() (items []*Admin, err error) {
  112. sql := `SELECT * FROM admin`
  113. o := orm.NewOrm()
  114. _, err = o.Raw(sql).QueryRows(&items)
  115. return
  116. }
  117. // GetSysUserByMobile 根据手机号获取管理信息
  118. func GetSysUserByMobile(mobile string) (item *Admin, err error) {
  119. sql := `SELECT * FROM admin WHERE mobile = ? LIMIT 1`
  120. o := orm.NewOrm()
  121. err = o.Raw(sql, mobile).QueryRow(&item)
  122. return
  123. }
  124. // 通过用户姓名跟身份获取管理员信息
  125. func CheckSysUserByName(userName, roleTypeCode string) (item *Admin, err error) {
  126. sql := ` SELECT a.* FROM admin AS a WHERE a.real_name=? AND a.role_type_code=? LIMIT 1`
  127. o := orm.NewOrm()
  128. err = o.Raw(sql, userName, roleTypeCode).QueryRow(&item)
  129. return
  130. }
  131. // GetAdminListByGroupId 根据分组id获取系统用户列表
  132. func GetAdminListByGroupId(groupId int) (items []*Admin, err error) {
  133. sql := `SELECT * FROM admin WHERE group_id=? and enabled=1 `
  134. o := orm.NewOrm()
  135. _, err = o.Raw(sql, groupId).QueryRows(&items)
  136. return
  137. }
  138. // AdminWxUserRelation 管理员-微信用户关联
  139. type AdminWxUserRelation struct {
  140. AdminId int `json:"admin_id"`
  141. AdminName string `json:"admin_name"`
  142. RealName string `json:"real_name"`
  143. UserId int `json:"user_id"`
  144. }
  145. // GetAdminWxUserRelationByWxUserIds 通过微信用户及平台获取后台关联信息
  146. func GetAdminWxUserRelationByWxUserIds(platform int, userIds []int) (list []*AdminWxUserRelation, err error) {
  147. userLen := len(userIds)
  148. if userLen == 0 {
  149. return
  150. }
  151. o := orm.NewOrm()
  152. sql := `SELECT
  153. ad.admin_id, ad.admin_name, ad.real_name, wu.user_id
  154. FROM
  155. admin AS ad
  156. JOIN wx_user AS wu ON ad.mobile = wu.mobile
  157. JOIN user_record AS ur ON wu.user_id = ur.user_id AND ur.create_platform = ?
  158. WHERE
  159. wu.user_id IN (` + utils.GetOrmInReplace(userLen) + `)`
  160. _, err = o.Raw(sql, platform, userIds).QueryRows(&list)
  161. return
  162. }
  163. // GetAdminListByIdList 根据用户id列表获取系统用户列表
  164. func GetAdminListByIdList(idList []int) (items []*Admin, err error) {
  165. lenNum := len(idList)
  166. if lenNum <= 0 {
  167. return
  168. }
  169. sql := `SELECT * FROM admin WHERE admin_id in (` + utils.GetOrmInReplace(lenNum) + `) and enabled=1 `
  170. o := orm.NewOrm()
  171. _, err = o.Raw(sql, idList).QueryRows(&items)
  172. return
  173. }
  174. // GetAdminListByIdList 根据用户id列表获取系统用户列表
  175. func GetAdminListByIdListWithoutEnable(idList []int) (items []*Admin, err error) {
  176. lenNum := len(idList)
  177. if lenNum <= 0 {
  178. return
  179. }
  180. sql := `SELECT * FROM admin WHERE admin_id in (` + utils.GetOrmInReplace(lenNum) + `) `
  181. o := orm.NewOrm()
  182. _, err = o.Raw(sql, idList).QueryRows(&items)
  183. return
  184. }