sysorg.go 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package sysorg
  2. import (
  3. "errors"
  4. "time"
  5. "wechat-conf/models"
  6. "wechat-conf/models/model"
  7. "wechat-conf/models/sysorg"
  8. "wechat-conf/models/wechat"
  9. "wechat-conf/models/wechatmenu"
  10. "wechat-conf/service"
  11. "wechat-conf/utils"
  12. )
  13. // SysorgServ 用户
  14. type SysorgServ struct {
  15. ctx *utils.Context
  16. dao *sysorg.SysorgDAO
  17. mdao *wechatmenu.WechatMenuDAO
  18. wechatdao *wechat.WechatDAO
  19. }
  20. // NewSysorgServ 初始化
  21. func NewSysorgServ(ctx *utils.Context) *SysorgServ {
  22. return &SysorgServ{
  23. ctx: ctx,
  24. dao: sysorg.NewSysorgDAO(ctx),
  25. mdao: wechatmenu.NewWechatMenuDAO(ctx),
  26. wechatdao: wechat.NewWechatDAO(ctx),
  27. }
  28. }
  29. func (s *SysorgServ) GetOrgList(page, pageSize int) (map[string]interface{}, error) {
  30. if pageSize == 0 {
  31. pageSize = service.PAGENUM
  32. }
  33. org, err := s.dao.GetOrgList(page, pageSize)
  34. if err != nil {
  35. utils.LogError("获取项目列表失败: " + err.Error())
  36. return nil, errors.New("获取项目列表失败")
  37. }
  38. total, err := s.dao.GetOrgListCount()
  39. if err != nil {
  40. utils.LogError("获取项目列表失败: " + err.Error())
  41. return nil, errors.New("获取项目列表失败")
  42. }
  43. return map[string]interface{}{
  44. "list": org,
  45. "pageSize": pageSize,
  46. "pagenum": total,
  47. "page": page,
  48. }, nil
  49. }
  50. func (s *SysorgServ) AddOrg(org model.SysOrg) (*model.SysOrg, error) {
  51. newOrg, err := s.dao.AddOrg(org)
  52. if err != nil {
  53. utils.LogError("新增项目失败: " + err.Error())
  54. return nil, errors.New("新增项目失败")
  55. }
  56. var wechatmenu = model.TaWechatMenu{
  57. OrgId: newOrg.OrgId,
  58. WechatConfigJson: "",
  59. }
  60. _, err = s.mdao.AddWechatMenu(wechatmenu)
  61. if err != nil {
  62. utils.LogError("新增项目失败: " + err.Error())
  63. return nil, errors.New("新增项目失败")
  64. }
  65. return newOrg, nil
  66. }
  67. func (s *SysorgServ) AuthOrg(org model.SysOrg) error {
  68. err := s.dao.AuthOrg(org)
  69. if err != nil {
  70. utils.LogError("授权项目失败: " + err.Error())
  71. return errors.New("授权项目失败")
  72. }
  73. return nil
  74. }
  75. func (s *SysorgServ) DeleteOrg(orgId string) error {
  76. err := s.dao.DeleteOrg(orgId)
  77. if err != nil {
  78. utils.LogError("删除项目失败: " + err.Error())
  79. return errors.New("删除项目失败")
  80. }
  81. return nil
  82. }
  83. // BindWechat 绑定微信
  84. func (s *SysorgServ) BindWechat(orgid, confid string) error {
  85. wechatConf, err := s.wechatdao.GetWechatConfByConfId(confid)
  86. if err != nil {
  87. return err
  88. }
  89. if wechatConf == nil && wechatConf.Appid == "" {
  90. return errors.New("没有获取到微信信息")
  91. }
  92. var orginfo = model.SysOrg{
  93. OrgId: orgid,
  94. WechatId: wechatConf.ConfId,
  95. WechatName: wechatConf.WxNikeName,
  96. }
  97. err = s.dao.AuthOrg(orginfo)
  98. if err != nil {
  99. return err
  100. }
  101. // 更新微信信息
  102. var conf = model.SysWechatConf{
  103. BindDate: time.Now().Local(),
  104. Status: models.STATUS_NORMAL,
  105. ConfId: wechatConf.ConfId,
  106. }
  107. err = s.wechatdao.UpdateWechatConf(conf, []string{
  108. "bind_date",
  109. "status",
  110. })
  111. return err
  112. }