Переглянути джерело

Merge branch 'dev3.4' of http://192.168.3.207:10080/qmx/jy-data-extract into dev3.4

maxiaoshan 5 роки тому
батько
коміт
0fe1b82c40

BIN
src/github.com/aliyun-oss-go-sdk.zip


BIN
src/golang.org/x/time.zip


+ 13 - 22
src/jy/extract/extract.go

@@ -383,34 +383,25 @@ func (e *ExtractTask) PreInfo(doc map[string]interface{}) (j, jf *ju.Job, isSite
 
 //遍历附件字段内容,拼接在一起;附件文本堆一起(后期可以考虑,分开处理),方法里修改了doc["detailfile"]结果
 func file2text(doc *map[string]interface{}) {
-	var strfileinfo bytes.Buffer
-	if v, ok := (*doc)["projectinfo"].(map[string]interface{}); ok {
-		if va, ok := v["attachments"].(map[string]interface{}); ok {
-			for _, vaatt := range va {
-				if fileinfo, ok := vaatt.(map[string]interface{}); ok {
-					if qu.ObjToString(fileinfo["content"]) != "" {
-						switch fileinfo["content"].(type) {
-						case string:
-							lock.Lock()
-							strfileinfo.WriteString(fileinfo["content"].(string) + " \n")
-							lock.Unlock()
-						case []map[string]interface{}:
-							for _, fv := range fileinfo["content"].([]map[string]interface{}) {
-								if fv["context"] != nil {
-									lock.Lock()
-									strfileinfo.WriteString(fv["context"].(string) + " \n")
-									lock.Unlock()
-								}
-							}
+	tmpstr := ""
+	if attach_text, ok := (*doc)["attach_text"].(map[string]interface{}); ok {
+		for _, attachs := range attach_text {
+			if fileinfos, ok := attachs.(map[string]interface{}); ok {
+				for _, fileinfo := range fileinfos {
+					if ff, ok := fileinfo.(map[string]interface{}); ok {
+						attach_url := qu.ObjToString(ff["attach_url"])
+						bs := ju.OssGetObject(attach_url)
+						if utf8.RuneCountInString(tmpstr+bs) < qu.IntAllDef(ju.Config["filelength"], 100000) {
+							tmpstr += bs + "\n"
+						} else {
+							break
 						}
 					}
 				}
 			}
 		}
 	}
-	if utf8.RuneCountInString(strfileinfo.String()) < qu.IntAllDef(ju.Config["filelength"], 100000) {
-		(*doc)["detailfile"] = strfileinfo.String() //附件文本堆一起(后期可以考虑,分开处理)
-	}
+	(*doc)["detailfile"] = tmpstr
 }
 
 //抽取

+ 1 - 0
src/jy/extract/extractInit.go

@@ -1664,6 +1664,7 @@ func (e *ExtractTask) InitFile() {
 		}
 	}
 	e.FileFields = syscefiled
+	ju.InitOss()
 }
 
 //加载清理任务信息

+ 52 - 0
src/jy/util/ossclient.go

@@ -0,0 +1,52 @@
+// ossclient
+package util
+
+import (
+	"fmt"
+	"io/ioutil"
+	"os"
+	"qfw/util"
+
+	"github.com/aliyun/aliyun-oss-go-sdk/oss"
+)
+
+var (
+	ossEndpoint        = "oss-cn-beijing-internal.aliyuncs.com" //http://oss-cn-beijing.aliyuncs.com"
+	ossAccessKeyId     = "LTAI4FvLSWN3Wz9F6dUxQGMR"
+	ossAccessKeySecret = "WnQpnNVEiRfZsz5hIqFSr0phayMo3U"
+	ossBucketName      = "topjy"
+	ossclient          *oss.Client
+)
+
+func InitOss() {
+	client, err := oss.New(ossEndpoint, ossAccessKeyId, ossAccessKeySecret)
+	if err != nil {
+		fmt.Println("Error:", err)
+		os.Exit(-1)
+	}
+	ossclient = client
+}
+
+func OssGetObject(objectName string) string {
+	util.Catch()
+	// 获取存储空间。
+	bucket, err := ossclient.Bucket(ossBucketName)
+	if err != nil {
+		fmt.Println("Error:", err)
+		return ""
+	}
+
+	// 下载文件到流。
+	body, err := bucket.GetObject(objectName)
+	if err != nil {
+		fmt.Println("Error:", err)
+		return ""
+	}
+	defer body.Close()
+	data, err := ioutil.ReadAll(body)
+	if err != nil {
+		fmt.Println("Error:", err)
+		return ""
+	}
+	return string(data)
+}