Browse Source

处理了数据未更新

fengweiqiang 6 years ago
parent
commit
8bad1a9135
4 changed files with 55 additions and 36 deletions
  1. 6 0
      .idea/vcs.xml
  2. 2 2
      src/udpfileserver/config.json
  3. 37 27
      src/udpfileserver/main.go
  4. 10 7
      src/udpfileserver/maintest.go

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 2 - 2
src/udpfileserver/config.json

@@ -7,9 +7,9 @@
   "mongodb_one_db": "spider",
   "mongodb_one_c": "data_bak",
   "mongodb_one_filefiled": "projectinfo",
-  "mongodb_two_ip": "127.0.0.1:27017",
+  "mongodb_two_ip": "192.168.3.207:27082",
   "mongodb_two_db": "spider",
   "mongodb_two_c": "data_bak",
   "mongodb_two_filefiled": "projectinfo",
-  "file2text": "127.0.0.1:1234"
+  "file2text": "192.168.3.207:1234"
 }

+ 37 - 27
src/udpfileserver/main.go

@@ -93,9 +93,9 @@ func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
 			log.Println("处理查询数据...")
 			for iter.Next(&result){
 				//for _, v := range *result {
-					qmap := *qu.ObjToMap(result)
-					mid := qmap["_id"]
-					if v, ok := qmap[MgoFileFiled].(map[string]interface{}); !ok {
+					qmap := qu.ObjToMap(result)
+					mid := (*qmap)["_id"]
+					if v, ok := (*qmap)[MgoFileFiled].(map[string]interface{}); !ok {
 						mongodbutil.Mgo.UpdateById(MgoC, mid, bson.M{
 							"$set": bson.M{
 								"updatefileErr": 1,
@@ -106,7 +106,7 @@ func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
 						switch v["attachments"].(type) {
 						case map[string]interface{}:
 							att := v["attachments"].(map[string]interface{})
-							for _, vaatt := range att {
+							for attk, vaatt := range att {
 								if fileinfo, ok := vaatt.(map[string]interface{}); !ok {
 									mongodbutil.Mgo.UpdateById(MgoC, mid, bson.M{
 										"$set": bson.M{
@@ -116,8 +116,8 @@ func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
 									continue
 								} else {
 									ChanB <- true
-									go save(mid, qmap, fileinfo)
-
+									save(mid,attk, qmap, &fileinfo)
+									<-ChanB
 								}
 							}
 						}
@@ -169,11 +169,8 @@ func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
 	}
 
 }
-func save(mid interface{}, qmap, fileinfo map[string]interface{}) {
+func save(mid interface{},attk string, qmap, fileinfo *map[string]interface{}) {
 	defer qu.Catch()
-	defer func() {
-		<-ChanB
-	}()
 	type FileData struct {
 		OrgUrl  string //源下载地址
 		Fid     string
@@ -194,16 +191,16 @@ func save(mid interface{}, qmap, fileinfo map[string]interface{}) {
 	var reply []byte
 	//bs, _ := ioutil.ReadFile("1.docx")
 	var fffpath string
-	fffpath = path.Ext(qu.ObjToString(fileinfo["filename"]))
+	fffpath = path.Ext(qu.ObjToString((*fileinfo)["filename"]))
 	if strings.TrimSpace(fffpath) == ""{
-		fffpath  = qu.ObjToString(fileinfo["ftype"])
+		fffpath  = qu.ObjToString((*fileinfo)["ftype"])
 	}else {
 		fffpath = fffpath[1:]
 	}
 	fileData := &FileData{
-		OrgUrl: qu.ObjToString(fileinfo["org_url"]),
-		Name: qu.ObjToString(fileinfo["filename"]),
-		Fid:  qu.ObjToString(fileinfo["fid"]), //附件id
+		OrgUrl: qu.ObjToString((*fileinfo)["org_url"]),
+		Name: qu.ObjToString((*fileinfo)["filename"]),
+		Fid:  qu.ObjToString((*fileinfo)["fid"]), //附件id
 		Type: fffpath,
 	}
 	//log.Println(mid, fileData)
@@ -234,7 +231,7 @@ func save(mid interface{}, qmap, fileinfo map[string]interface{}) {
 		log.Println(mid, "rpc返回数据为空:", string(reply))
 		return
 	}
-	//log.Println(mid, string(reply))
+	log.Println(mid, string(reply)[:23])
 	rdata := make(map[string]interface{})
 	if err := json.Unmarshal(reply, &rdata); err != nil {
 		mongodbutil.Mgo.UpdateById(MgoC, mid, bson.M{
@@ -245,27 +242,40 @@ func save(mid interface{}, qmap, fileinfo map[string]interface{}) {
 		return
 	}
 	if rdata["err"] == nil || rdata["err"] == "null" || rdata["err"] == "" {
-		if qu.ObjToString(fileinfo["ftype"]) == "rar" || qu.ObjToString(fileinfo["ftype"]) == "zip" {
-			fileinfo["content"] = rdata["contextc"]
+		if qu.ObjToString((*fileinfo)["ftype"]) == "rar" || qu.ObjToString((*fileinfo)["ftype"]) == "zip" {
+			(*fileinfo)["content"] = rdata["contextc"]
 		} else {
-			fileinfo["content"] = rdata["context"]
+			(*fileinfo)["content"] = rdata["context"]
 		}
-		if !mongodbutil.Mgo.UpdateById(MgoC, mid, bson.M{
+		//log.Println((*fileinfo))
+
+		asdf := (*qmap)[MgoFileFiled].(map[string]interface{})
+		qwer := asdf["attachments"].(map[string]interface{})
+		qwer[attk] =*fileinfo
+		//log.Println((*qmap)[MgoFileFiled])
+
+		updateBool := mongodbutil.Mgo.UpdateById(MgoC, mid, bson.M{
 			"$set": bson.M{
-				MgoFileFiled: qmap[MgoFileFiled],
+				MgoFileFiled: (*qmap)[MgoFileFiled],
+				//MgoFileFiled: bson.M{
+				//	"attachments":bson.M{
+				//		attk:(*fileinfo),
+				//	},
+				//},
 			},
-		}) {
+		})
+		if updateBool{
 			mongodbutil.Mgo.UpdateById(MgoC, mid, bson.M{
 				"$set": bson.M{
-					"updatefileErr": 1,
+					"updatefileErr": 0,
 				},})
-			log.Println(mid, "mongo更新数据失败")
-		} else {
+			log.Println(mid, "mongo更新数据成功")
+		}else {
 			mongodbutil.Mgo.UpdateById(MgoC, mid, bson.M{
 				"$set": bson.M{
-					"updatefileErr": 0,
+					"updatefileErr": 1,
 				},})
-			log.Println(mid, "mongo更新数据成功")
+			log.Println(mid, "mongo更新数据失败")
 		}
 	} else {
 		mongodbutil.Mgo.UpdateById(MgoC, mid, bson.M{

+ 10 - 7
src/udpfileserver/main_test.go → src/udpfileserver/maintest.go

@@ -5,17 +5,17 @@ import (
 	"log"
 	"mfw/util"
 	"net"
-	"testing"
 )
 
-func TestName(t *testing.T) {
-	udpclient = util.UdpClient{Local: "127.0.0.1:8889", BufSize: 1024}
-	udpclient.Listen(processUdpMsg)
+func main() {
+	udpclient := util.UdpClient{Local: "127.0.0.1:8889", BufSize: 1024}
+	udpclient.Listen(processUdpMsg2)
 	m := map[string]string{
-		"gtid":"5cac41a6dff41f3b20b3b99c",
-		"lteid":"5cac41a6dff41f3b20b3b99c",
+		"gtid":"5cb682c9ed1d910046aca2eb",
+		"lteid":"5cb683f2ed1d9100570abbc3",
 	}
 	b, _ := json.Marshal(m)
+	//for  range time.Tick(time.Second){
 	err := udpclient.WriteUdp(b, util.OP_TYPE_DATA, &net.UDPAddr{
 		IP:   net.ParseIP("127.0.0.1"),
 		Port: 8888,
@@ -25,5 +25,8 @@ func TestName(t *testing.T) {
 		return
 	}
 	log.Println("发送成功")
-
+	//}
 }
+func processUdpMsg2(act byte, data []byte, ra *net.UDPAddr) {
+
+}