From 62f5b98dc2c8084bcab1cf91edf7923d84b56c1c Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期一, 17 八月 2020 19:57:45 +0800 Subject: [PATCH] fix ret --- service/msgPush.go | 134 ++++++++++++++++++++++++++------------------ 1 files changed, 79 insertions(+), 55 deletions(-) diff --git a/service/msgPush.go b/service/msgPush.go index a74701f..27d1201 100644 --- a/service/msgPush.go +++ b/service/msgPush.go @@ -46,45 +46,65 @@ }() } -//瑙g粦鎵�鏈変笌璇ュ埆鍚嶇粦瀹氱殑cid -//func UnbindAlias(alias string) (bool, error) { -// 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 + "/user/alias/"+alias -// header := map[string]string { -// "token": token, -// } -// b,err := util.DoDeleteRequest(url, util.CONTENT_TYPE_UTF8_JSON, nil, header) -// if err !=nil { -// fmt.Println("DoDelete 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 { //瑙g粦鎴愬姛 -// return true, nil -// } else if result.Code == 10001 { //token杩囨湡 -// if retryTimes <=3 { -// newToken, err := RefreshToken() -// if err == nil { -// updateToken(newToken) -// retryTimes++ -// goto ReTry -// } -// } -// } -// return false, errors.New(result.Msg) -//} +//鎵归噺瑙g粦鍒悕 +func UnbindAlias(cid string) (bool, error) { + var uc models.UserClient + ucList := uc.GetByCid(cid) + if ucList ==nil { + return true,errors.New("ucList is nil") + } + var aliasArr []string + for _,als := range ucList { + aliasArr = append(aliasArr, als.PhoneNum) + } + 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 + "/user/alias" + header := map[string]string { + "token": token, + } + caArr := make([]map[string]string, 0) + for _,as := range aliasArr { + caArr = append(caArr, map[string]string{ + "cid": cid, + "alias": as, + }) + } + + reqBody := map[string]interface{}{ + "data_list": caArr, + } + b,err := util.DoDeleteRequest(url, util.CONTENT_TYPE_UTF8_JSON, reqBody, header) + if err !=nil { + fmt.Println("DoDelete 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 { //瑙g粦鎴愬姛 + return true, nil + } else if result.Code == 10001 { //token杩囨湡 + if retryTimes <=3 { + newToken, err := RefreshToken() + if err == nil { + updateToken(newToken) + retryTimes++ + goto ReTry + } + } + } + return false, errors.New(result.Msg) +} //涓�涓埆鍚嶆渶澶氬厑璁哥粦瀹�10涓猚id func BindAlias(cid, alias string) (bool, error) { @@ -226,7 +246,7 @@ } //瀵瑰凡娉ㄥ唽鐨勭敤鎴疯繘琛屾秷鎭帹閫併�傝皟鐢ㄦ鎺ュ彛鍓嶉渶璋冪敤鍒涘缓娑堟伅鎺ュ彛璁剧疆娑堟伅鍐呭 -func PushByAlias(title string, msg string) (bool, error) { +func PushByAlias(title string, msg string) (bool, error, []string) { var aliasArr []string pushUserM := make(map[string]string) @@ -238,7 +258,7 @@ } } if len(pushUserM) == 0 { - return true,errors.New("len(pushUserM) == 0") + return false,errors.New("len(pushUserM) == 0"),aliasArr } carPersonM := make(map[string]string) //浠ヨ溅鐗屽彿涓簁ey锛寁alue鏄痟ik鐨刾ersonId csv := NewCarService() @@ -258,25 +278,25 @@ } } } - fmt.Println("len(carPersonM):", len(carPersonM), "len(pushUserM):", len(pushUserM)) + var uc models.UserClient for _,personId := range carPersonM { if phoneNum,ok := pushUserM[personId]; ok { //姝や汉宸叉敞鍐屽埌绯荤粺,骞朵笖杞︿笉鍦ㄥ仠杞﹀簱鍐� if _,in := delPersonIdM[personId];!in { - aliasArr = append(aliasArr, phoneNum) + if uc.Exist(phoneNum) { + aliasArr = append(aliasArr, phoneNum) + } } } } lenAS := len(aliasArr) if lenAS == 0 { - return true, errors.New("aliasArr is empty") - } else { - fmt.Println("PushByAlias arr:", aliasArr) + return false, errors.New("aliasArr is empty"),aliasArr } cResult, taskId, ce := createPushMsg(title, msg) fmt.Println("createPushMsg taskId:", taskId, "cResult:",cResult, "err:", ce) if !cResult { - return false, errors.New("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�") + return false, errors.New("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�"),aliasArr } //alias 鍗曟鎺ㄩ�侀暱搴︿笂闄愭槸200 @@ -310,10 +330,10 @@ } } if isSuccess { - return true, nil + return true, nil,aliasArr } - return false, errors.New("鎺ㄩ�佸け璐�") + return false, errors.New("鎺ㄩ�佸け璐�"),aliasArr } func doPush(taskId string, aliasArr []string) (bool,error) { @@ -364,7 +384,7 @@ return false, errors.New("鎺ㄩ�佸け璐�") } -func NightPush(title string, msg string) (bool, error) { +func NightPush(title string, msg string) (bool, error, []string) { var aliasArr []string pushUserM := make(map[string]string) @@ -376,7 +396,7 @@ } } if len(pushUserM) == 0 { - return true,nil + return true,nil, aliasArr } carPersonM := make(map[string]string) csv := NewCarService() @@ -387,11 +407,14 @@ } } spaceNos := csv.FindSpaceNo("") + var uc models.UserClient for _,sn := range spaceNos { if sn.State == 1 && sn.PlateNo != "" { //宸茬粡鎶婅溅鍋滃埌鍋滆溅鍦虹殑杞︿富锛屼笉鍐嶆帹閫佹秷鎭� if personId,ok := carPersonM[sn.PlateNo];ok { if phoneNum,ok := pushUserM[personId]; ok { //姝や汉宸叉敞鍐屽埌绯荤粺,骞朵笖杞︿笉鍦ㄥ仠杞﹀簱鍐� - aliasArr = append(aliasArr, phoneNum) + if uc.Exist(phoneNum) { + aliasArr = append(aliasArr, phoneNum) + } } } } @@ -399,16 +422,17 @@ if len(aliasArr) == 0 { fmt.Println("娌℃湁鎺ㄩ�佺洰鏍�,aliasArr is empty") - return true, nil + return true, nil, aliasArr } cResult, taskId, ce := createPushMsg(title, msg) if !cResult { fmt.Println("createPushMsg taskId:", taskId, "err:", ce) - return false, errors.New("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�") + return false, errors.New("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�"), aliasArr } - return doPush(taskId, aliasArr) + b,e := doPush(taskId, aliasArr) + return b,e, aliasArr } func PushAll(title string, msg string) (bool,error) { -- Gitblit v1.8.0