rpc.go 966 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package utility
  2. import (
  3. "context"
  4. "encoding/json"
  5. "github.com/gogf/gf/v2/frame/g"
  6. "net/rpc"
  7. )
  8. type RpcParams struct {
  9. UserId string //用户id
  10. Answer string //答案原型
  11. BiddingId string //招标信息id
  12. IsEnt bool //当前是否是企业身份
  13. PageNum int //当前页码
  14. PageSize int //每页数据
  15. BaseUserId int64 //base_user_id
  16. }
  17. type Result struct {
  18. ErrCode int
  19. ErrMsg string
  20. ReplyMsg string
  21. }
  22. type RpcResult []byte
  23. // DoBusiness 调用业务意图处理
  24. func DoBusiness(ctx context.Context, joggle string, param *RpcParams) (*Result, error) {
  25. client, err := rpc.DialHTTP("tcp", g.Cfg().MustGet(ctx, "chat.businessRpc", "").String())
  26. defer client.Close()
  27. if err != nil {
  28. return nil, err
  29. }
  30. var repl RpcResult
  31. err = client.Call(joggle, param, &repl)
  32. if err != nil {
  33. return nil, err
  34. }
  35. rData := &Result{}
  36. err = json.Unmarshal(repl, rData)
  37. if err != nil {
  38. return nil, err
  39. }
  40. return rData, nil
  41. }