From bacb4055a9919da5dceb2229d45a740ffb032e84 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Fri, 3 Sep 2021 17:27:21 +0800 Subject: [PATCH] aa --- business/jxutils/secretNumber/secretNum.go | 129 ++++++++++++++++++--- 1 file changed, 116 insertions(+), 13 deletions(-) diff --git a/business/jxutils/secretNumber/secretNum.go b/business/jxutils/secretNumber/secretNum.go index 6263daa87..c5b8dcb81 100644 --- a/business/jxutils/secretNumber/secretNum.go +++ b/business/jxutils/secretNumber/secretNum.go @@ -2,13 +2,14 @@ package secretNumber import ( "fmt" - "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/baseapi/utils/errlist" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/globals/api" "github.com/alibabacloud-go/dyplsapi-20170525/client" "github.com/alibabacloud-go/tea/tea" + "strings" ) //查询线上可购号码余量 @@ -20,11 +21,11 @@ func QuerySecretNoRemain(city string) (b bool, err error) { if err != nil { return false, err } - if *result.Body.Code != "OK" { - err = fmt.Errorf(*result.Body.Message) + if tea.StringValue(result.Body.Code) != "OK" { + err = fmt.Errorf(tea.StringValue(result.Body.Message)) return false, err } - if *result.Body.SecretRemainDTO.Amount > 0 { + if tea.Int64Value(result.Body.SecretRemainDTO.Amount) > 0 { return true, nil } return false, err @@ -40,11 +41,11 @@ func BuySecretNo(ctx *jxcontext.Context, poolKey, city string) (err error) { if err != nil { return err } - if *result.Body.Code != "OK" { - err = fmt.Errorf(*result.Body.Message) + if tea.StringValue(result.Body.Code) != "OK" { + err = fmt.Errorf(tea.StringValue(result.Body.Message)) return err } - if secretNo := *result.Body.SecretBuyInfoDTO.SecretNo; secretNo != "" { + if secretNo := tea.StringValue(result.Body.SecretBuyInfoDTO.SecretNo); secretNo != "" { secretNumber := &model.SecretNumber{ City: city, Number: secretNo, @@ -67,26 +68,128 @@ func BindAxb(ctx *jxcontext.Context, secretNumber, numberA, numberB, expiration if err != nil { return err } - if *result.Body.Code != "OK" { - err = fmt.Errorf(*result.Body.Message) + if tea.StringValue(result.Body.Code) != "OK" { + err = fmt.Errorf(tea.StringValue(result.Body.Message)) return err } return err } //查询绑定唯一标识SubsId -func QuerySubsId(poolKey, secretNumber string) (err error) { +func QuerySubsId(poolKey, secretNumber string) (subIDs string, err error) { result, err := api.SecretNumClient.QuerySubsId(&client.QuerySubsIdRequest{ PoolKey: tea.String(poolKey), PhoneNoX: tea.String(secretNumber), }) + if err != nil { + return "", err + } + if tea.StringValue(result.Body.Code) != "OK" { + err = fmt.Errorf(tea.StringValue(result.Body.Message)) + return "", err + } + //多个绑定关系是返回的逗号间隔的 + if tea.StringValue(result.Body.SubsId) != "" { + return *result.Body.SubsId, nil + } + return "", err +} + +type QuerySubscriptionDetailResult struct { + Status int `json:"status"` //该绑定关系的状态。其中:0:已失效。1:生效中。 + NumberA string `json:"numberA"` + NumberB string `json:"numberB"` + NumberX string `json:"numberX"` + GmtCreate string `json:"gmtCreate"` //绑定时间 + ExpireDate string `json:"expireDate"` //绑定过期时间 + SubsID string `json:"subsID"` //绑定ID + PoolKey string `json:"poolKey"` +} + +//查询号码的绑定关系 +func QuerySubscriptionDetail(poolKey, phoneNoX string) (querySubscriptionDetailResult []*QuerySubscriptionDetailResult, err error) { + subIDs, err := QuerySubsId(poolKey, phoneNoX) + if err != nil { + return querySubscriptionDetailResult, fmt.Errorf("查询号码绑定关系ID错误!err: %v", err) + } + errList := errlist.New() + for _, v := range strings.Split(subIDs, ",") { + result, err2 := api.SecretNumClient.QuerySubscriptionDetail(&client.QuerySubscriptionDetailRequest{ + PoolKey: tea.String(poolKey), + SubsId: tea.String(v), + PhoneNoX: tea.String(phoneNoX), + }) + if err2 != nil { + errList.AddErr(err2) + continue + } + if tea.StringValue(result.Body.Code) != "OK" { + errList.AddErr(fmt.Errorf(tea.StringValue(result.Body.Message))) + continue + } + dto := result.Body.SecretBindDetailDTO + r := &QuerySubscriptionDetailResult{ + Status: int(tea.Int64Value(dto.Status)), + NumberA: tea.StringValue(dto.PhoneNoA), + NumberB: tea.StringValue(dto.PhoneNoB), + NumberX: tea.StringValue(dto.PhoneNoX), + GmtCreate: tea.StringValue(dto.GmtCreate), + ExpireDate: tea.StringValue(dto.ExpireDate), + SubsID: v, + PoolKey: poolKey, + } + querySubscriptionDetailResult = append(querySubscriptionDetailResult, r) + } + return querySubscriptionDetailResult, err +} + +//修改绑定关系 +//修改哪个字段就传哪个字段 +//updateNoA:修改A号码。 +//updateNoB:修改B号码。 +//updateExpire:修改绑定关系有效期。 +func UpdateSubscription(poolKey, subsId, phoneNoX, phoneNoA, phoneNoB, expiration string) (err error) { + params := &client.UpdateSubscriptionRequest{ + PoolKey: tea.String(poolKey), + SubsId: tea.String(subsId), + PhoneNoX: tea.String(phoneNoX), + } + if phoneNoA != "" { + params.OperateType = tea.String("updateNoA") + params.PhoneNoA = tea.String(phoneNoA) + } + if phoneNoB != "" { + params.OperateType = tea.String("updateNoB") + params.PhoneNoB = tea.String(phoneNoB) + } + if expiration != "" { + params.OperateType = tea.String("updateExpire") + params.Expiration = tea.String(expiration) + } + result, err := api.SecretNumClient.UpdateSubscription(params) if err != nil { return err } - if *result.Body.Code != "OK" { - err = fmt.Errorf(*result.Body.Message) + if tea.StringValue(result.Body.Code) != "OK" { + err = fmt.Errorf(tea.StringValue(result.Body.Message)) + return err + } + return err +} + +//解除号码的绑定关系 +func UnbindSubscription(poolKey, subsId, phoneNoX string) (err error) { + result, err := api.SecretNumClient.UnbindSubscription(&client.UnbindSubscriptionRequest{ + PoolKey: tea.String(poolKey), + SubsId: tea.String(subsId), + SecretNo: tea.String(phoneNoX), + }) + if err != nil { + return err + } + if tea.StringValue(result.Body.Code) != "OK" { + err = fmt.Errorf(tea.StringValue(result.Body.Message)) return err } - fmt.Println(utils.Format4Output(result.Body, true)) return err }