From 978757c6cd702684d736ddf733f1d718a8c67060 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期四, 01 八月 2019 21:08:44 +0800
Subject: [PATCH] add es cache change

---
 controllers/dbtableperson.go |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 59 insertions(+), 0 deletions(-)

diff --git a/controllers/dbtableperson.go b/controllers/dbtableperson.go
index 6d7d5c7..3a987c0 100644
--- a/controllers/dbtableperson.go
+++ b/controllers/dbtableperson.go
@@ -1,10 +1,12 @@
 package controllers
 
 import (
+	"basic.com/pubsub/protomsg.git"
 	"encoding/json"
 	"log"
 	"strconv"
 	"time"
+	"webserver/discovery"
 	"webserver/extend/logger"
 
 	"github.com/gin-gonic/gin"
@@ -14,6 +16,7 @@
 	"webserver/extend/esutil"
 	"webserver/extend/util"
 	"webserver/models"
+	esApi "basic.com/pubsub/esutil.git"
 )
 
 type DbPersonController struct {
@@ -60,6 +63,17 @@
 	params := string(personbytes)
 	logger.Debug("璇锋眰url:%s;\n 璇锋眰鍙傛暟params:%s", url, params)
 	data, _ := esutil.PutEsDataReq(url, params)
+	if data["_id"] !=""{
+		//閫氱煡姣斿杩涚▼缂撳瓨鏇存柊
+		discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+			Type: protomsg.EsCacheChanged_T_DbTablePerson,
+			PersonId: personId,
+			TableId: []string{ dbperson.TableId },
+			Feature: dbperson.FaceFeature,
+			Action: protomsg.DbAction_Insert,
+		})
+	}
+
 	//c.JSON(200, changeEsRespData(data, "娣诲姞浜哄憳鎴愬姛"))
 	result = changeEsRespData(data, "娣诲姞鎴愬姛")
 	return result
@@ -97,6 +111,23 @@
 	result := changeEsRespData(data, "淇敼鎴愬姛")
 	if result["success"].(bool) {
 		//code.Success.Message = "淇敼搴曞簱浜哄憳鎴愬姛"
+		if dbperson.Enable == 1 {
+			discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+				Type: protomsg.EsCacheChanged_T_DbTablePerson,
+				PersonId: dbperson.Id,
+				TableId: []string{ dbperson.TableId },
+				Feature: "",
+				Action: protomsg.DbAction_Insert,
+			})
+		} else {
+			discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+				Type: protomsg.EsCacheChanged_T_DbTablePerson,
+				PersonId: dbperson.Id,
+				TableId: []string{ dbperson.TableId },
+				Feature: "",
+				Action: protomsg.DbAction_Delete,
+			})
+		}
 		util.ResponseFormat(c, code.Success, result["data"])
 	} else {
 		//code.ServiceInsideError.Message += result["msg"].(string)
@@ -127,6 +158,20 @@
 	result := changeEsRespData(data, "鍒犻櫎鎴愬姛")
 	if result["success"].(bool) {
 		//code.Success.Message = "鍒犻櫎搴曞簱浜哄憳鎴愬姛"
+		//閫氱煡姣斿杩涚▼锛屾浜哄凡鍒犻櫎
+		dbperArr, e := esApi.Dbpersoninfosbyid([]string{uuid}, config.EsInfo.EsIndex.Dbtablepersons.IndexName, config.EsInfo.Masterip, config.EsInfo.Httpport)
+		if e ==nil && len(dbperArr) > 0{
+			if dbperArr[0].TableId !=""{
+				discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+					Type: protomsg.EsCacheChanged_T_DbTablePerson,
+					PersonId: uuid,
+					TableId: []string{ dbperArr[0].TableId },
+					Feature: "",
+					Action: protomsg.DbAction_Delete,
+				})
+			}
+		}
+
 		util.ResponseFormat(c, code.Success, result["data"])
 	} else {
 		//code.ServiceInsideError.Message += result["msg"].(string)
@@ -158,6 +203,20 @@
 	//result := changeEsRespData(data, "鍒犻櫎鎴愬姛")
 	if data["error"] == nil {
 		//code.Success.Message = "鍒犻櫎搴曞簱浜哄憳鎴愬姛"
+		dbperArr, e := esApi.Dbpersoninfosbyid(uuids, config.EsInfo.EsIndex.Dbtablepersons.IndexName, config.EsInfo.Masterip, config.EsInfo.Httpport)
+		if e ==nil && len(dbperArr) > 0{
+			for _,esPer :=range dbperArr {
+				if esPer.TableId !=""{
+					discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+						Type: protomsg.EsCacheChanged_T_DbTablePerson,
+						PersonId: esPer.Id,
+						TableId: []string{ esPer.TableId },
+						Feature: "",
+						Action: protomsg.DbAction_Delete,
+					})
+				}
+			}
+		}
 		util.ResponseFormat(c, code.Success, "鍒犻櫎搴曞簱浜哄憳鎴愬姛")
 	} else {
 		//code.ServiceInsideError.Message += result["msg"].(string)

--
Gitblit v1.8.0