供应商rpc结构及公共方法
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
1.5 KiB

  1. package supplierrpc
  2. import (
  3. "encoding/json"
  4. "errors"
  5. )
  6. func Get(site_id, dbname, id string, field string, url ...string) (map[string]string, error) {
  7. if dbname == "" || id == "" {
  8. return nil, errors.New("参数错误")
  9. }
  10. conn, err := rpc_server_conn(url...)
  11. if err != nil {
  12. return nil, err
  13. }
  14. defer conn.Close()
  15. arg := ReqParam{site_id, dbname, id, field}
  16. req, err := SetReqData(arg)
  17. if err != nil {
  18. return nil, err
  19. }
  20. res := &Response{}
  21. err = conn.Get(req, res)
  22. if err != nil {
  23. return nil, err
  24. }
  25. res_data_de, err := GetResData(res)
  26. if err != nil {
  27. return nil, err
  28. }
  29. if res_data_de == "" {
  30. return nil, nil
  31. }
  32. var res_arr map[string]string
  33. err = json.Unmarshal([]byte(res_data_de), &res_arr)
  34. if err != nil {
  35. return nil, err
  36. }
  37. return res_arr, nil
  38. }
  39. func Get380Star(site_id, dbname string, field string, url ...string) (map[string]string, error) {
  40. if dbname == "" {
  41. return nil, errors.New("参数错误")
  42. }
  43. conn, err := rpc_server_conn(url...)
  44. if err != nil {
  45. return nil, err
  46. }
  47. defer conn.Close()
  48. arg := ReqParam{site_id, dbname, "", field}
  49. req, err := SetReqData(arg)
  50. if err != nil {
  51. return nil, err
  52. }
  53. res := &Response{}
  54. err = conn.Get380Star(req, res)
  55. if err != nil {
  56. return nil, err
  57. }
  58. res_data_de, err := GetResData(res)
  59. if err != nil {
  60. return nil, err
  61. }
  62. if res_data_de == "" {
  63. return nil, nil
  64. }
  65. var res_arr map[string]string
  66. err = json.Unmarshal([]byte(res_data_de), &res_arr)
  67. if err != nil {
  68. return nil, err
  69. }
  70. return res_arr, nil
  71. }