| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280 |
- package acceleronix
- import (
- "encoding/json"
- "go.uber.org/zap"
- )
- // SIM卡状态
- type AcceleronixSimCardState int
- const (
- SCS_PreActivation AcceleronixSimCardState = iota + 2 // 2 预激活
- SCS_Test // 3 测试
- SCS_Silence // 4 沉默
- SCS_Standby // 5 待机
- SCS_Activated // 6 激活
- SCS_Deactivated // 7 停机
- SCS_Pause // 8 暂停
- SCS_PreCancellation // 9 预注销
- SCS_Cancellation // 10 注销
- )
- // 查询SIM列表 - 请求结构体
- type AcceleronixSimCardListRequestBody struct {
- EnterpriseCode *string `json:"enterpriseCode,omitempty"` // 企业编码
- EnterpriseDataPlan *string `json:"enterpriseDataPlan,omitempty"` // 企业资费计划名称
- ExpirationTimeEnd *string `json:"expirationTimeEnd,omitempty"` // 支持到期时间区间段查询,这里指截止到期时间 格式:yyyy-MM-dd
- ExpirationTimeStart *string `json:"expirationTimeStart,omitempty"` // 支持到期时间区间段查询,这里指起始到期时间 格式:yyyy-MM-dd
- IccidEnd *string `json:"iccidEnd,omitempty"` // 支持ICCID号段查询,这里指ICCID截止号码
- IccidStart *string `json:"iccidStart,omitempty"` // 支持ICCID号段查询,这里指ICCID起始号码
- Label *string `json:"label,omitempty"` // 标签
- PageNum uint `json:"pageNum"` // 页码 默认值:1
- PageSize uint `json:"pageSize"` // 每页记录数 默认值:10 最大值:1000
- SimState *AcceleronixSimCardState `json:"simState,omitempty"` // 卡状态 AcceleronixSimCardState
- SimType *string `json:"simType,omitempty"` // 卡类型
- }
- // 查询SIM列表 - 响应
- type AcceleronixSimCardListResponse struct {
- Code int `json:"code"` // 响应码
- Data struct {
- Current int64 `json:"current"` // 当前页码
- List []struct {
- ActivationTime string `json:"activationTime"` // 激活时间 格式:yyyy-MM-ddd
- Enterprise string `json:"enterprise"` // 归属企业
- EnterpriseDataPlan string `json:"enterpriseDataPlan"` // 企业资费计划
- ExpirationTime string `json:"expirationTime"` // 到期时间 格式: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"` // 标签,多个标签时逗号隔开
- Msisdn string `json:"msisdn"` // MSISDN
- NetworkType string `json:"networkType"` // 网络制式 1:ALL 2:Cat-M 3:LTE-M
- SimId string `json:"simId"` // SIM ID
- SimState AcceleronixSimCardState `json:"simState"` // 卡状态 AcceleronixSimCardState
- SimStateChangeReason string `json:"simStateChangeReason"` // 卡状态变更原因
- SimType string `json:"simType"` // 卡类型
- } `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 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 日期格式化字符串
- }
- // 批量查询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卡列表
- func QuerySimCardList(page uint, size uint) (*AcceleronixSimCardListResponse, error) {
- res, err := acceleronixHttpPost("/sim/page", AcceleronixSimCardListRequestBody{
- PageNum: page,
- PageSize: size,
- })
- if err != nil {
- zap.L().Error("QuerySimCardList failed.", zap.String("err", err.Error()))
- return nil, err
- }
- var resList AcceleronixSimCardListResponse
- if err := json.Unmarshal(res.Body, &resList); err != nil {
- return nil, err
- }
- 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) ([]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
- }
|