|
|
@@ -2,11 +2,11 @@ package acceleronix
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
- "fwh-toolbox-server/domain"
|
|
|
|
|
|
"go.uber.org/zap"
|
|
|
)
|
|
|
|
|
|
+// SIM卡状态
|
|
|
type AcceleronixSimCardState int
|
|
|
|
|
|
const (
|
|
|
@@ -21,6 +21,7 @@ const (
|
|
|
SCS_Cancellation // 10 注销
|
|
|
)
|
|
|
|
|
|
+// 查询SIM列表 - 请求结构体
|
|
|
type AcceleronixSimCardListRequestBody struct {
|
|
|
EnterpriseCode *string `json:"enterpriseCode,omitempty"` // 企业编码
|
|
|
EnterpriseDataPlan *string `json:"enterpriseDataPlan,omitempty"` // 企业资费计划名称
|
|
|
@@ -35,6 +36,7 @@ type AcceleronixSimCardListRequestBody struct {
|
|
|
SimType *string `json:"simType,omitempty"` // 卡类型
|
|
|
}
|
|
|
|
|
|
+// 查询SIM列表 - 响应
|
|
|
type AcceleronixSimCardListResponse struct {
|
|
|
Code int `json:"code"` // 响应码
|
|
|
Data struct {
|
|
|
@@ -64,19 +66,121 @@ type AcceleronixSimCardListResponse struct {
|
|
|
ReqId string `json:"reqId"`
|
|
|
}
|
|
|
|
|
|
+// 查询SIM卡详情 - 响应
|
|
|
+type AcceleronixSimCardInfoResponse struct {
|
|
|
+ Code int `json:"code"` // 响应码
|
|
|
+ Data struct {
|
|
|
+ ActivationTime string `json:"activationTime"` // 激活时间 格式:yyyy-MM-dd
|
|
|
+ Apn string `json:"apn"` // APN
|
|
|
+ CountryRegion string `json:"countryRegion"` // 所在国家/地区
|
|
|
+ Enterprise string `json:"enterprise"` // 归属企业
|
|
|
+ EnterpriseDataPlan string `json:"enterpriseDataPlan"` // 企业资费计划
|
|
|
+ EnterpriseDataPlanCode string `json:"enterpriseDataPlanCode"` // 计划编码
|
|
|
+ ExpirationTime string `json:"expirationTime"` // 到期时间 格式:yyyy-MM-dd
|
|
|
+ FirstActivationCdrTime string `json:"firstActivationCdrTime"` // 激活首次使用时间,格式yyyy-MM-dd
|
|
|
+ Iccid string `json:"iccid"` // ICCID
|
|
|
+ Imei string `json:"imei"` // IMEI
|
|
|
+ Imsi string `json:"imsi"` // IMSI
|
|
|
+ InitialTime string `json:"initialTime"` // 开卡时间 格式:yyyy-MM-dd
|
|
|
+ Label string `json:"label"` // 标签
|
|
|
+ LastSessionTime string `json:"lastSessionTime"` // 上次会话时间 格式:yyyy-MM-dd HH:mm:ss
|
|
|
+ Msisdn string `json:"msisdn"` // MSISDN
|
|
|
+ NetCommStatus int32 `json:"netCommStatus"` // 网络通讯状态:0:关闭 1:开启
|
|
|
+ NetworkType string `json:"networkType"` // 网络制式
|
|
|
+ OperatorNetwork string `json:"operatorNetwork"` // 所在运营商网络
|
|
|
+ Rat string `json:"rat"` // RAT
|
|
|
+ SimId string `json:"simId"` // SIM ID
|
|
|
+ SimState AcceleronixSimCardState `json:"simState"` // 卡状态 AcceleronixSimCardState
|
|
|
+ SimStateChangeReason string `json:"simStateChangeReason"` // 卡状态变更原因
|
|
|
+ SimType string `json:"simType"` // 卡类型
|
|
|
+ UsedDataOfCurrentPeriod int64 `json:"usedDataOfCurrentPeriod"` // 当前周期数据用量(B)
|
|
|
+ } `json:"data"` // 响应体
|
|
|
+ Msg string `json:"msg"` // 响应描述
|
|
|
+ ReqId string `json:"reqId"`
|
|
|
+}
|
|
|
+
|
|
|
+// 批量查询SIM卡流量 - 请求结构体
|
|
|
type AcceleronixBatchDataUsageRequestBody struct {
|
|
|
Iccids []string `json:"iccids"` // ICCID 最多支持100张卡批量操作
|
|
|
Month string `json:"month"` // 统计月份,yyyyMM 日期格式化字符串
|
|
|
}
|
|
|
|
|
|
-type AcceleronixSimCardDataUsageInfo struct {
|
|
|
- dataUsageDetails []struct{} `json:"dataUsageDetails"` // 流量详细
|
|
|
- iccid string `json:"iccid"` // ICCID
|
|
|
- month string `json:"month"` // 统计月份 格式:yyyyMM
|
|
|
- outsideRegionDataUsage string `json:"outsideRegionDataUsage"` // 超区流量 单位:MB
|
|
|
- remainingData string `json:"remainingData"`
|
|
|
- totalDataAllowance string `json:"totalDataAllowance"`
|
|
|
- totalDataUsage string `json:"totalDataUsage"`
|
|
|
+// 批量查询SIM卡流量 - 响应
|
|
|
+type AcceleronixSimCardDataUsageInfoResponse struct {
|
|
|
+ DataUsageDetails []struct {
|
|
|
+ DataAllowance string `json:"dataAllowance"` // 总流量 单位:MB
|
|
|
+ DataUsage string `json:"dataUsage"` // 已用流量 单位:MB
|
|
|
+ OrderName string `json:"orderName"` // 订购名
|
|
|
+ OutsideRegionDataUsage string `json:"outsideRegionDataUsage"` // 超区流量 单位:MB
|
|
|
+ Type int32 `json:"type"` // 流量类型 1:激活期资费套餐 2:测试期资费套餐 3:流量包
|
|
|
+ } `json:"dataUsageDetails"` // 流量详细
|
|
|
+ Iccid string `json:"iccid"` // ICCID
|
|
|
+ Month string `json:"month"` // 统计月份 格式:yyyyMM
|
|
|
+ OutsideRegionDataUsage string `json:"outsideRegionDataUsage"` // 超区流量 单位:MB
|
|
|
+ RemainingData string `json:"remainingData"` // 剩余流量(若无使用上限,剩余流量也为0) 单位:MB
|
|
|
+ TotalDataAllowance string `json:"totalDataAllowance"` // 总流量 单位:MB
|
|
|
+ TotalDataUsage string `json:"totalDataUsage"` // 已用流量 单位:MB
|
|
|
+}
|
|
|
+
|
|
|
+// 查询流量池列表 - 请求结构体
|
|
|
+type AcceleronixDataPoolListRequestBody struct {
|
|
|
+ EnterpriseCode *string `json:"enterpriseCode,omitempty"` // 企业编码。默认查询范围:本企业。可通过“子企业编码”查询子企业流量池
|
|
|
+ DataPoolId *string `json:"dataPoolId"` // 流量池ID
|
|
|
+ PageNum uint `json:"pageNum"` // 页码 默认值:1
|
|
|
+ PageSize uint `json:"pageSize"` // 每页记录数 默认值:10 最大值:1000
|
|
|
+}
|
|
|
+
|
|
|
+// 查询流量池列表 - 响应
|
|
|
+type AcceleronixDataPoolListResponse struct {
|
|
|
+ Code int `json:"code"` // 响应码
|
|
|
+ Data struct {
|
|
|
+ Current int64 `json:"current"` // 当前页码
|
|
|
+ List []struct {
|
|
|
+ DataPlanAllowance string `json:"dataPlanAllowance"` // 资费计划额度(MB)
|
|
|
+ DataPoolId string `json:"dataPoolId"` // 流量池ID
|
|
|
+ DataPoolName string `json:"dataPoolName"` // 流量池名称
|
|
|
+ DataUsage float32 `json:"dataUsage"` // 数据用量(MB)
|
|
|
+ EffectiveSims int64 `json:"effectiveSims"` // 生效SIM数
|
|
|
+ EnterpriseName string `json:"enterpriseName"` // 企业名称
|
|
|
+ Excessive float32 `json:"excessive"` // 超池用量(MB)
|
|
|
+ RemainingData float32 `json:"remainingData"` // 剩余用量(MB)
|
|
|
+ RemainingPercentage float32 `json:"remainingPercentage"` // 剩余百分比(%)
|
|
|
+ TotalData float32 `json:"totalData"` // 池总量(MB)
|
|
|
+ TotalSims int64 `json:"totalSims"` // 总SIM数
|
|
|
+ TotalVolume float32 `json:"totalVolume"` // 流量包总量(MB)
|
|
|
+ UsedSms int64 `json:"usedSms"` // 短信用量(条)
|
|
|
+ } `json:"list"` // 数据集合
|
|
|
+ Pages int64 `json:"pages"` // 总页码
|
|
|
+ Size int64 `json:"size"` // 每页数量
|
|
|
+ Total int64 `json:"total"` // 总条数
|
|
|
+ } `json:"data"` // 响应体
|
|
|
+ Msg string `json:"msg"` // 响应描述
|
|
|
+ ReqId string `json:"reqId"`
|
|
|
+}
|
|
|
+
|
|
|
+// 查询流量池SIM详情 - 响应
|
|
|
+type AcceleronixDataPoolSimInfoResponse struct {
|
|
|
+ Code int `json:"code"` // 响应码
|
|
|
+ Data struct {
|
|
|
+ Current int64 `json:"current"` // 当前页码
|
|
|
+ List []struct {
|
|
|
+ DataSharingState int32 `json:"dataSharingState"` // 数据共享状态 0:未生效 1:生效
|
|
|
+ DataUsage float32 `json:"dataUsage"` // 当月数据用量(MB)
|
|
|
+ EffectiveTime string `json:"effectiveTime"` // 生效时间 格式:yyyy-MM-dd HH:mm:ss
|
|
|
+ EnterpriseDataPlan string `json:"enterpriseDataPlan"` // 企业资费计划
|
|
|
+ EnterpriseDataPlanCode string `json:"enterpriseDataPlanCode"` // 企业资费计划编码
|
|
|
+ EstimatedExpirationTime string `json:"estimatedExpirationTime"` // 预计失效时间 格式:yyyy-MM-dd HH:mm:ss
|
|
|
+ Iccid string `json:"iccid"` // ICCID
|
|
|
+ PoolInTime string `json:"poolInTime"` // 入池时间 格式:yyyy-MM-dd HH:mm:ss
|
|
|
+ SimState AcceleronixSimCardState `json:"simState"` // 卡状态 AcceleronixSimCardState
|
|
|
+ UsedSms float32 `json:"usedSms"` // 当月短信用量(条)
|
|
|
+ } `json:"list"` // 数据集合
|
|
|
+ Pages int64 `json:"pages"` // 总页码
|
|
|
+ Size int64 `json:"size"` // 每页数量
|
|
|
+ Total int64 `json:"total"` // 总条数
|
|
|
+ } `json:"data"` // 响应体
|
|
|
+ Msg string `json:"msg"` // 响应描述
|
|
|
+ ReqId string `json:"reqId"`
|
|
|
}
|
|
|
|
|
|
// 查询SIM卡列表
|
|
|
@@ -98,8 +202,79 @@ func QuerySimCardList(page uint, size uint) (*AcceleronixSimCardListResponse, er
|
|
|
return &resList, nil
|
|
|
}
|
|
|
|
|
|
+// 查询SIM卡详情
|
|
|
+func QuerySimCardInfo(iccid string) (*AcceleronixSimCardInfoResponse, error) {
|
|
|
+ res, err := acceleronixHttpPost("/sim/detail", map[string]interface{}{
|
|
|
+ "iccid": iccid,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ zap.L().Error("QuerySimCardInfo failed.", zap.String("err", err.Error()))
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ var resInfo AcceleronixSimCardInfoResponse
|
|
|
+ if err := json.Unmarshal(res.Body, &resInfo); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ return &resInfo, nil
|
|
|
+}
|
|
|
+
|
|
|
// 批量获取SIM卡数据用量信息
|
|
|
// month 格式YYYYMM exp.202301
|
|
|
-func QueryBatchSimCardDataInfo(iccidList []string, month string) (*domain.SmartHubSimCardInfoList, error) {
|
|
|
+func QueryBatchSimCardDataInfo(iccidList []string, month string) ([]AcceleronixSimCardDataUsageInfoResponse, error) {
|
|
|
+ res, err := acceleronixHttpPost("/sim/batchQueryMonthData", AcceleronixBatchDataUsageRequestBody{
|
|
|
+ Iccids: iccidList,
|
|
|
+ Month: month,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ zap.L().Error("QueryBatchSimCardDataInfo failed.", zap.String("err", err.Error()))
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ var resList []AcceleronixSimCardDataUsageInfoResponse
|
|
|
+ if err := json.Unmarshal(res.Body, &resList); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ return resList, nil
|
|
|
+}
|
|
|
+
|
|
|
+// 查询流量池列表
|
|
|
+func QueryDataPoolList(page uint, size uint) (*AcceleronixDataPoolListResponse, error) {
|
|
|
+ res, err := acceleronixHttpPost("/dataPool/page", AcceleronixDataPoolListRequestBody{
|
|
|
+ PageNum: page,
|
|
|
+ PageSize: size,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ zap.L().Error("QueryDataPoolList failed.", zap.String("err", err.Error()))
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ var resList AcceleronixDataPoolListResponse
|
|
|
+ if err := json.Unmarshal(res.Body, &resList); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ return &resList, nil
|
|
|
+}
|
|
|
+
|
|
|
+// 查询流量池SIM详情
|
|
|
+func QueryDataPoolSimInfo(dataPoolId string, page uint, size uint) (*AcceleronixDataPoolSimInfoResponse, error) {
|
|
|
+ res, err := acceleronixHttpPost("/dataPool/detail", map[string]interface{}{
|
|
|
+ "dataPoolId": dataPoolId,
|
|
|
+ "pageNum": page,
|
|
|
+ "pageSize": size,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ zap.L().Error("QueryDataPoolSimInfo failed.", zap.String("err", err.Error()))
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ var resInfo AcceleronixDataPoolSimInfoResponse
|
|
|
+ if err := json.Unmarshal(res.Body, &resInfo); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
|
|
|
+ return &resInfo, nil
|
|
|
}
|