package sim // import ( // "errors" // "fmt" // "go-nc/configs/global" // "go-nc/model" // pkgSim "go-nc/pkg/sim/grace" // "github.com/gin-gonic/gin" // "github.com/tidwall/gjson" // "go-nc/internal/utils" // ) // // 测试参数 // // "childOrderId":"89852342022040149139", // // "iccid":"1845700383613420930" // // 查询流量包信息接口:查询流量包信息- 200 // func PostSimPackageInfo(c *gin.Context) { // var info PageIndex // if err := c.ShouldBindJSON(&info); err != nil { // c.Error(errors.New("缺少参数!")) // return // } // // 校验参数 // err := utils.ValidateStruct(info) // if err != nil { // c.Error(err) // return // } // if info.Current != 0 { // info.Current = info.Current - 1 // } // if info.PageSize == 0 { // info.PageSize = 50 // } // data, err := pkgSim.GetSimPackage(info.Current, info.PageSize) // if err != nil { // c.Error(err) // return // } // list := gjson.GetBytes(data.Bytes(), "dataBundles").Array() // result := make([]interface{}, len(list)) // for i, item := range list { // result[i] = item.Value() // } // c.Set("res_data", result) // } // // 订单同步接口: 此接口用于创建订单 // func SimOrderSync(c *gin.Context) { // var param pkgSim.SimOrder // if err := c.ShouldBindJSON(¶m); err != nil { // c.Error(errors.New("缺少参数!")) // return // } // param.IncludeCard = 0 // 供应商:还没用, 固定填 0 就行了 // err := utils.ValidateStruct(param) // if err != nil { // c.Error(err) // return // } // simToken, err := pkgSim.GetSimToken() // if err != nil { // c.Error(err) // return // } // param.AccessToken = simToken // // 获取token // userInfoInterface, _ := c.Get("userInfo") // userInfo, _ := userInfoInterface.(model.Sys_user) // param.ThirdOrderId = model.GenerateUUIDWithoutHyphens() // // 获取订单信息 // data, err := pkgSim.GetSimSetOrder(param) // if err != nil { // c.Error(err) // return // } // jsonData := gjson.ParseBytes(data.Bytes()) // // 查询更详细的订单信息 // var order model.Iot_sim_order // // 更新订单信息 // order.Id = param.ThirdOrderId // order.ICCID = param.ICCID // order.IsRefuel = param.IsRefuel // order.RefuelingId = param.RefuelingId // order.DataBundleId = param.DataBundleId // order.SendLang = param.SendLang // order.UserId = userInfo.Id // order.OrderId = jsonData.Get("orderID").String() // order.Price = jsonData.Get("price").String() // order.TotalAmount = jsonData.Get("totalAmount").String() // order.Currency = jsonData.Get("currency").String() // order.Quantity = int(jsonData.Get("quantity").Int()) // // 更新订单状态 // err = global.App.DB.Where("id = ?", order.Id).Where("order_id = ?", order.OrderId).First(&order).Error // if err != nil { // // 如果不存在记录,则保存 // err = global.App.DB.Create(&order).Error // if err != nil { // c.Error(err) // return // } // } else { // // 如果存在记录,则更新 // err = global.App.DB.Model(&order).Updates(&order).Error // if err != nil { // c.Error(err) // return // } // } // c.Set("res_data", data) // } // // 查询用户套餐资费计划接口:终端查询用户订购流量包列表接口接口 // func SimPackageTariffPlan(c *gin.Context) { // var param pkgSim.SimPackageTariffPlan // if err := c.ShouldBindJSON(¶m); err != nil { // c.Error(errors.New("缺少参数!")) // return // } // if param.Iccid == "" && param.HImsi == "" { // c.Error(errors.New("缺少参数: iccid or hImsi ")) // return // } // err := utils.ValidateStruct(param) // if err != nil { // c.Error(err) // return // } // // 获取simToken // simToken, err := pkgSim.GetSimToken() // if err != nil { // c.Error(err) // return // } // param.AccessToken = simToken // data, err := pkgSim.GetSimPackageTariffPlan(param) // if err != nil { // c.Error(err) // return // } // list := gjson.GetBytes(data.Bytes(), "userDataBundles").Array() // resData := make([]interface{}, len(list)) // for i, item := range list { // resData[i] = item.Value() // } // c.Set("res_data", resData) // } // // UPCC数据使用查询接口- 200 // func SimUPCCdata(c *gin.Context) { // type Param struct { // Iccid string `json:"iccid"` // ChildOrderId string `json:"childOrderId" ` // } // var param Param // if err := c.ShouldBindJSON(¶m); err != nil { // c.Error(errors.New("缺少参数!")) // return // } // err := utils.ValidateStruct(param) // if err != nil { // c.Error(err) // return // } // data, err := pkgSim.GetSimUPCCdata(param.Iccid, param.ChildOrderId) // if err != nil { // c.Error(err) // return // } // list := gjson.GetBytes(data.Bytes(), "historyQuota").Array() // resData := make([]interface{}, len(list)) // for i, item := range list { // resData[i] = item.Value() // } // c.Set("res_data", resData) // } // // 流量包提前释放接口:提前终止一张或多张已激活的SIM卡的资费计划。 // func SimRelease(c *gin.Context) { // type Param struct { // IccIdList []pkgSim.SimIccidPackage `json:"iccidPackageList" validate:"required"` // } // var param Param // if err := c.ShouldBindJSON(¶m); err != nil { // c.Error(errors.New("缺少参数!")) // return // } // if len(param.IccIdList) == 0 { // c.Error(errors.New("iccIdList不能为空")) // return // } // accessToken, err := pkgSim.GetSimToken() // if err != nil { // c.Error(err) // return // } // fmt.Println(accessToken) // data, err := pkgSim.GetSimStop(param.IccIdList, accessToken) // if err != nil { // c.Error(err) // return // } // list := gjson.GetBytes(data.Bytes(), "errorList").Array() // resData := make([]interface{}, len(list)) // for i, item := range list { // resData[i] = item.Value() // } // c.Set("res_data", resData) // } // // 通道取消订阅:只有通道可以调用未订阅的接口 // func SimUnsubscribe(c *gin.Context) { // var param pkgSim.SimUnsubscribe // if err := c.ShouldBindJSON(¶m); err != nil { // c.Error(errors.New("缺少参数!")) // return // } // err := utils.ValidateStruct(param) // if err != nil { // c.Error(err) // return // } // // 获取simToken // simToken, err := pkgSim.GetSimToken() // if err != nil { // c.Error(err) // return // } // param.AccessToken = simToken // data, err := pkgSim.GetSimUnsubscribe(param) // if err != nil { // c.Error(err) // return // } // c.Set("res_data", data) // } // // 查询SIM卡信息接口 // func SimInfo(c *gin.Context) { // var param []pkgSim.SimInfo // if err := c.ShouldBindJSON(¶m); err != nil { // c.Error(errors.New("缺少参数!")) // return // } // if len(param) == 0 { // c.Error(errors.New("缺少参数")) // return // } // data, err := pkgSim.GetSimInfo(param) // if err != nil { // c.Error(err) // return // } // list := gjson.GetBytes(data.Bytes(), "himsis").Array() // resData := make([]interface{}, len(list)) // for i, item := range list { // resData[i] = item.Value() // } // c.Set("res_data", resData) // }