From f58d6c7e121dc6a16f6b1e12e5beba1e6ce1b992 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 08 九月 2020 15:11:05 +0800
Subject: [PATCH] Push2Manager add isTest

---
 service/msgPush.go |  510 +++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 370 insertions(+), 140 deletions(-)

diff --git a/service/msgPush.go b/service/msgPush.go
index f13e9a2..da1455a 100644
--- a/service/msgPush.go
+++ b/service/msgPush.go
@@ -7,6 +7,7 @@
 	"errors"
 	"fmt"
 	"github.com/astaxie/beego"
+	"strings"
 	"sync"
 	"time"
 )
@@ -46,45 +47,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) {
@@ -160,6 +181,28 @@
 	}
 	url := baseUrl+"/push/list/message"
 	intent := "intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=uni.UNIEDF0B5C/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title="+title+";S.content="+msg+";S.payload=test;end"
+	androidPush := map[string]map[string]map[string]string {
+		"ups": {
+			"notification": {
+				"title": title,
+				"body": msg,
+				"big_text": msg,
+				"click_type": "intent",
+				"intent": intent,
+			},
+		},
+	}
+	iosPush := map[string]interface{}{
+		"type":"notify",
+		"payload": "鑲茶嫳涓鍋滆溅",
+		"aps":map[string]interface{}{
+			"alert":map[string]string{
+				"title": title,
+				"body": msg,
+			},
+			"content-available":0,
+		},
+	}
 	reqBody := map[string]interface{} {
 		"request_id": time.Now().Format("20060102150405") + util.GenValidateCode(6),
 		"settings":map[string]int {
@@ -173,17 +216,9 @@
 				"intent": intent,
 			},
 		},
-		"push_channel": map[string]map[string]map[string]map[string]string {
-			"android": {
-				"ups": {
-					"notification": {
-						"title": title,
-						"body": msg,
-						"click_type": "intent",
-						"intent": intent,
-					},
-				},
-			},
+		"push_channel": map[string]interface{} {
+			"android": androidPush,
+			"ios":iosPush,
 		},
 	}
 	header := map[string]string {
@@ -226,7 +261,7 @@
 }
 
 //瀵瑰凡娉ㄥ唽鐨勭敤鎴疯繘琛屾秷鎭帹閫併�傝皟鐢ㄦ鎺ュ彛鍓嶉渶璋冪敤鍒涘缓娑堟伅鎺ュ彛璁剧疆娑堟伅鍐呭
-func PushByAlias(title string, msg string) (bool, error) {
+func PushByAlias(title string, msg string, isTest bool) (bool, error, []string) {
 	var aliasArr []string
 
 	pushUserM := make(map[string]string)
@@ -238,40 +273,111 @@
 		}
 	}
 	if len(pushUserM) == 0 {
-		return true,nil
+		return false,errors.New("len(pushUserM) == 0"),aliasArr
 	}
