123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package sysuser
  2. import (
  3. "strconv"
  4. "time"
  5. "wechat-conf/models"
  6. "wechat-conf/models/model"
  7. "wechat-conf/utils"
  8. "github.com/go-xorm/xorm"
  9. )
  10. // SysuserDAO 当前数据库操作对象
  11. type SysuserDAO struct {
  12. ctx *utils.Context
  13. db *xorm.Session
  14. }
  15. // NewSysuserDAO New Inst
  16. func NewSysuserDAO(ctx *utils.Context) *SysuserDAO {
  17. return &SysuserDAO{
  18. ctx: ctx,
  19. db: ctx.DB,
  20. }
  21. }
  22. type User struct {
  23. model.SysUser `xorm:"extends"`
  24. OrgName string
  25. }
  26. func (m *SysuserDAO) GetSysuserList(page, pageSize int) ([]User, error) {
  27. var user []User
  28. sql := `SELECT a.*,b.org_name from sys_user a left join sys_org b on a.org_id = b.org_id
  29. WHERE a.status >` + strconv.Itoa(models.STATUS_DEL) + `
  30. order by create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
  31. err := m.db.Sql(sql).Find(&user)
  32. return user, err
  33. }
  34. func (m *SysuserDAO) GetSysuserListCount() (int, error) {
  35. var user []model.SysUser
  36. sql := `SELECT * from sys_user WHERE status >` + strconv.Itoa(models.STATUS_DEL)
  37. err := m.db.Sql(sql).Find(&user)
  38. return len(user), err
  39. }
  40. func (m *SysuserDAO) GetSysuserById(userId string) (*model.SysUser, error) {
  41. var user []model.SysUser
  42. sql := `SELECT * from sys_user WHERE status >` + strconv.Itoa(models.STATUS_DEL) + `
  43. and user_id = '` + userId + `'`
  44. err := m.db.Sql(sql).Find(&user)
  45. if len(user) > 0 {
  46. return &user[0], err
  47. }
  48. return nil, err
  49. }
  50. func (m *SysuserDAO) GetSysuserByOrgId(orgId string) (*model.SysUser, error) {
  51. var user []model.SysUser
  52. sql := `SELECT * from sys_user where org_id = '` + orgId + `'`
  53. err := m.db.Sql(sql).Find(&user)
  54. if len(user) > 0 {
  55. return &user[0], err
  56. }
  57. return nil, err
  58. }
  59. func (m *SysuserDAO) AddUser(user model.SysUser) (*model.SysUser, error) {
  60. user.CreateDate = time.Now()
  61. user.Status = models.STATUS_NORMAL
  62. _, err := m.db.Insert(user)
  63. return &user, err
  64. }
  65. func (m *SysuserDAO) DeleteUser(userId string) error {
  66. var user = model.SysUser{
  67. UserId: userId,
  68. Status: models.STATUS_DEL,
  69. }
  70. var cols = []string{
  71. "status",
  72. }
  73. _, err := m.db.Cols(cols...).Where("user_id = ?", user.UserId).Update(user)
  74. return err
  75. }
  76. func (m *SysuserDAO) EditUser(user model.SysUser) error {
  77. var cols = []string{
  78. "user_name",
  79. "real_name",
  80. "phone",
  81. "email",
  82. "head_imgurl",
  83. }
  84. _, err := m.db.Cols(cols...).Where("user_id = ?", user.UserId).Update(user)
  85. return err
  86. }
  87. func (m *SysuserDAO) BindUserToOrg(userId, orgId string) error {
  88. var user = model.SysUser{
  89. UserId: userId,
  90. OrgId: orgId,
  91. }
  92. var cols = []string{
  93. "org_id",
  94. }
  95. _, err := m.db.Cols(cols...).Where("user_id=?", user.UserId).Update(user)
  96. return err
  97. }
  98. func (m *SysuserDAO) ChangePassword(userId, pwd string) error {
  99. var user = model.SysUser{
  100. UserId: userId,
  101. Pwd: pwd,
  102. }
  103. var cols = []string{
  104. "pwd",
  105. }
  106. _, err := m.db.Cols(cols...).Where("user_id=?", user.UserId).Update(user)
  107. return err
  108. }
  109. func (m *SysuserDAO) GetAppIdByOrgId(orgId string) (string, error) {
  110. var config []model.SysWechatConf
  111. sql := `SELECT
  112. *
  113. FROM
  114. sys_wechat_conf a
  115. INNER JOIN sys_org b ON b.wechat_id = a.conf_id
  116. WHERE
  117. org_id = '` + orgId + `'`
  118. err := m.db.Sql(sql).Find(&config)
  119. if len(config) > 0 {
  120. return config[0].Appid, err
  121. }
  122. return "", err
  123. }
  124. func (m *SysuserDAO) GetOrgAuthByUserId(userId string) (bool, error) {
  125. var org []model.SysOrg
  126. sql := `SELECT
  127. a.*
  128. FROM
  129. sys_org a
  130. INNER JOIN sys_user b ON a.org_id = b.org_id
  131. WHERE
  132. b.user_id = '` + userId + `'`
  133. err := m.db.Sql(sql).Find(&org)
  134. if len(org) <= 0 {
  135. return false, err
  136. } else {
  137. if org[0].OrgId == "" {
  138. return false, err
  139. }
  140. }
  141. return true, err
  142. }