admin.go 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. package admin
  2. import (
  3. //_ "github.com/go-sql-driver/mysql"
  4. "github.com/beego/beego/v2/client/orm"
  5. "hongze/hongze_mobile_admin/models/custom"
  6. "time"
  7. )
  8. type Admin struct {
  9. AdminId int `orm:"column(admin_id);pk" json:"admin_id"`
  10. AdminName string `orm:"column(admin_name);" json:"admin_name"`
  11. AdminAvatar string `description:"用户头像"`
  12. RealName string `orm:"column(real_name);" json:"real_name"`
  13. Password string `orm:"column(password);" json:"password"`
  14. LastUpdatedPasswordTime string `orm:"column(last_updated_password_time);" json:"last_updated_password_time"`
  15. Enabled int `orm:"column(enabled);" json:"enabled"` // 1:有效,0:禁用
  16. Email string `orm:"column(email);" json:"email"`
  17. LastLoginTime string `orm:"column(last_login_time);" json:"last_login_time"` // 最近登陆时间
  18. CreatedTime string `orm:"column(created_time);" json:"created_time"` // 创建时间
  19. LastUpdatedTime string `orm:"column(last_updated_time);" json:"last_updated_time"`
  20. Role string `orm:"column(role);" json:"role"` // 用户角色
  21. Mobile string `orm:"column(mobile);" json:"mobile"` // 手机号
  22. RoleType int `orm:"column(role_type);" json:"role_type"` // 角色类型:1需要录入指标,0:不需要
  23. RoleId int `orm:"column(role_id);" json:"role_id"` // 角色id
  24. RoleName string `orm:"column(role_name);" json:"role_name"` // 角色名称
  25. RoleTypeCode string `orm:"column(role_type_code);" json:"role_type_code"` // 角色编码
  26. DepartmentId int `orm:"column(department_id);" json:"department_id"` // 部门id
  27. DepartmentName string `orm:"column(department_name);" json:"department_name"` // 部门名称
  28. GroupId int `orm:"column(group_id);" json:"group_id"` // 分组id
  29. GroupName string `orm:"column(group_name);" json:"group_name"` // 分组名称
  30. Authority int `orm:"column(authority);" json:"authority"` // 管理权限,0:无,1:部门负责人,2:小组负责人,3:超级管理员
  31. Position string `orm:"column(position);" json:"position"` // 职位
  32. OpenId string `orm:"column(open_id);" json:"open_id"` //弘则部门公众号的openid
  33. UnionId string `orm:"column(union_id);" json:"union_id"` //微信公众平台唯一标识
  34. }
  35. // 账号密码校验
  36. func CheckAdmin(userName, password string) (item *Admin, err error) {
  37. sql := ` SELECT a.*,b.role_type_code FROM admin AS a
  38. INNER JOIN sys_role AS b ON a.role_id=b.role_id WHERE a.admin_name=? AND a.password=? LIMIT 1`
  39. o := orm.NewOrm()
  40. err = o.Raw(sql, userName, password).QueryRow(&item)
  41. return
  42. }
  43. //根据管理员id获取管理员信息
  44. func GetAdminById(adminId int) (item *Admin, err error) {
  45. sql := `SELECT * FROM admin WHERE admin_id=? LIMIT 1`
  46. o := orm.NewOrm()
  47. err = o.Raw(sql, adminId).QueryRow(&item)
  48. return
  49. }
  50. //根据权限code获取系统用户列表
  51. func GetAdminListByRoleCode(roleTypeCode string) (items []*Admin, err error) {
  52. sql := `SELECT * FROM admin WHERE role_type_code=? and enabled=1 `
  53. o := orm.NewOrm()
  54. _, err = o.Raw(sql, roleTypeCode).QueryRows(&items)
  55. return
  56. }
  57. //根据权限id获取系统用户列表
  58. func GetAdminListByRoleId(roleId string) (items []*Admin, err error) {
  59. sql := `SELECT * FROM admin WHERE role_id=? and enabled=1 `
  60. o := orm.NewOrm()
  61. _, err = o.Raw(sql, roleId).QueryRows(&items)
  62. return
  63. }
  64. //根据用户id字符串获取系统用户列表
  65. func GetAdminListByIds(ids string) (items []*Admin, err error) {
  66. sql := `SELECT * FROM admin WHERE admin_id in (` + ids + `) and enabled=1 `
  67. o := orm.NewOrm()
  68. _, err = o.Raw(sql).QueryRows(&items)
  69. return
  70. }
  71. //根据管理员id获取管理员信息(包含微信、第三方信息)
  72. func GetAdminWxById(adminId int) (item *custom.AdminWx, err error) {
  73. sql := `SELECT * FROM admin WHERE admin_id=? LIMIT 1`
  74. o := orm.NewOrm()
  75. err = o.Raw(sql, adminId).QueryRow(&item)
  76. return
  77. }
  78. func GetSysuserList(condition string, pars []interface{}, startSize, pageSize int) (items []*AdminItem, err error) {
  79. o := orm.NewOrm()
  80. sql := `SELECT * FROM admin WHERE 1=1 `
  81. if condition != "" {
  82. sql += condition
  83. }
  84. sql += `ORDER BY created_time DESC LIMIT ?,?`
  85. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  86. return
  87. }
  88. // AdminItem 管理后台的adminInfo,没有使用json格式化,路演这边需要用到,没办法
  89. type AdminItem struct {
  90. AdminId int `description:"系统用户id"`
  91. AdminName string `description:"系统用户名称"`
  92. RealName string `description:"系统用户姓名"`
  93. Password string
  94. LastUpdatedPasswordTime string `json:"-"`
  95. Enabled int `description:"1:有效,0:禁用"`
  96. Email string `description:"系统用户邮箱"`
  97. LastLoginTime string
  98. CreatedTime time.Time
  99. LastUpdatedTime string
  100. Role string `description:"系统用户角色"`
  101. Mobile string `description:"手机号"`
  102. RoleType int `description:"角色类型:1需要录入指标,0:不需要"`
  103. RoleId int `description:"角色id"`
  104. RoleName string `description:"角色名称"`
  105. RoleTypeCode string `description:"角色编码"`
  106. DepartmentId int `description:"部门id"`
  107. DepartmentName string `json:"-" description:"部门名称"`
  108. TeamId int `description:"三级id"`
  109. GroupId int `description:"分组id"`
  110. GroupName string `json:"-" description:"分组名称"`
  111. Authority int `description:"管理权限,0:无,1:部门负责人,2:小组负责人,或者ficc销售主管,4:ficc销售组长"`
  112. Position string `description:"职位"`
  113. DepartmentGroup string `description:"部门分组"`
  114. LabelVal int `description:"标签:1:超级管理员,2:管理员,3:部门经理,4:组长,5:ficc销售主管"`
  115. }
  116. type SmsCodeReq struct {
  117. Mobile string
  118. Token string
  119. }
  120. type BindMobileReq struct {
  121. Mobile string
  122. Token string
  123. Code string
  124. }
  125. type WxLoginResp struct {
  126. BindToken string
  127. BindFlag bool
  128. }
  129. type WxSmsResp struct {
  130. SmsFlag bool
  131. BindFlag bool
  132. }
  133. // GetAdminWxByAdminOpenId 根据openId 获取管理员信息
  134. func GetAdminWxByAdminOpenId(openId string) (item *Admin, err error) {
  135. sql := `SELECT * FROM admin WHERE open_id=? LIMIT 1`
  136. o := orm.NewOrm()
  137. err = o.Raw(sql, openId).QueryRow(&item)
  138. return
  139. }
  140. // GetAdminByMobile 根据手机号 获取管理员信息
  141. func GetAdminByMobile(mobile string) (item *Admin, err error) {
  142. sql := `SELECT * FROM admin WHERE mobile=? LIMIT 1`
  143. o := orm.NewOrm()
  144. err = o.Raw(sql, mobile).QueryRow(&item)
  145. return
  146. }
  147. // UpdateAdminOpenIdUnionId 更新openId
  148. func UpdateAdminOpenIdUnionId(adminId int, openId, unionId string) (err error) {
  149. o := orm.NewOrm()
  150. sql := `UPDATE admin
  151. SET
  152. last_updated_time = NOW(),open_id=?,union_id=? WHERE admin_id = ? `
  153. _, err = o.Raw(sql, openId, unionId, adminId).Exec()
  154. return
  155. }
  156. type OpenIdList struct {
  157. OpenId string
  158. AdminId int
  159. }
  160. //GetOpenIdListByMobile 根据手机号获取用户的openid列表
  161. func GetOpenIdListByMobile(mobile, openIdStr string) (items []*OpenIdList, err error) {
  162. sql := `SELECT admin_id, open_id FROM admin
  163. WHERE open_id != "" and mobile=? `
  164. if openIdStr != "" {
  165. sql += ` AND open_id in (` + openIdStr + `) `
  166. }
  167. _, err = orm.NewOrm().Raw(sql, mobile).QueryRows(&items)
  168. return
  169. }