-	carPersonM := make(map[string]string)
-	var csv CarService
+	carPersonM := make(map[string]string) //浠ヨ溅鐗屽彿涓簁ey锛寁alue鏄痟ik鐨刾ersonId
+	csv := NewCarService()
 	carPersons := csv.GetVehicleListByPerson("")
 	if carPersons != nil {
 		for _, cp := range carPersons {
-			carPersonM[cp.PlateNo] = cp.PersonId
-		}
-	}
-	spaceNos := csv.FindSpaceNo("")
-	for _,sn := range spaceNos {
-		if sn.State == 1 && sn.PlateNo != "" { //宸茬粡鎶婅溅鍋滃埌鍋滆溅鍦虹殑杞︿富锛屼笉鍐嶆帹閫佹秷鎭�
-			if _,ok := carPersonM[sn.PlateNo];ok {
-				delete(carPersonM, sn.PlateNo)
+			ncPlateNo := preDealPlateNo(cp.PlateNo) //鍘绘帀姹夊瓧锛孌鍜�0鏇挎崲鎴�*
+			if ncPlateNo != "" {
+				carPersonM[ncPlateNo] = cp.PersonId
 			}
 		}
 	}
-	for _,personId := range carPersonM {
-		if phoneNum,ok := pushUserM[personId]; ok { //姝や汉宸叉敞鍐屽埌绯荤粺,骞朵笖杞︿笉鍦ㄥ仠杞﹀簱鍐�
-			aliasArr = append(aliasArr, phoneNum)
+	delPersonIdM := make(map[string]string)
+	spaceNos := csv.FindSpaceNo("")
+	for _,sn := range spaceNos {
+		if sn.State == 1 && sn.PlateNo != "" { //宸茬粡鎶婅溅鍋滃埌鍋滆溅鍦虹殑杞︿富锛屼笉鍐嶆帹閫佹秷鎭�
+			realPlateNo := preDealPlateNo(sn.PlateNo)
+			if realPlateNo != "" {
+				if pId,ok := carPersonM[realPlateNo];ok {
+					delPersonIdM[pId] = pId
+					delete(carPersonM, realPlateNo)
+				}
+			}
 		}
 	}
-	if len(aliasArr) == 0 {
-		fmt.Println("娌℃湁鎺ㄩ�佺洰鏍�,aliasArr is empty")
-		return true, nil
+	var uc models.UserClient
+	for _,personId := range carPersonM {
+		if phoneNum,ok := pushUserM[personId]; ok { //姝や汉宸叉敞鍐屽埌绯荤粺,骞朵笖杞︿笉鍦ㄥ仠杞﹀簱鍐�
+			if _,in := delPersonIdM[personId];!in {
+				if uc.Exist(phoneNum) {
+					aliasArr = append(aliasArr, phoneNum)
+				}
+			}
+		}
+	}
+	lenAS := len(aliasArr)
+	if  lenAS == 0 {
+		return false, errors.New("娌℃湁鎺ㄩ�佺洰鏍囷紝aliasArr is empty"),aliasArr
+	}
+	if isTest {
+		//鍙粰鍐呴儴鎵嬫満鍙锋帹
+		testPhones := beego.AppConfig.String("testPushPhones")
+		if testPhones == "" {
+			return false, errors.New("test push aliasArr is empty"),aliasArr
+		}
+		aliasArr = strings.Split(testPhones, ",")
 	}
 
 	cResult, taskId, ce := createPushMsg(title, msg)
+	fmt.Println("createPushMsg taskId:", taskId, "cResult:",cResult, "err:", ce)
 	if !cResult {
-		fmt.Println("createPushMsg taskId:", taskId, "err:", ce)
-		return false, errors.New("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�")
+		return false, errors.New("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�"),aliasArr
 	}
 
+	//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,aliasArr
+	}
+
+	return false, errors.New("鎺ㄩ�佸け璐�"),aliasArr
+}
+
+//棰勫鐞嗚溅鐗屽彿锛屽幓闄ら涓眽瀛楋紝浠ュ強蹇界暐D鍜�0
+func preDealPlateNo(pn string) string {
+	if pn != "" {
+		r := []rune(pn)
+		ncStr := string(r[1:])
+		newPlateNo := strings.ReplaceAll(ncStr, "D", "*")
+		newPlateNo = strings.ReplaceAll(newPlateNo, "0", "*")
+		return newPlateNo
+	}
+	return ""
+}
+
+func doPush(taskId string, aliasArr []string) (bool,error) {
 	appId := beego.AppConfig.String("pushAppId")
 	baseUrl := beego.AppConfig.String("pushBaseUrl") + appId
 	retryTimes := 0
@@ -286,7 +392,7 @@
 			"alias": aliasArr,
 		},
 		"taskid": taskId,
-		"is_async": true,
+		"is_async": false,
 	}
 	header := map[string]string {
 		"token": token,
@@ -316,12 +422,12 @@
 	} else {
 		fmt.Println("鎺ㄩ�佺粨鏋�:", result)
 	}
-
 	return false, errors.New("鎺ㄩ�佸け璐�")
 }
 
-func NightPush(title string, msg string) (bool, error) {
+func NightPush(title string, msg string) (bool, error, []string, []string) {
 	var aliasArr []string
+	var carOwners []string
 
 	pushUserM := make(map[string]string)
 	var userE models.User
@@ -332,22 +438,59 @@
 		}
 	}
 	if len(pushUserM) == 0 {
-		return true,nil
+		return false, errors.New("len(pushUserM) == 0"), aliasArr, carOwners
 	}
 	carPersonM := make(map[string]string)
-	var csv CarService
+	csv := NewCarService()
 	carPersons := csv.GetVehicleListByPerson("")
 	if carPersons != nil {
 		for _, cp := range carPersons {
-			carPersonM[cp.PlateNo] = cp.PersonId
+			cnPlateNo := preDealPlateNo(cp.PlateNo)
+			if cnPlateNo != "" {
+				carPersonM[cnPlateNo] = cp.PersonId
+			}
 		}
 	}
