123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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/astaxie/beego"
  9. "github.com/go-xorm/xorm"
  10. )
  11. // SysuserDAO 当前数据库操作对象
  12. type SysuserDAO struct {
  13. ctx *utils.Context
  14. db *xorm.Session
  15. }
  16. // NewSysuserDAO New Inst
  17. func NewSysuserDAO(ctx *utils.Context) *SysuserDAO {
  18. return &SysuserDAO{
  19. ctx: ctx,
  20. db: ctx.DB,
  21. }
  22. }
  23. type User struct {
  24. model.SysUser `xorm:"extends"`
  25. OrgName string
  26. }
  27. func (m *SysuserDAO) GetSysuserList(page, pageSize int) ([]User, error) {
  28. var user []User
  29. sql := `SELECT a.*,b.org_name from sys_user a left join sys_org b on a.org_id = b.org_id
  30. WHERE a.status >` + strconv.Itoa(models.STATUS_DEL) + `
  31. order by create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
  32. beego.Error(sql)
  33. err := m.db.Sql(sql).Find(&user)
  34. return user, err
  35. }
  36. func (m *SysuserDAO) GetSysuserListCount() (int, error) {
  37. var user []model.SysUser
  38. sql := `SELECT * from sys_user WHERE status >` + strconv.Itoa(models.STATUS_DEL)
  39. err := m.db.Sql(sql).Find(&user)
  40. return len(user), err
  41. }
  42. func (m *SysuserDAO) GetSysuserById(userId string) (*model.SysUser, error) {
  43. var user []model.SysUser
  44. sql := `SELECT * from sys_user WHERE status >` + strconv.Itoa(models.STATUS_DEL) + `
  45. and user_id = '` + userId + `'`
  46. err := m.db.Sql(sql).Find(&user)
  47. if len(user) > 0 {
  48. return &user[0], err
  49. }
  50. return nil, err
  51. }
  52. func (m *SysuserDAO) AddUser(user model.SysUser) (*model.SysUser, error) {
  53. user.CreateDate = time.Now()
  54. user.Status = models.STATUS_NORMAL
  55. _, err := m.db.Insert(user)
  56. return &user, err
  57. }
  58. func (m *SysuserDAO) DeleteUser(userId string) error {
  59. var user = model.SysUser{
  60. UserId: userId,
  61. Status: models.STATUS_DEL,
  62. }
  63. var cols = []string{
  64. "status",
  65. }
  66. _, err := m.db.Cols(cols...).Where("user_id = ?", user.UserId).Update(user)
  67. return err
  68. }
  69. func (m *SysuserDAO) EditUser(user model.SysUser) error {
  70. var cols = []string{
  71. "user_name",
  72. "real_name",
  73. "phone",
  74. "email",
  75. "head_imgurl",
  76. }
  77. _, err := m.db.Cols(cols...).Where("user_id = ?", user.UserId).Update(user)
  78. return err
  79. }
  80. func (m *SysuserDAO) BindUserToOrg(userId, orgId string) error {
  81. var user = model.SysUser{
  82. UserId: userId,
  83. OrgId: orgId,
  84. }
  85. var cols = []string{
  86. "org_id",
  87. }
  88. _, err := m.db.Cols(cols...).Where("user_id=?", user.UserId).Update(user)
  89. return err
  90. }
  91. func (m *SysuserDAO) GetAppIdByOrgId(orgId string) (string, error) {
  92. var config []model.SysWechatConf
  93. sql := `SELECT
  94. *
  95. FROM
  96. sys_wechat_conf a
  97. INNER JOIN sys_org b ON b.wechat_id = a.conf_id
  98. WHERE
  99. org_id = '` + orgId + `'`
  100. err := m.db.Sql(sql).Find(&config)
  101. if len(config) > 0 {
  102. return config[0].Appid, err
  103. }
  104. return "", err
  105. }