From 3e9cf4df58f5d8266e606fff63cb9da1105a4dcf Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期三, 02 九月 2020 11:54:44 +0800
Subject: [PATCH] fix night push,push to manager if car left

---
 service/msgPush.go |   35 ++++++++++++++++++++++++-----------
 controllers/car.go |   21 ++++-----------------
 2 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/controllers/car.go b/controllers/car.go
index 63cf1a7..e552f90 100644
--- a/controllers/car.go
+++ b/controllers/car.go
@@ -103,7 +103,7 @@
 func nightPush(){
 
 	message := fmt.Sprintf("%s 璇峰敖蹇┒鍑哄仠杞﹀満", time.Now().Format("2006-01-02 15:04:05"))
-	b, e, aliasArr := service.NightPush("鑲茶嫳涓鍋滆溅", message)
+	b, e, aliasArr,carOwnNames := service.NightPush("鑲茶嫳涓鍋滆溅", message)
 	//璁板綍鎺ㄩ�佹棩蹇�
 	logE := models.Log{
 		Id: uuid.NewV4().String(),
@@ -119,22 +119,10 @@
 	logE.Insert()
 	fmt.Println("b:", b,"e:",e, "message:", message)
 
-	//濡傛灉鏈夋垚鍔熺粰杩囧杞︾殑杞︿富鎺ㄩ�侀�氱煡锛屽垯灏嗗叿浣撶殑杞︿富淇℃伅鎺ㄩ�佺粰绠$悊鍛�
-	if b {
+	//灏嗗叿浣撶殑杞︿富淇℃伅鎺ㄩ�佺粰绠$悊鍛�
+	if carOwnNames != nil && len(carOwnNames) >0 {
 		//鑾峰彇杞︿富濮撳悕
-		var leftUserNames []string
-		carSv := service.NewCarService()
-		hikPersons := carSv.GetHikPersonList()
-		hikPersonM := make(map[string]string)
-		for _,hikP := range hikPersons {
-			hikPersonM[hikP.PhoneNo] = hikP.PersonName
-		}
-		for _, pushedPhone := range aliasArr {
-			if name,in := hikPersonM[pushedPhone]; in {
-				leftUserNames = append(leftUserNames, name)
-			}
-		}
-		nameStr := strings.Join(leftUserNames, " ")
+		nameStr := strings.Join(carOwnNames, " ")
 		managerMsg := fmt.Sprintf("%s 鏈┒绂昏溅涓�: %s", time.Now().Format("2006-01-02 15:04:05"), nameStr)
 		mb,me, managerArr := service.Push2Manager("鑲茶嫳涓鍋滆溅", nameStr)
 		mLogE := models.Log{
@@ -150,7 +138,6 @@
 		}
 		mLogE.Insert()
 		fmt.Println("mb:", mb, "me:", me, "message:", managerMsg)
-
 	}
 }
 
diff --git a/service/msgPush.go b/service/msgPush.go
index 2da943d..5a4c48e 100644
--- a/service/msgPush.go
+++ b/service/msgPush.go
@@ -424,8 +424,9 @@
 	return false, errors.New("鎺ㄩ�佸け璐�")
 }
 
-func NightPush(title string, msg string) (bool, error, []string) {
+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
@@ -436,24 +437,36 @@
 		}
 	}
 	if len(pushUserM) == 0 {
-		return false, errors.New("len(pushUserM) == 0"), aliasArr
+		return false, errors.New("len(pushUserM) == 0"), aliasArr, carOwners
 	}
 	carPersonM := make(map[string]string)
 	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
+			}
 		}
 	}
+	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 { //姝や汉宸叉敞鍐屽埌绯荤粺,骞朵笖杞︿笉鍦ㄥ仠杞﹀簱鍐�
-					if uc.Exist(phoneNum) {
-						aliasArr = append(aliasArr, phoneNum)
+		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 v,ex := hikPersonMap[personId]; ex {
+						carOwners = append(carOwners, v.PersonName)
 					}
 				}
 			}
@@ -462,17 +475,17 @@
 
 	if len(aliasArr) == 0 {
 		fmt.Println("娌℃湁鎺ㄩ�佺洰鏍�,aliasArr is empty")
-		return false, errors.New("娌℃湁鎺ㄩ�佺洰鏍�,aliasArr is empty"), aliasArr
+		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("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�"), aliasArr
+		return false, errors.New("鍒涘缓鎺ㄩ�佸墠缃秷鎭け璐�"), aliasArr, carOwners
 	}
 
 	b,e := doPush(taskId, aliasArr)
-	return b,e, aliasArr
+	return b,e, aliasArr, carOwners
 }
 
 //濡傛灉澶滈棿鏈夌粰杞﹀簱鍐呯殑杞︿富鎺ㄩ�佲�滆灏藉揩椹剁鈥濈殑娑堟伅锛屽垯鍛婄煡绠$悊鍛� 鏈夊摢浜涜溅灏氬仠鍦ㄨ溅搴撳唴

--
Gitblit v1.8.0