+	//澶滈棿鏌愪簺棰嗗鐨勮溅鍙互鍋滃湪杞﹀簱鍐�
+	var vipPlateNoArr []string
+	vipArr := strings.Split(beego.AppConfig.String("nightVipPlateNos"), ",")
+	if vipArr != nil && len(vipArr) >0 {
+		for _,po := range vipArr {
+			if po != "" {
+				cnPo := preDealPlateNo(po)
+				if cnPo != "" {
+					vipPlateNoArr = append(vipPlateNoArr, cnPo)
+				}
+			}
+		}
+	}
+
+	hikPersonMap := csv.GetHikPersonMap()
+
 	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 sn.State == 1 { //杞﹀皻鍦ㄥ仠杞﹀満鐨勮溅鐗�
+			inCnPlateNo := preDealPlateNo(sn.PlateNo)
+			if inCnPlateNo != "" {
+				if !isVipCar(inCnPlateNo, vipPlateNoArr) {
+					if personId,ok := carPersonM[inCnPlateNo];ok {
+						if phoneNum,ok := pushUserM[personId]; ok {
+							if uc.Exist(phoneNum) {
+								aliasArr = append(aliasArr, phoneNum)
+							}
+						}
+
+						if v,ex := hikPersonMap[personId]; ex {
+							carOwners = append(carOwners, sn.PlateNo+"("+v.PersonName+")")
+						}
+					} else { //鎵句笉鍒拌溅涓伙紝鍗宠涓轰复鏃惰溅锛屽皢杞︾墝浣滀负杞︿富濮撳悕鎺ㄩ��
+						if sn.PlateNo == "鏃犺溅鐗�" {
+							carOwners = append(carOwners, sn.PlateNo)
+						} else {
+							carOwners = append(carOwners, sn.PlateNo+"()")
+						}
+					}
 				}
 			}
 		}
@@ -355,63 +498,134 @@
 
 	if len(aliasArr) == 0 {
 		fmt.Println("娌℃湁鎺ㄩ�佺洰鏍�,aliasArr is empty")
-		return true, nil
+		return false, errors.New("娌℃湁鎺ㄩ�佺洰鏍�,aliasArr is empty"), aliasArr, carOwners
 	}
 
 	cResult, taskId, ce := createPushMsg(title, msg)
 	if !cResult {
 		fmt.Println("createPushMsg taskId:", taskId, "err:", ce)
-		return false, errors.New("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�")
+		return false, errors.New("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�"), aliasArr, carOwners
 	}
 
-	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("鎺ㄩ�佸け璐�")
+	b,e := doPush(taskId, aliasArr)
+	return b,e, aliasArr, carOwners
 }
 
