wechat.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package index
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "github.com/gin-gonic/gin/binding"
  6. "eta/eta_menu_sync/controller/resp"
  7. "eta/eta_menu_sync/logic"
  8. "eta/eta_menu_sync/models"
  9. "eta/eta_menu_sync/models/request"
  10. "eta/eta_menu_sync/services"
  11. "eta/eta_menu_sync/utils"
  12. )
  13. // WechatController 接口
  14. type WechatController struct {
  15. }
  16. // SyncHelper 同步小助手
  17. func (s *WechatController) SyncHelper(c *gin.Context) {
  18. fmt.Println(c.Request.Body)
  19. var req request.SyncHelperReq
  20. if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
  21. fmt.Println("bind err:", err)
  22. resp.Fail("参数有误", c)
  23. return
  24. }
  25. if req.WechatId == `` {
  26. resp.Fail("微信小助手标识未提交", c)
  27. return
  28. }
  29. wechatHelperObj := models.WechatHelper{}
  30. wechatHelperInfo, err := wechatHelperObj.GetByWechatId(req.WechatId)
  31. if err != nil {
  32. if err == utils.ErrNoRow {
  33. resp.Fail("找不到该小助手", c)
  34. } else {
  35. resp.FailMsg("获取小助手信息失败", "获取小助手信息失败"+err.Error(), c)
  36. }
  37. return
  38. }
  39. result, _, err := services.GetAllGroup(wechatHelperInfo.ServerUrl, wechatHelperInfo.WechatId)
  40. if err != nil {
  41. resp.FailMsg("获取小助手的群信息失败", "获取小助手的群信息失败:"+err.Error(), c)
  42. return
  43. }
  44. if result.Code != 200 {
  45. resp.Fail("获取小助手的群信息失败:"+result.Msg, c)
  46. return
  47. }
  48. // 群同步
  49. err = logic.SyncWxGroup(result.Result, wechatHelperInfo)
  50. if err != nil {
  51. resp.FailMsg("同步微信群失败", "同步微信群失败:"+err.Error(), c)
  52. return
  53. }
  54. resp.OkData("同步成功", "ok", c)
  55. return
  56. }