request.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package external
  2. import (
  3. "context"
  4. "os"
  5. "github.com/rs/zerolog/log"
  6. )
  7. type UnreadMessageRequest struct {
  8. Type string `json:"type"`
  9. Id int32 `json:"id"`
  10. MsgCount int `json:"msgCount"`
  11. }
  12. // 请求函数 -- 根据请求项目选择请求方式
  13. func RequestToPHP(receiverType string, receiverID int32, count int) error {
  14. var project string
  15. if receiverType == "shop" {
  16. project = "huaZhangGui"
  17. } else if receiverType == "customer" {
  18. project = "huaHuiBao"
  19. }
  20. ctx := context.Background()
  21. switch project {
  22. case "huaZhangGui":
  23. url := os.Getenv("HUA_ZHANG_GUI_URL")
  24. reqData := UnreadMessageRequest{
  25. Type: "shop",
  26. Id: receiverID,
  27. MsgCount: count,
  28. }
  29. huaZhangGuiClient := NewHuaZhangGuiClient(url)
  30. res, err := huaZhangGuiClient.PostUnReadMessage(ctx, reqData)
  31. if err != nil {
  32. log.Error().Str("receiverType", receiverType).Int32("receiverID", receiverID).Int("count", count).Err(err).Msg("向 PHP 服务发送未读消息通知失败")
  33. return err
  34. }
  35. log.Info().Str("receiverType", receiverType).Int32("receiverID", receiverID).Int("count", count).Str("res", res).Msg("向 PHP 服务发送未读消息通知成功")
  36. case "huaHuiBao":
  37. url := os.Getenv("HUA_HUI_BAO_URL")
  38. reqData := UnreadMessageRequest{
  39. Type: "customer",
  40. Id: receiverID,
  41. MsgCount: count,
  42. }
  43. huaHuiBaoClient := NewHuaHuiBaoClient(url)
  44. res, err := huaHuiBaoClient.PostUnReadMessage(ctx, reqData)
  45. if err != nil {
  46. log.Error().Str("receiverType", receiverType).Int32("receiverID", receiverID).Int("count", count).Err(err).Msg("向 PHP 服务发送未读消息通知失败")
  47. return err
  48. }
  49. log.Info().Str("receiverType", receiverType).Int32("receiverID", receiverID).Int("count", count).Str("res", res).Msg("向 PHP 服务发送未读消息通知成功")
  50. }
  51. return nil
  52. }