From f64dd9f191dff341b4eb430d7bacc44a3db9a279 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期五, 04 三月 2022 10:12:45 +0800
Subject: [PATCH] fix nil

---
 service/msgPush.go |  150 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 139 insertions(+), 11 deletions(-)

diff --git a/service/msgPush.go b/service/msgPush.go
index 2bba79f..d07d3de 100644
--- a/service/msgPush.go
+++ b/service/msgPush.go
@@ -186,6 +186,7 @@
 			"notification": {
 				"title": title,
 				"body": msg,
+				"big_text": msg,
 				"click_type": "intent",
 				"intent": intent,
 			},
@@ -193,7 +194,7 @@
 	}
 	iosPush := map[string]interface{}{
 		"type":"notify",
-		"payload":"鑲茶嫳涓鍋滆溅",
+		"payload": "鑲茶嫳涓鍋滆溅",
 		"aps":map[string]interface{}{
 			"alert":map[string]string{
 				"title": title,
@@ -261,6 +262,9 @@
 
 //瀵瑰凡娉ㄥ唽鐨勭敤鎴疯繘琛屾秷鎭帹閫併�傝皟鐢ㄦ鎺ュ彛鍓嶉渶璋冪敤鍒涘缓娑堟伅鎺ュ彛璁剧疆娑堟伅鍐呭
 func PushByAlias(title string, msg string, isTest bool) (bool, error, []string) {
+	if !isPushOpen() {
+		return false,errors.New("鎺ㄩ�佸紑鍏冲凡鍏抽棴"),nil
+	}
 	var aliasArr []string
 
 	pushUserM := make(map[string]string)
@@ -425,6 +429,9 @@
 }
 
 func NightPush(title string, msg string) (bool, error, []string, []string) {
+	if !isPushOpen() {
+		return false,errors.New("鎺ㄩ�佸紑鍏冲凡鍏抽棴"),nil,nil
+	}
 	var aliasArr []string
 	var carOwners []string
 
@@ -450,6 +457,20 @@
 			}
 		}
 	}
+	//澶滈棿鏌愪簺棰嗗鐨勮溅鍙互鍋滃湪杞﹀簱鍐�
+	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("")
@@ -458,15 +479,24 @@
 		if sn.State == 1 { //杞﹀皻鍦ㄥ仠杞﹀満鐨勮溅鐗�
 			inCnPlateNo := preDealPlateNo(sn.PlateNo)
 			if inCnPlateNo != "" {
-				if personId,ok := carPersonM[inCnPlateNo];ok {
-					if phoneNum,ok := pushUserM[personId]; ok {
-						if uc.Exist(phoneNum) {
-							aliasArr = append(aliasArr, phoneNum)
+				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, v.PersonName)
+						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+"()")
+						}
 					}
 				}
 			}
@@ -488,15 +518,104 @@
 	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) (bool, error, []string) {
+func Push2Manager(title string, msg string, isTest bool) (bool, error, []string) {
+	if !isPushOpen() {
+		return false,errors.New("鎺ㄩ�佸紑鍏冲凡鍏抽棴"),nil
+	}
 	if len(msg) > 256 {
 		fmt.Println("澶滈棿鍋滅暀杞﹀お澶氾紝message:", msg)
 
 		r := []rune(msg)
 		msg = string(r[:125])+"..."
 	}
-	managers := beego.AppConfig.String("nightManagerPhones")
+	managers := ""
+	if isTest {
+		managers = beego.AppConfig.String("testPushPhones")
+	} else {
+		managers = beego.AppConfig.String("nightManagerPhones")
+	}
 	if managers == "" {
 		return false, errors.New("澶滈棿鎺ㄩ�佺鐞嗗憳鎵嬫満鍙锋湭閰嶇疆"), []string{}
 	}
@@ -514,6 +633,15 @@
 
 	b,e := doPush(taskId, managerArr)
 	return b,e, managerArr
+}
+
+func isPushOpen() bool {
+	b, err := beego.AppConfig.Bool("pushOpen")
+	fmt.Println("pushOpen:", b, "err:", err)
+	if err != nil {
+		return false
+	}
+	return b
 }
 
 /*
@@ -642,4 +770,4 @@
 		return &t, nil
 	}
 	return nil, errors.New("鑾峰彇unipush骞冲彴token澶辫触")
-}
\ No newline at end of file
+}

--
Gitblit v1.8.0