wechatmenu.go 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package wechatmenu
  2. import (
  3. "strings"
  4. "wechat-conf/controllers"
  5. "wechat-conf/models/model"
  6. "wechat-conf/service/sysuser"
  7. "wechat-conf/service/wechatmenu"
  8. "wechat-conf/utils"
  9. "github.com/astaxie/beego"
  10. )
  11. // MenuController 信息
  12. type MenuController struct {
  13. dao *wechatmenu.WechatmenuServ
  14. sdao *sysuser.SysuserServ
  15. controllers.BaseController
  16. }
  17. // Constructor 初始化 Controller
  18. // @Title Constructor
  19. // @Description 初始化 Controller, 系统自动调用
  20. func (c *MenuController) Constructor() {
  21. c.dao = wechatmenu.NewWechatmenuServ(c.Context)
  22. c.sdao = sysuser.NewSysuserServ(c.Context)
  23. }
  24. func (c *MenuController) GetMenuList() {
  25. user := c.Context.Get("user").(*model.SysUser)
  26. appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
  27. if err != nil {
  28. c.ResponseError(err)
  29. }
  30. beego.Error(appId)
  31. client, err := utils.Component.GetWxClient(appId)
  32. if err != nil {
  33. c.ResponseError(err)
  34. }
  35. menu, err := client.GetMenu()
  36. var code string = err.Error()
  37. if err != nil {
  38. if strings.Contains(code, "46003") {
  39. c.ResponseJSON(menu)
  40. } else {
  41. c.ResponseError(err)
  42. }
  43. }
  44. c.ResponseJSON(menu)
  45. }
  46. func (c *MenuController) RefreshMenu() {
  47. user := c.Context.Get("user").(*model.SysUser)
  48. str := c.GetString("wechatJson")
  49. var data []byte = []byte(str)
  50. err := c.dao.UpdateWechatMenu(str, user.OrgId)
  51. if err != nil {
  52. c.ResponseError(err)
  53. }
  54. appId, err := c.sdao.GetAppIdByOrgId(user.OrgId)
  55. if err != nil {
  56. c.ResponseError(err)
  57. }
  58. client, err := utils.Component.GetWxClient(appId)
  59. if err != nil {
  60. c.ResponseError(err)
  61. }
  62. err = client.RefreshMenu(data)
  63. if err != nil {
  64. c.ResponseError(err)
  65. }
  66. }