simCardManage.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package acceleronix
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "errors"
  6. "fwh-toolbox-server/domain"
  7. "go.uber.org/zap"
  8. )
  9. // 查询SIM卡列表
  10. func QuerySimCardList(page uint, size uint) (*domain.AcceleronixSimCardListResponse, error) {
  11. res, err := acceleronixHttpPost("/sim/page", domain.AcceleronixSimCardListRequestBody{
  12. PageNum: page,
  13. PageSize: size,
  14. })
  15. if err != nil {
  16. zap.L().Error("QuerySimCardList failed.", zap.String("err", err.Error()))
  17. return nil, err
  18. }
  19. var resList domain.AcceleronixSimCardListResponse
  20. if err := json.Unmarshal(res.Body, &resList); err != nil {
  21. zap.L().Error("QuerySimCardList Unmarshal failed.", zap.String("err", err.Error()), zap.String("body", string(res.Body)))
  22. return nil, err
  23. }
  24. zap.L().Debug("QuerySimCardList", zap.Int("DataNum", len(resList.Data.List)), zap.Int64("Page", resList.Data.Current), zap.Int64("Size", resList.Data.Size), zap.Int64("Total", resList.Data.Total))
  25. return &resList, nil
  26. }
  27. // 查询SIM卡详情
  28. func QuerySimCardInfo(iccid string) (*domain.AcceleronixSimCardInfoResponse, error) {
  29. res, err := acceleronixHttpPost("/sim/detail", map[string]interface{}{
  30. "iccid": iccid,
  31. })
  32. if err != nil {
  33. zap.L().Error("QuerySimCardInfo failed.", zap.String("err", err.Error()))
  34. return nil, err
  35. }
  36. var resInfo domain.AcceleronixSimCardInfoResponse
  37. if err := json.Unmarshal(res.Body, &resInfo); err != nil {
  38. zap.L().Error("QuerySimCardInfo Unmarshal failed.", zap.String("err", err.Error()), zap.String("body", string(res.Body)))
  39. return nil, err
  40. }
  41. zap.L().Debug("QuerySimCardInfo", zap.String("GICCID", iccid))
  42. return &resInfo, nil
  43. }
  44. // 批量获取SIM卡数据用量信息
  45. // month 格式YYYYMM exp.202301
  46. func QueryBatchSimCardDataInfo(iccidList []string, month string) ([]domain.AcceleronixSimCardDataUsageInfoResponse, error) {
  47. res, err := acceleronixHttpPost("/sim/batchQueryMonthData", domain.AcceleronixBatchDataUsageRequestBody{
  48. Iccids: iccidList,
  49. Month: month,
  50. })
  51. if err != nil {
  52. zap.L().Error("QueryBatchSimCardDataInfo failed.", zap.String("err", err.Error()))
  53. return nil, err
  54. }
  55. // 处理多种格式Body(成功:数组,失败:Struct)
  56. bodyBytes := bytes.TrimSpace(res.Body)
  57. if len(bodyBytes) == 0 {
  58. zap.L().Error("QueryBatchSimCardDataInfo Body is empty.", zap.String("body", string(res.Body)))
  59. return nil, errors.New("QueryBatchSimCardDataInfo empty response body")
  60. }
  61. switch bodyBytes[0] {
  62. case '[':
  63. var result []domain.AcceleronixSimCardDataUsageInfoResponse
  64. if err := json.Unmarshal(bodyBytes, &result); err != nil {
  65. zap.L().Error("QueryBatchSimCardDataInfo Unmarshal failed.", zap.String("err", err.Error()), zap.String("body", string(res.Body)))
  66. return nil, err
  67. }
  68. zap.L().Debug("QueryBatchSimCardDataInfo", zap.Strings("GICCIDs", iccidList), zap.String("month", month))
  69. return result, nil
  70. case '{':
  71. var apiErr domain.AcceleronixResponseError
  72. if err := json.Unmarshal(bodyBytes, &apiErr); err == nil {
  73. zap.L().Error("QueryBatchSimCardDataInfo Error struct unmarshal failed.", zap.String("body", string(res.Body)))
  74. return nil, err
  75. }
  76. zap.L().Error("QueryBatchSimCardDataInfo AcceleronixResponseError", zap.Int("Code", apiErr.Code), zap.String("Msg", apiErr.Msg))
  77. return nil, errors.New("QueryBatchSimCardDataInfo AcceleronixResponseError")
  78. default:
  79. return nil, errors.New("QueryBatchSimCardDataInfo invalid body")
  80. }
  81. }
  82. // 查询流量池列表
  83. func QueryDataPoolList(page uint, size uint) (*domain.AcceleronixDataPoolListResponse, error) {
  84. res, err := acceleronixHttpPost("/dataPool/page", domain.AcceleronixDataPoolListRequestBody{
  85. PageNum: page,
  86. PageSize: size,
  87. })
  88. if err != nil {
  89. zap.L().Error("QueryDataPoolList failed.", zap.String("err", err.Error()))
  90. return nil, err
  91. }
  92. var resList domain.AcceleronixDataPoolListResponse
  93. if err := json.Unmarshal(res.Body, &resList); err != nil {
  94. zap.L().Error("QueryDataPoolList Unmarshal failed.", zap.String("err", err.Error()), zap.String("body", string(res.Body)))
  95. return nil, err
  96. }
  97. zap.L().Debug("QueryDataPoolList", zap.Int("DataNum", len(resList.Data.List)), zap.Int64("Page", resList.Data.Current), zap.Int64("Size", resList.Data.Size), zap.Int64("Total", resList.Data.Total))
  98. return &resList, nil
  99. }
  100. // 查询流量池SIM详情
  101. func QueryDataPoolSimInfo(dataPoolId string, page uint, size uint) (*domain.AcceleronixDataPoolSimInfoResponse, error) {
  102. res, err := acceleronixHttpPost("/dataPool/detail", map[string]interface{}{
  103. "dataPoolId": dataPoolId,
  104. "pageNum": page,
  105. "pageSize": size,
  106. })
  107. if err != nil {
  108. zap.L().Error("QueryDataPoolSimInfo failed.", zap.String("err", err.Error()))
  109. return nil, err
  110. }
  111. var resInfo domain.AcceleronixDataPoolSimInfoResponse
  112. if err := json.Unmarshal(res.Body, &resInfo); err != nil {
  113. zap.L().Error("QueryDataPoolSimInfo Unmarshal failed.", zap.String("err", err.Error()), zap.String("body", string(res.Body)))
  114. return nil, err
  115. }
  116. zap.L().Debug("QueryDataPoolSimInfo", zap.String("PoolId", dataPoolId), zap.Int("DataNum", len(resInfo.Data.List)), zap.Int64("Page", resInfo.Data.Current), zap.Int64("Size", resInfo.Data.Size), zap.Int64("Total", resInfo.Data.Total))
  117. return &resInfo, nil
  118. }