gms_nats_consumer.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package gm_services
  2. import (
  3. "encoding/json"
  4. "github.com/nats-io/nats.go"
  5. "github.com/sirupsen/logrus"
  6. )
  7. func HandleGMSubscribe(c *nats.Conn) {
  8. _, err := c.Subscribe("gm", func(message *nats.Msg) {
  9. // 消息回复
  10. reply := func(res interface{}) {
  11. marshal, err := json.Marshal(&res)
  12. if err != nil {
  13. logrus.Warnf("gm reply Marshal error. %v", err)
  14. return
  15. }
  16. if err = c.Publish(message.Reply, marshal); err != nil {
  17. logrus.Warnf("gm reply error. %v", err)
  18. return
  19. }
  20. }
  21. switch message.Header.Get("method") {
  22. case "RedeemGoodsIs": //兑换券码
  23. /*var request *msg.RedeemGoodsIs
  24. if err := json.Unmarshal(message.Data, &request); err != nil {
  25. logrus.Infof("RedeemGoodsIs json.Unmarshal error. %v", err)
  26. return
  27. }
  28. logrus.WithField("from", "RedeemGoodsIs").Infof("request:%+v", request)
  29. exchange, err := service.Cdk.Exchange(context.TODO(), request)
  30. if err != nil {
  31. logrus.WithField("from", "handlerRedeemGoodsIs Exchange err ").Warnln(err)
  32. }
  33. reply(&exchange)*/
  34. reply(nil)
  35. default:
  36. logrus.Warnf("gm messages are not bound to handle routes. method:%+v, data:%+v", message.Header.Get("method"), string(message.Data))
  37. return
  38. }
  39. })
  40. if err != nil {
  41. logrus.Fatalf("gm nsClient.Subscribe error. %v", err)
  42. }
  43. }