wangchuanjin %!s(int64=7) %!d(string=hai) anos
pai
achega
9d65daf29c

+ 12 - 26
src/jfw/modules/pushent/src/filterdata/filterdata.go

@@ -6,26 +6,18 @@ import (
 	"qfw/util/redis"
 )
 
-var FilterData *filterDataEntity
-
-type filterDataEntity struct {
+type FilterData struct {
 	Array  []string
 	OpenId string
 }
 
-func init() {
-	FilterData = &filterDataEntity{
-		Array: []string{},
-	}
-}
-
 //获取数据
-func (fde *filterDataEntity) Start(openid string) {
+func (fd *FilterData) Start(openid string) {
 	if openid == "" {
 		return
 	}
-	fde.OpenId = openid
-	data := redis.Get("push", "push_ent_"+openid)
+	fd.OpenId = openid
+	data := redis.Get("push", "push_"+openid)
 	if data == nil {
 		return
 	}
@@ -39,33 +31,27 @@ func (fde *filterDataEntity) Start(openid string) {
 		log.Println("byte数组转成string数组出错!")
 		return
 	}
-	fde.Array = array
+	fd.Array = array
 }
 
 //判断数据是否存在
-func (fde *filterDataEntity) IsExists(_id string) bool {
+func (fd *FilterData) IsExists(_id string) bool {
 	if _id == "" {
 		return false
 	}
-	for _, v := range fde.Array {
+	for _, v := range fd.Array {
 		if _id == v {
 			return true
 		}
 	}
-	//log.Println(fde.Array)
-	fde.Array = append(fde.Array, _id)
+	fd.Array = append(fd.Array, _id)
 	return false
 }
 
 //添加数据
-func (fde *filterDataEntity) End(flag int) {
-	if fde.OpenId != "" && flag == 0 {
-		if len(fde.Array) > 0 {
-			redis.Put("push", "push_ent_"+fde.OpenId, fde.Array, -1)
-		} else {
-			redis.Del("push", "push_ent_"+fde.OpenId)
-		}
+func (fd *FilterData) End() {
+	if fd.OpenId == "" || len(fd.Array) == 0 {
+		return
 	}
-	fde.Array = []string{}
-	fde.OpenId = ""
+	redis.Put("push", "push_"+fd.OpenId, fd.Array, -1)
 }

+ 4 - 3
src/jfw/modules/pushent/src/followpush/push.go

@@ -113,8 +113,9 @@ func FindData(fid interface{}, title, sname, openid, idrange string, bsave, bpus
 				} else {
 					Pushlock.Lock()
 					defer Pushlock.Unlock()
-					filterdata.FilterData.Start(openid)
-					defer filterdata.FilterData.End(0)
+					filterData := &filterdata.FilterData{}
+					filterData.Start(openid)
+					defer filterData.End()
 					//1.组织信息、
 					//a_relationinfo s_id s_title s_projectname  s_projectcode  l_publishtime s_url
 					var ids []string
@@ -131,7 +132,7 @@ func FindData(fid interface{}, title, sname, openid, idrange string, bsave, bpus
 						tmp["s_subtype"] = util.ObjToString(info["subtype"])
 						tmp["s_entname"] = util.ObjToString(info["winner"])
 						tmp["s_url"] = util.ObjToString(info["href"])
-						if filterdata.FilterData.IsExists(sid) {
+						if filterData.IsExists(sid) {
 							continue
 						}
 						ids = append(ids, sid)

+ 4 - 3
src/jfw/modules/pushent/src/rpcpush/findData.go

@@ -20,9 +20,10 @@ func RpcFindFollow(entname, followid, thisid, openid string, flag int) *followpu
 		go func() {
 			followpush.Pushlock.Lock()
 			defer followpush.Pushlock.Unlock()
-			filterdata.FilterData.Start(openid)
-			defer filterdata.FilterData.End(0)
-			filterdata.FilterData.IsExists(thisid)
+			filterData := &filterdata.FilterData{}
+			filterData.Start(openid)
+			defer filterData.End()
+			filterData.IsExists(thisid)
 		}()
 	}
 	res := followpush.FindData(ff, thisid, entname, openid, "", bsave, false)

+ 11 - 25
src/jfw/modules/pushproject/src/filterdata/filterdata.go

@@ -6,25 +6,17 @@ import (
 	"qfw/util/redis"
 )
 
-var FilterData *filterDataEntity
-
-type filterDataEntity struct {
+type FilterData struct {
 	Array  []string
 	OpenId string
 }
 
-func init() {
-	FilterData = &filterDataEntity{
-		Array: []string{},
-	}
-}
-
 //获取数据
-func (fde *filterDataEntity) Start(openid string) {
+func (fd *FilterData) Start(openid string) {
 	if openid == "" {
 		return
 	}
-	fde.OpenId = openid
+	fd.OpenId = openid
 	data := redis.Get("push", "push_"+openid)
 	if data == nil {
 		return
@@ -39,33 +31,27 @@ func (fde *filterDataEntity) Start(openid string) {
 		log.Println("byte数组转成string数组出错!")
 		return
 	}
-	fde.Array = array
+	fd.Array = array
 }
 
 //判断数据是否存在
-func (fde *filterDataEntity) IsExists(_id string) bool {
+func (fd *FilterData) IsExists(_id string) bool {
 	if _id == "" {
 		return false
 	}
-	for _, v := range fde.Array {
+	for _, v := range fd.Array {
 		if _id == v {
 			return true
 		}
 	}
-	//log.Println(fde.Array)
-	fde.Array = append(fde.Array, _id)
+	fd.Array = append(fd.Array, _id)
 	return false
 }
 
 //添加数据
-func (fde *filterDataEntity) End(flag int) {
-	if fde.OpenId != "" && flag == 0 {
-		if len(fde.Array) > 0 {
-			redis.Put("push", "push_"+fde.OpenId, fde.Array, -1)
-		} else {
-			redis.Del("push", "push_"+fde.OpenId)
-		}
+func (fd *FilterData) End() {
+	if fd.OpenId == "" || len(fd.Array) == 0 {
+		return
 	}
-	fde.Array = []string{}
-	fde.OpenId = ""
+	redis.Put("push", "push_"+fd.OpenId, fd.Array, -1)
 }

+ 4 - 3
src/jfw/modules/pushproject/src/followpush/push.go

@@ -118,8 +118,9 @@ func FindData(fid interface{}, title, sname, scode, openid, idrange string, bsav
 				} else {
 					Pushlock.Lock()
 					defer Pushlock.Unlock()
-					filterdata.FilterData.Start(openid)
-					defer filterdata.FilterData.End(0)
+					filterData := &filterdata.FilterData{}
+					filterData.Start(openid)
+					defer filterData.End()
 					//1.组织信息、
 					//a_relationinfo s_id s_title s_projectname  s_projectcode  l_publishtime s_url
 					var ids []string
@@ -140,7 +141,7 @@ func FindData(fid interface{}, title, sname, scode, openid, idrange string, bsav
 						tmp["s_projectname"] = util.ObjToString(info["projectname"])
 						tmp["s_projectcode"] = util.ObjToString(info["projectcode"])
 						tmp["s_url"] = util.ObjToString(info["href"])
-						if filterdata.FilterData.IsExists(sid) {
+						if filterData.IsExists(sid) {
 							continue
 						}
 						ids = append(ids, sid)

+ 4 - 3
src/jfw/modules/pushproject/src/rpcpush/findData.go

@@ -20,9 +20,10 @@ func RpcFindFollow(projectname, projectcode, followid, thisid, openid string, fl
 		go func() {
 			followpush.Pushlock.Lock()
 			defer followpush.Pushlock.Unlock()
-			filterdata.FilterData.Start(openid)
-			defer filterdata.FilterData.End(0)
-			filterdata.FilterData.IsExists(thisid)
+			filterData := &filterdata.FilterData{}
+			filterData.Start(openid)
+			defer filterData.End()
+			filterData.IsExists(thisid)
 		}()
 	}
 	res := followpush.FindData(ff, thisid, projectname, projectcode, openid, "", bsave, false)