sysorg.go 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package sysorg
  2. import (
  3. "errors"
  4. "wechat-conf/models/model"
  5. "wechat-conf/models/sysorg"
  6. "wechat-conf/models/sysuser"
  7. "wechat-conf/models/wechat"
  8. "wechat-conf/models/wechatmenu"
  9. "wechat-conf/service"
  10. "wechat-conf/utils"
  11. )
  12. // SysorgServ 用户
  13. type SysorgServ struct {
  14. ctx *utils.Context
  15. dao *sysorg.SysorgDAO
  16. mdao *wechatmenu.WechatMenuDAO
  17. wechatdao *wechat.WechatDAO
  18. userdao *sysuser.SysuserDAO
  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. userdao: sysuser.NewSysuserDAO(ctx),
  28. }
  29. }
  30. func (s *SysorgServ) GetOrgList(page, pageSize int) (map[string]interface{}, error) {
  31. if pageSize == 0 {
  32. pageSize = service.PAGENUM
  33. }
  34. org, err := s.dao.GetOrgList(page, pageSize)
  35. if err != nil {
  36. utils.LogError("获取项目列表失败: " + err.Error())
  37. return nil, errors.New("获取项目列表失败")
  38. }
  39. total, err := s.dao.GetOrgListCount()
  40. if err != nil {
  41. utils.LogError("获取项目列表失败: " + err.Error())
  42. return nil, errors.New("获取项目列表失败")
  43. }
  44. return map[string]interface{}{
  45. "list": org,
  46. "pageSize": pageSize,
  47. "pagenum": total,
  48. "page": page,
  49. }, nil
  50. }
  51. func (s *SysorgServ) AddOrg(org model.SysOrg) (*model.SysOrg, error) {
  52. newOrg, err := s.dao.AddOrg(org)
  53. if err != nil {
  54. utils.LogError("新增项目失败: " + err.Error())
  55. return nil, errors.New("新增项目失败")
  56. }
  57. var wechatmenu = model.TaWechatMenu{
  58. OrgId: newOrg.OrgId,
  59. WechatConfigJson: "",
  60. }
  61. _, err = s.mdao.AddWechatMenu(wechatmenu)
  62. if err != nil {
  63. utils.LogError("新增项目失败: " + err.Error())
  64. return nil, errors.New("新增项目失败")
  65. }
  66. return newOrg, nil
  67. }
  68. func (s *SysorgServ) AuthOrg(org model.SysOrg) error {
  69. err := s.dao.AuthOrg(org)
  70. if err != nil {
  71. utils.LogError("授权项目失败: " + err.Error())
  72. return errors.New("授权项目失败")
  73. }
  74. return nil
  75. }
  76. func (s *SysorgServ) DeleteOrg(orgId string) error {
  77. var err error
  78. var user *model.SysUser
  79. user, err = s.userdao.GetSysuserByOrgId(orgId)
  80. if err != nil {
  81. utils.LogError("删除项目失败: " + err.Error())
  82. return errors.New("删除项目失败")
  83. }
  84. if user != nil {
  85. return errors.New("当前项目已被用户绑定,请先进行解绑操作")
  86. }
  87. err = s.dao.DeleteOrg(orgId)
  88. if err != nil {
  89. utils.LogError("删除项目失败: " + err.Error())
  90. return errors.New("删除项目失败")
  91. }
  92. return nil
  93. }
  94. // BindWechat 绑定微信
  95. func (s *SysorgServ) BindWechat(orgid, code string) error {
  96. wechatConf, err := s.wechatdao.GetWxByCode(code)
  97. if err != nil {
  98. return err
  99. }
  100. if wechatConf == nil && wechatConf.Appid == "" {
  101. return errors.New("没有获取到微信信息")
  102. }
  103. var orginfo = model.SysOrg{
  104. OrgId: orgid,
  105. WechatId: wechatConf.ConfId,
  106. WechatName: wechatConf.WxNikeName,
  107. }
  108. err = s.dao.AuthOrg(orginfo)
  109. return err
  110. }