sysorg.go 2.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package sysorg
  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. // SysorgDAO 当前数据库操作对象
  11. type SysorgDAO struct {
  12. ctx *utils.Context
  13. db *xorm.Session
  14. }
  15. // NewSysorgDAO New Inst
  16. func NewSysorgDAO(ctx *utils.Context) *SysorgDAO {
  17. return &SysorgDAO{
  18. ctx: ctx,
  19. db: ctx.DB,
  20. }
  21. }
  22. func (m *SysorgDAO) GetOrgList(page, pagesize int) ([]model.SysOrg, error) {
  23. var org []model.SysOrg
  24. sql := `select * from sys_org where status >` + strconv.Itoa(models.STATUS_DEL)
  25. sql += ` order by create_date desc limit ` + strconv.Itoa((page-1)*pagesize) + `, ` + strconv.Itoa(pagesize)
  26. err := m.db.Sql(sql).Find(&org)
  27. return org, err
  28. }
  29. func (m *SysorgDAO) GetOrgListCount() (int, error) {
  30. var org []model.SysOrg
  31. sql := `select * from sys_org where status >` + strconv.Itoa(models.STATUS_DEL)
  32. err := m.db.Sql(sql).Find(&org)
  33. return len(org), err
  34. }
  35. func (m *SysorgDAO) AddOrg(org model.SysOrg) (*model.SysOrg, error) {
  36. org.OrgId = utils.GetGUID()
  37. org.CreateDate = time.Now()
  38. org.Status = models.STATUS_NORMAL
  39. org.AuthStatus = models.AUTH_STATUS_NO
  40. _, err := m.db.Insert(org)
  41. return &org, err
  42. }
  43. func (m *SysorgDAO) AuthOrg(org model.SysOrg) error {
  44. org.AuthStatus = models.AUTH_STATUS_YES
  45. var cols = []string{
  46. "auth_status",
  47. "wechat_id",
  48. "wechat_name",
  49. }
  50. _, err := m.db.Cols(cols...).Where("org_id = ?", org.OrgId).Update(org)
  51. return err
  52. }
  53. func (m *SysorgDAO) DeleteOrg(orgId string) error {
  54. var org = model.SysOrg{
  55. OrgId: orgId,
  56. Status: models.STATUS_DEL,
  57. }
  58. var cols = []string{
  59. "status",
  60. }
  61. _, err := m.db.Cols(cols...).Where("org_id = ?", org.OrgId).Update(org)
  62. return err
  63. }
  64. // UnAutoOrg 解绑
  65. func (m *SysorgDAO) UnAutoOrg(confid string) error {
  66. var org = model.SysOrg{
  67. WechatId: "",
  68. AuthStatus: models.AUTH_STATUS_NO,
  69. }
  70. var cols = []string{
  71. "wechat_id",
  72. "auth_status",
  73. }
  74. _, err := m.db.Cols(cols...).Where("wechat_id = ?", confid).Update(org)
  75. return err
  76. }
  77. func (m *SysorgDAO) IsOrgBinded(orgId string) (bool, error) {
  78. var user []model.SysUser
  79. sql := `select * from sys_user WHERE org_id = '` + orgId + `'`
  80. err := m.db.Sql(sql).Find(&user)
  81. if len(user) > 0 {
  82. return false, err
  83. }
  84. return true, err
  85. }