From ef4003ddd514c88af0684c3702c6e5cfffa5f90b Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期二, 11 八月 2020 17:00:19 +0800 Subject: [PATCH] fix isMime and push by alias add limit 200 by unipush api --- service/msgPush.go | 89 ++++++++++++++++++++------------------------ 1 files changed, 41 insertions(+), 48 deletions(-) diff --git a/service/msgPush.go b/service/msgPush.go index 9bb66a1..a74701f 100644 --- a/service/msgPush.go +++ b/service/msgPush.go @@ -266,7 +266,8 @@ } } } - if len(aliasArr) == 0 { + lenAS := len(aliasArr) + if lenAS == 0 { return true, errors.New("aliasArr is empty") } else { fmt.Println("PushByAlias arr:", aliasArr) @@ -278,6 +279,44 @@ return false, errors.New("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�") } + //alias 鍗曟鎺ㄩ�侀暱搴︿笂闄愭槸200 + pushTime := 1 + if lenAS > 200 { + pushTime = lenAS / 200 + if lenAS % 200 >0 { + pushTime++ + } + } + + isSuccess := false + for i:=0;i<pushTime;i++ { + var curAliasArr []string + start := i*200 + end := (i+1)*200 -1 + if i<pushTime-1 { + curAliasArr = aliasArr[start:end] + } else { + //鍙栧墿浣欐墍鏈� + curAliasArr = aliasArr[start:] + } + if len(curAliasArr) >0 { + flag, e := doPush(taskId, curAliasArr) + if e != nil { + fmt.Println("doPush err:", e) + } + if flag { + isSuccess = true + } + } + } + if isSuccess { + return true, nil + } + + return false, errors.New("鎺ㄩ�佸け璐�") +} + +func doPush(taskId string, aliasArr []string) (bool,error) { appId := beego.AppConfig.String("pushAppId") baseUrl := beego.AppConfig.String("pushBaseUrl") + appId retryTimes := 0 @@ -322,7 +361,6 @@ } else { fmt.Println("鎺ㄩ�佺粨鏋�:", result) } - return false, errors.New("鎺ㄩ�佸け璐�") } @@ -370,52 +408,7 @@ return false, errors.New("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�") } - appId := beego.AppConfig.String("pushAppId") - baseUrl := beego.AppConfig.String("pushBaseUrl") + appId - retryTimes := 0 -ReTry: - token := getCacheToken() - if token == "" { - return false, errors.New("token is nil") - } - url := baseUrl+"/push/list/alias" - reqBody := map[string]interface{} { - "audience":map[string]interface{}{ - "alias": aliasArr, - }, - "taskid": taskId, - "is_async": true, - } - header := map[string]string { - "token": token, - } - b, err := util.DoPostRequest(url, util.CONTENT_TYPE_UTF8_JSON, reqBody, nil, header) - if err !=nil { - fmt.Println("DoPost err:", err) - return false, err - } - var result PushResult - err = json.Unmarshal(b, &result) - if err != nil { - fmt.Println("unmarshal err:", err) - return false, err - } - if result.Code == 0 { - return true, nil - } else if result.Code == 10001 { //token杩囨湡 - if retryTimes <=3 { - newToken, err := RefreshToken() - if err == nil { - updateToken(newToken) - retryTimes++ - goto ReTry - } - } - } else { - fmt.Println("鎺ㄩ�佺粨鏋�:", result) - } - - return false, errors.New("鎺ㄩ�佸け璐�") + return doPush(taskId, aliasArr) } func PushAll(title string, msg string) (bool,error) { -- Gitblit v1.8.0