+
+//姝ゆ柟娉曞仛娴嬭瘯浣跨敤
+//鑾峰彇鍋滅暀鍦ㄨ溅搴撳唴杞︿富鐨勫鍚嶏紝鎵句笉鍒板鍚嶈繑鍥炶繖鐗�
+func GetLeftCarOwners() []string {
+	var carOwners []string
+	pushUserM := make(map[string]string)
+	var userE models.User
+	allUsers, _ := userE.GetAllUsers()
+	if allUsers != nil {
+		for _,u := range allUsers {
+			pushUserM[u.Id] = u.PhoneNum
+		}
+	}
+
+	carPersonM := make(map[string]string)
+	csv := NewCarService()
+	carPersons := csv.GetVehicleListByPerson("")
+	if carPersons != nil {
+		for _, cp := range carPersons {
+			cnPlateNo := preDealPlateNo(cp.PlateNo)
+			if cnPlateNo != "" {
+				carPersonM[cnPlateNo] = cp.PersonId
+			}
+		}
+	}
+	//澶滈棿鏌愪簺棰嗗鐨勮溅鍙互鍋滃湪杞﹀簱鍐�
+	var vipPlateNoArr []string
+	vipArr := strings.Split(beego.AppConfig.String("nightVipPlateNos"), ",")
+	if vipArr != nil && len(vipArr) >0 {
+		for _,po := range vipArr {
+			if po != "" {
+				cnPo := preDealPlateNo(po)
+				if cnPo != "" {
+					vipPlateNoArr = append(vipPlateNoArr, cnPo)
+				}
+			}
+		}
+	}
+
+	hikPersonMap := csv.GetHikPersonMap()
+
+	spaceNos := csv.FindSpaceNo("")
+	for _,sn := range spaceNos {
+		if sn.State == 1 { //杞﹀皻鍦ㄥ仠杞﹀満鐨勮溅鐗�
+			inCnPlateNo := preDealPlateNo(sn.PlateNo)
+			if inCnPlateNo != "" {
+				if !isVipCar(inCnPlateNo, vipPlateNoArr) {
+					if personId,ok := carPersonM[inCnPlateNo];ok {
+
+						if v,ex := hikPersonMap[personId]; ex {
+							carOwners = append(carOwners, sn.PlateNo+"("+v.PersonName+")")
+						}
+					} else { //鎵句笉鍒拌溅涓伙紝鍗宠涓轰复鏃惰溅锛屽皢杞︾墝浣滀负杞︿富濮撳悕鎺ㄩ��
+						if sn.PlateNo == "鏃犺溅鐗�" {
+							carOwners = append(carOwners, sn.PlateNo)
+						} else {
+							carOwners = append(carOwners, sn.PlateNo+"()")
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return carOwners
+}
+
+//vip杞︿富锛屼笉鎺ユ敹璇风寮�鐨勯�氱煡锛屼篃涓嶉�氱煡绠$悊鍛樿繖涓溅杩樺湪杞﹀簱鍐�
+func isVipCar(targetPlateNo string, vipPlateNoArr []string) bool {
+	b := false
+	if vipPlateNoArr != nil {
+		for _,v := range vipPlateNoArr {
+			if targetPlateNo == v {
+				b = true
+				break
+			}
+		}
+	}
+	return b
+}
+
+//濡傛灉澶滈棿鏈夌粰杞﹀簱鍐呯殑杞︿富鎺ㄩ�佲�滆灏藉揩椹剁鈥濈殑娑堟伅锛屽垯鍛婄煡绠$悊鍛� 鏈夊摢浜涜溅灏氬仠鍦ㄨ溅搴撳唴
+func Push2Manager(title string, msg string, isTest bool) (bool, error, []string) {
+	if len(msg) > 256 {
+		fmt.Println("澶滈棿鍋滅暀杞﹀お澶氾紝message:", msg)
+
+		r := []rune(msg)
+		msg = string(r[:125])+"..."
+	}
+	managers := ""
+	if isTest {
+		managers = beego.AppConfig.String("testPushPhones")
+	} else {
+		managers = beego.AppConfig.String("nightManagerPhones")
+	}
+	if managers == "" {
+		return false, errors.New("澶滈棿鎺ㄩ�佺鐞嗗憳鎵嬫満鍙锋湭閰嶇疆"), []string{}
+	}
+	managerArr := strings.Split(managers, ",")
+	if len(managerArr) == 0 {
+		fmt.Println("娌℃湁鎺ㄩ�佺洰鏍�,managerArr is empty")
+		return false, errors.New("绠$悊鍛樻墜鏈哄彿鏈厤缃�"), managerArr
+	}
+
+	cResult, taskId, ce := createPushMsg(title, msg)
+	if !cResult {
+		fmt.Println("createPushMsg taskId:", taskId, "err:", ce)
+		return false, errors.New("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�"), managerArr
+	}
+
+	b,e := doPush(taskId, managerArr)
+	return b,e, managerArr
+}
+
+/*
 func PushAll(title string, msg string) (bool,error) {
 	appId := beego.AppConfig.String("pushAppId")
 	baseUrl := beego.AppConfig.String("pushBaseUrl") + appId
@@ -423,6 +637,30 @@
 	}
 	url := baseUrl+"/push/all"
 	intent := "intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=uni.UNIEDF0B5C/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title="+title+";S.content="+msg+";S.payload=test;end"
+	androidPush := map[string]map[string]map[string]string {
+		"ups": {
+			"notification": {
+				"title": title,
+				"body": msg,
+				"click_type": "intent",
+				"intent": intent,
+			},
+		},
+	}
+	iosPush := map[string]interface{}{
+		"type":"notify",
+		"payload":"鑲茶嫳涓鍋滆溅",
+		"aps":map[string]interface{}{
+			"alert":map[string]string{
+				"title": title,
+				"body": msg,
+			},
+			"content-available":0,
+			//"sound":"com.gexin.ios.silence",
+			//"category":"ACTIONABLE",
+		},
+		"auto_badge":"+1",
+	}
 	reqBody := map[string]interface{} {
 		"request_id": time.Now().Format("20060102150405") + util.GenValidateCode(6),
 		"settings":map[string]int {
@@ -437,17 +675,9 @@
 				"intent": intent,
 			},
 		},
-		"push_channel": map[string]map[string]map[string]map[string]string {
-			"android": {
-				"ups": {
-					"notification": {
-						"title": title,
-						"body": msg,
-						"click_type": "intent",
-						"intent": intent,
-					},
-				},
-			},
+		"push_channel": map[string]interface{} {
+			"android": androidPush,
+			"ios":     iosPush,
 		},
 	}
 	header := map[string]string {
@@ -480,7 +710,7 @@
 	}
 
 	return false, errors.New("鎺ㄩ�佸け璐�")
-}
+}*/
 
 func RefreshToken() (*TokenResult,error) {
 	appId := beego.AppConfig.String("pushAppId")

--
Gitblit v1.8.0