simCardManage.go 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package acceleronix
  2. import (
  3. "encoding/json"
  4. "fwh-toolbox-server/domain"
  5. "go.uber.org/zap"
  6. )
  7. type AcceleronixSimCardState int
  8. const (
  9. SCS_PreActivation AcceleronixSimCardState = iota + 2 // 2 预激活
  10. SCS_Test // 3 测试
  11. SCS_Silence // 4 沉默
  12. SCS_Standby // 5 待机
  13. SCS_Activated // 6 激活
  14. SCS_Deactivated // 7 停机
  15. SCS_Pause // 8 暂停
  16. SCS_PreCancellation // 9 预注销
  17. SCS_Cancellation // 10 注销
  18. )
  19. type AcceleronixSimCardListRequestBody struct {
  20. EnterpriseCode *string `json:"enterpriseCode,omitempty"` // 企业编码
  21. EnterpriseDataPlan *string `json:"enterpriseDataPlan,omitempty"` // 企业资费计划名称
  22. ExpirationTimeEnd *string `json:"expirationTimeEnd,omitempty"` // 支持到期时间区间段查询,这里指截止到期时间 格式:yyyy-MM-dd
  23. ExpirationTimeStart *string `json:"expirationTimeStart,omitempty"` // 支持到期时间区间段查询,这里指起始到期时间 格式:yyyy-MM-dd
  24. IccidEnd *string `json:"iccidEnd,omitempty"` // 支持ICCID号段查询,这里指ICCID截止号码
  25. IccidStart *string `json:"iccidStart,omitempty"` // 支持ICCID号段查询,这里指ICCID起始号码
  26. Label *string `json:"label,omitempty"` // 标签
  27. PageNum uint `json:"pageNum"` // 页码 默认值:1
  28. PageSize uint `json:"pageSize"` // 每页记录数 默认值:10 最大值:1000
  29. SimState *AcceleronixSimCardState `json:"simState,omitempty"` // 卡状态 AcceleronixSimCardState
  30. SimType *string `json:"simType,omitempty"` // 卡类型
  31. }
  32. type AcceleronixSimCardListResponse struct {
  33. Code int `json:"code"` // 响应码
  34. Data struct {
  35. Current int64 `json:"current"` // 当前页码
  36. List []struct {
  37. ActivationTime string `json:"activationTime"` // 激活时间 格式:yyyy-MM-ddd
  38. Enterprise string `json:"enterprise"` // 归属企业
  39. EnterpriseDataPlan string `json:"enterpriseDataPlan"` // 企业资费计划
  40. ExpirationTime string `json:"expirationTime"` // 到期时间 格式:yyyy-MM-dd
  41. Iccid string `json:"iccid"` // ICCID
  42. Imei string `json:"imei"` // IMEI
  43. Imsi string `json:"imsi"` // IMSI
  44. InitialTime string `json:"initialTime"` // 开卡时间 格式:yyyy-MM-dd
  45. Label string `json:"label"` // 标签,多个标签时逗号隔开
  46. Msisdn string `json:"msisdn"` // MSISDN
  47. NetworkType string `json:"networkType"` // 网络制式 1:ALL 2:Cat-M 3:LTE-M
  48. SimId string `json:"simId"` // SIM ID
  49. SimState AcceleronixSimCardState `json:"simState"` // 卡状态 AcceleronixSimCardState
  50. SimStateChangeReason string `json:"simStateChangeReason"` // 卡状态变更原因
  51. SimType string `json:"simType"` // 卡类型
  52. } `json:"list"` // 数据集合
  53. Pages int64 `json:"pages"` // 总页码
  54. Size int64 `json:"size"` // 每页数量
  55. Total int64 `json:"total"` // 总条数
  56. } `json:"data"` // 响应体
  57. Msg string `json:"msg"` // 响应描述
  58. ReqId string `json:"reqId"`
  59. }
  60. type AcceleronixBatchDataUsageRequestBody struct {
  61. Iccids []string `json:"iccids"` // ICCID 最多支持100张卡批量操作
  62. Month string `json:"month"` // 统计月份,yyyyMM 日期格式化字符串
  63. }
  64. type AcceleronixSimCardDataUsageInfo struct {
  65. dataUsageDetails []struct{} `json:"dataUsageDetails"` // 流量详细
  66. iccid string `json:"iccid"` // ICCID
  67. month string `json:"month"` // 统计月份 格式:yyyyMM
  68. outsideRegionDataUsage string `json:"outsideRegionDataUsage"` // 超区流量 单位:MB
  69. remainingData string `json:"remainingData"`
  70. totalDataAllowance string `json:"totalDataAllowance"`
  71. totalDataUsage string `json:"totalDataUsage"`
  72. }
  73. // 查询SIM卡列表
  74. func QuerySimCardList(page uint, size uint) (*AcceleronixSimCardListResponse, error) {
  75. res, err := acceleronixHttpPost("/sim/page", AcceleronixSimCardListRequestBody{
  76. PageNum: page,
  77. PageSize: size,
  78. })
  79. if err != nil {
  80. zap.L().Error("QuerySimCardList failed.", zap.String("err", err.Error()))
  81. return nil, err
  82. }
  83. var resList AcceleronixSimCardListResponse
  84. if err := json.Unmarshal(res.Body, &resList); err != nil {
  85. return nil, err
  86. }
  87. return &resList, nil
  88. }
  89. // 批量获取SIM卡数据用量信息
  90. // month 格式YYYYMM exp.202301
  91. func QueryBatchSimCardDataInfo(iccidList []string, month string) (*domain.SmartHubSimCardInfoList, error) {
  92. }