瀏覽代碼

Merge branch 'feature/v4.9.58'

lizhikun 10 月之前
父節點
當前提交
7c01f7fde6

+ 115 - 62
src/jfw/modules/bigmember/src/entity/marketAnalysis/analysisPdf.go

@@ -3,6 +3,7 @@ package marketAnalysis
 import (
 	. "app.yhyue.com/moapp/jybase/api"
 	qutil "app.yhyue.com/moapp/jybase/common"
+	elastic "app.yhyue.com/moapp/jybase/es"
 	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 	"app.yhyue.com/moapp/jybase/mongodb"
@@ -59,33 +60,85 @@ func (this *AnalysisReportPdf) GetPdfDetail() {
 			log.Println("非白名单ip", requestIp)
 			return nil, fmt.Errorf("非法请求")
 		}
+		rMap := make(map[string]interface{})
+		getQueryMap, timeRangeMap, t_err := func() (map[string]interface{}, map[string]int64, error) {
+			switch this.GetString("source") {
+			case "luago":
+				if entId := this.GetString("entId"); entId != "" {
+					ty := this.GetString("type")
+					if ty == "2" {
+						//lua变动信息获取
+						cepm := &entity.EntFollow{
+							HasPower: true,
+						}
+						entInfo, _, err := cepm.GetEntChangeList(entId, qutil.IntAll(this.GetString("showPart")))
+						if err == nil {
+							rMap["ent_change"] = entInfo
+						}
+						//lua通讯录获取
+						cepm1 := &entity.Portrait{}
+						entinfo, _ := db.Mgo_Ent.FindOneByField("qyxy_std", map[string]interface{}{"_id": entId}, map[string]interface{}{"company_name": 1})
+						if entinfo != nil {
+							rData, err := cepm1.GetContacts(qutil.InterfaceToStr((*entinfo)["company_name"]), 1)
+							if err == nil {
+								rMap["ent_contacts"] = rData
+							}
+						}
+					}
+					return map[string]interface{}{
+						"type": 1,
+						"ent":  entId,
+					}, nil, nil
+				}
+				if buyerId := this.GetString("buyerId"); buyerId != "" {
+					//根据采购单位id查询采购单位名称
+					list := elastic.Get("buyer", "buyer", fmt.Sprintf(`{"query":{"bool":{"must":[{"term":{"id":"%s"}}]}},"size":1,"_source":["name"]}`, buyerId))
+					if list == nil || len(*list) == 0 {
+						return nil, nil, fmt.Errorf("未知采购单位")
+					}
+					return map[string]interface{}{
+						"type": 2,
+						"ent":  gconv.String((*list)[0]["name"]),
+					}, nil, nil
+				}
+				return nil, nil, fmt.Errorf("请求参数异常")
+			default: //pdf下载,需要从
+				var (
+					rid          = this.GetString("sid") //pdf下载包获取数据信息
+					timeRangeMap = make(map[string]int64)
+				)
+				if rid == "" {
+					return nil, nil, fmt.Errorf("缺少参数")
+				}
+				if !mongodb.IsObjectIdHex(rid) {
+					rid = util.DecodeId(rid)
+				}
+				rData, _ := db.Mgo.FindById(MgoPdfName, rid, nil)
+				if rData == nil || len(*rData) == 0 {
+					return nil, nil, fmt.Errorf("未获取数据")
+				}
+				var (
+					timeRange    = gconv.String((*rData)["timeRange"])
+					timeRangeArr = strings.Split(timeRange, "_")
+				)
 
-		rid := this.GetString("sid") //获取信息id
-		if rid == "" {
-			return nil, fmt.Errorf("缺少参数")
-		}
-		if !mongodb.IsObjectIdHex(rid) {
-			rid = util.DecodeId(rid)
-		}
-		rData, _ := db.Mgo.FindById(MgoPdfName, rid, nil)
-		if rData == nil || len(*rData) == 0 {
-			log.Println("rid==", rid)
-			return nil, fmt.Errorf("未获取数据")
-		}
-		timeRangeMap := make(map[string]int64)
-		timeRange := gconv.String((*rData)["timeRange"])
-		timeRangeArr := strings.Split(timeRange, "_")
-		if len(timeRangeArr) == 2 {
-			start, _ := time.Parse(time.DateOnly, timeRangeArr[0])
-			end, _ := time.Parse(time.DateOnly, timeRangeArr[1])
-			timeRangeMap["start"] = start.Unix()
-			timeRangeMap["end"] = end.Unix()
+				if len(timeRangeArr) == 2 {
+					start, _ := time.Parse(time.DateOnly, timeRangeArr[0])
+					end, _ := time.Parse(time.DateOnly, timeRangeArr[1])
+					timeRangeMap["start"] = start.Unix()
+					timeRangeMap["end"] = end.Unix()
+				}
+				return *rData, timeRangeMap, nil
+			}
+		}()
+		if t_err != nil {
+			return nil, t_err
 		}
-		rMap := make(map[string]interface{})
+
 		wait := &sync.WaitGroup{}
 		var lock sync.Mutex
 		var err error
-		switch qutil.InterfaceToStr((*rData)["type"]) {
+		switch qutil.InterfaceToStr(getQueryMap["type"]) {
 		case "3":
 			wait.Add(2)
 			pid, _, _ := CheckPowerEquity(this.Session())
@@ -93,7 +146,7 @@ func (this *AnalysisReportPdf) GetPdfDetail() {
 			userId := qutil.ObjToString(sessVal["userId"])
 			go func() { //分析数据
 				wait.Done()
-				mae := &MarketAnalysisEntity{MgoRecordId: qutil.InterfaceToStr((*rData)["rid"]), UId: userId, Pid: pid, MgoUserId: qutil.ObjToString(sessVal["mgoUserId"]), PositionId: qutil.IntAll(sessVal["positionId"])}
+				mae := &MarketAnalysisEntity{MgoRecordId: qutil.InterfaceToStr(getQueryMap["rid"]), UId: userId, Pid: pid, MgoUserId: qutil.ObjToString(sessVal["mgoUserId"]), PositionId: qutil.IntAll(sessVal["positionId"])}
 				rDataMap, err := mae.GetPdfPageApi()
 				if err != nil {
 					log.Println("GetPdfPageApi", err.Error())
@@ -106,7 +159,7 @@ func (this *AnalysisReportPdf) GetPdfDetail() {
 			}()
 			go func() { //项目明细
 				defer wait.Done()
-				mae := &MarketAnalysisEntity{MgoRecordId: qutil.InterfaceToStr((*rData)["rid"]), UId: userId, Pid: pid, MgoUserId: qutil.ObjToString(sessVal["mgoUserId"]), PositionId: qutil.IntAll(sessVal["positionId"])}
+				mae := &MarketAnalysisEntity{MgoRecordId: qutil.InterfaceToStr(getQueryMap["rid"]), UId: userId, Pid: pid, MgoUserId: qutil.ObjToString(sessVal["mgoUserId"]), PositionId: qutil.IntAll(sessVal["positionId"])}
 				err = mae.GetAnalysisFromMgoDb()
 				if err != nil {
 					log.Println("GetAnalysisFromMgoDb err", err.Error())
@@ -125,21 +178,21 @@ func (this *AnalysisReportPdf) GetPdfDetail() {
 				lock.Unlock()
 			}()
 			wait.Wait()
-			(*rData)["rid"] = util.EncodeId(qutil.InterfaceToStr((*rData)["rid"]))
+			getQueryMap["rid"] = util.EncodeId(qutil.InterfaceToStr(getQueryMap["rid"]))
 		case "2": //采购
 			wait.Add(2)
 			go func() { //分析数据
 				defer wait.Done()
 				cepm := &entity.Portrait{}
-				cepm.UserId = qutil.InterfaceToStr((*rData)["user_id"])
+				cepm.UserId = qutil.InterfaceToStr(getQueryMap["user_id"])
 				rDataMap, err := cepm.BuyerPortraitData(&entity.PortraitScreen{
-					Ent:        qutil.InterfaceToStr((*rData)["ent"]),
-					Match:      qutil.InterfaceToStr((*rData)["match"]),
-					ExactMatch: qutil.InterfaceToStr((*rData)["exactMatch"]) == "1",
-					MatchRange: qutil.InterfaceToStr((*rData)["matchRange"]),
-					Area:       qutil.InterfaceToStr((*rData)["area"]),
-					ScopeClass: qutil.InterfaceToStr((*rData)["scopeClass"]),
-					TimeRange:  qutil.InterfaceToStr((*rData)["timeRange"]),
+					Ent:        qutil.InterfaceToStr(getQueryMap["ent"]),
+					Match:      qutil.InterfaceToStr(getQueryMap["match"]),
+					ExactMatch: qutil.InterfaceToStr(getQueryMap["exactMatch"]) == "1",
+					MatchRange: qutil.InterfaceToStr(getQueryMap["matchRange"]),
+					Area:       qutil.InterfaceToStr(getQueryMap["area"]),
+					ScopeClass: qutil.InterfaceToStr(getQueryMap["scopeClass"]),
+					TimeRange:  qutil.InterfaceToStr(getQueryMap["timeRange"]),
 					HasPower:   true,
 					UserLevel:  1,
 				}, "")
@@ -155,16 +208,16 @@ func (this *AnalysisReportPdf) GetPdfDetail() {
 			go func() { //项目明细
 				defer wait.Done()
 				cepm := &entity.Portrait{}
-				cepm.UserId = qutil.InterfaceToStr((*rData)["user_id"])
+				cepm.UserId = qutil.InterfaceToStr(getQueryMap["user_id"])
 				rDataMap, count, _, err := cepm.GetBuyerNewMsg(&entity.PortraitProjectScreen{
 					Screen: &entity.PortraitScreen{
-						Ent:        qutil.InterfaceToStr((*rData)["ent"]),
-						Match:      qutil.InterfaceToStr((*rData)["match"]),
-						ExactMatch: qutil.InterfaceToStr((*rData)["exactMatch"]) == "1",
-						MatchRange: qutil.InterfaceToStr((*rData)["matchRange"]),
-						Area:       qutil.InterfaceToStr((*rData)["area"]),
-						ScopeClass: qutil.InterfaceToStr((*rData)["scopeClass"]),
-						TimeRange:  qutil.InterfaceToStr((*rData)["timeRange"]),
+						Ent:        qutil.InterfaceToStr(getQueryMap["ent"]),
+						Match:      qutil.InterfaceToStr(getQueryMap["match"]),
+						ExactMatch: qutil.InterfaceToStr(getQueryMap["exactMatch"]) == "1",
+						MatchRange: qutil.InterfaceToStr(getQueryMap["matchRange"]),
+						Area:       qutil.InterfaceToStr(getQueryMap["area"]),
+						ScopeClass: qutil.InterfaceToStr(getQueryMap["scopeClass"]),
+						TimeRange:  qutil.InterfaceToStr(getQueryMap["timeRange"]),
 						HasPower:   true,
 					},
 					Free:     false,
@@ -186,17 +239,17 @@ func (this *AnalysisReportPdf) GetPdfDetail() {
 			go func() { //分析数据
 				defer wait.Done()
 				cepm := &entity.Portrait{}
-				cepm.UserId = qutil.InterfaceToStr((*rData)["user_id"])
+				cepm.UserId = qutil.InterfaceToStr(getQueryMap["user_id"])
 				rDataMap, err := cepm.WinnerPortraitData(&entity.PortraitScreen{
-					Ent:        qutil.InterfaceToStr((*rData)["ent"]),
-					Match:      qutil.InterfaceToStr((*rData)["match"]),
-					ExactMatch: qutil.InterfaceToStr((*rData)["exactMatch"]) == "1",
-					MatchRange: qutil.InterfaceToStr((*rData)["matchRange"]),
-					Area:       qutil.InterfaceToStr((*rData)["area"]),
-					ScopeClass: qutil.InterfaceToStr((*rData)["scopeClass"]),
-					TimeRange:  qutil.InterfaceToStr((*rData)["timeRange"]),
+					Ent:        qutil.InterfaceToStr(getQueryMap["ent"]),
+					Match:      qutil.InterfaceToStr(getQueryMap["match"]),
+					ExactMatch: qutil.InterfaceToStr(getQueryMap["exactMatch"]) == "1",
+					MatchRange: qutil.InterfaceToStr(getQueryMap["matchRange"]),
+					Area:       qutil.InterfaceToStr(getQueryMap["area"]),
+					ScopeClass: qutil.InterfaceToStr(getQueryMap["scopeClass"]),
+					TimeRange:  qutil.InterfaceToStr(getQueryMap["timeRange"]),
 					HasPower:   true,
-					BuyerClass: qutil.InterfaceToStr((*rData)["s_buyerClass"]),
+					BuyerClass: qutil.InterfaceToStr(getQueryMap["s_buyerClass"]),
 				})
 				if err != nil {
 					log.Println("GetPdfDetail WinnerPortraitData===", err)
@@ -210,18 +263,18 @@ func (this *AnalysisReportPdf) GetPdfDetail() {
 			go func() { //项目明细
 				defer wait.Done()
 				cepm := &entity.Portrait{}
-				cepm.UserId = qutil.InterfaceToStr((*rData)["user_id"])
+				cepm.UserId = qutil.InterfaceToStr(getQueryMap["user_id"])
 				rDataMap, count, _, err := cepm.GetWinnerNewMsg(&entity.PortraitProjectScreen{
 					Screen: &entity.PortraitScreen{
-						Ent:        qutil.InterfaceToStr((*rData)["ent"]),
-						Match:      qutil.InterfaceToStr((*rData)["match"]),
-						ExactMatch: qutil.InterfaceToStr((*rData)["exactMatch"]) == "1",
-						MatchRange: qutil.InterfaceToStr((*rData)["matchRange"]),
-						Area:       qutil.InterfaceToStr((*rData)["area"]),
-						ScopeClass: qutil.InterfaceToStr((*rData)["scopeClass"]),
-						TimeRange:  qutil.InterfaceToStr((*rData)["timeRange"]),
+						Ent:        qutil.InterfaceToStr(getQueryMap["ent"]),
+						Match:      qutil.InterfaceToStr(getQueryMap["match"]),
+						ExactMatch: qutil.InterfaceToStr(getQueryMap["exactMatch"]) == "1",
+						MatchRange: qutil.InterfaceToStr(getQueryMap["matchRange"]),
+						Area:       qutil.InterfaceToStr(getQueryMap["area"]),
+						ScopeClass: qutil.InterfaceToStr(getQueryMap["scopeClass"]),
+						TimeRange:  qutil.InterfaceToStr(getQueryMap["timeRange"]),
 						HasPower:   true,
-						BuyerClass: qutil.InterfaceToStr((*rData)["s_buyerClass"]),
+						BuyerClass: qutil.InterfaceToStr(getQueryMap["s_buyerClass"]),
 					},
 					Free:     false,
 					PageNum:  1,
@@ -238,7 +291,7 @@ func (this *AnalysisReportPdf) GetPdfDetail() {
 			go func() {
 				defer wait.Done()
 				cepm := &entity.Portrait{}
-				entInfo, err := cepm.GetEntInfo(qutil.InterfaceToStr((*rData)["ent"]))
+				entInfo, err := cepm.GetEntInfo(qutil.InterfaceToStr(getQueryMap["ent"]))
 				if err == nil {
 					lock.Lock()
 					rMap["entInfo"] = entInfo
@@ -248,9 +301,9 @@ func (this *AnalysisReportPdf) GetPdfDetail() {
 			wait.Wait()
 
 		}
-		delete(*rData, "_id")
+		delete(getQueryMap, "_id")
 		rMap["timeRange"] = timeRangeMap
-		rMap["analysis_condition"] = rData
+		rMap["analysis_condition"] = getQueryMap
 		return rMap, err
 	}()
 	if errMsg != nil {

+ 1 - 1
src/jfw/modules/bigmember/src/entity/portrait_screen.go

@@ -418,7 +418,7 @@ func (pwp *PortraitProjectScreen) GetBuyerListSearch() (list *[]map[string]inter
 	}
 
 	start, limit := (pwp.PageNum-1)*pwp.PageSize, pwp.PageSize
-	fields := `"bidstatus","_id","title","subtype","projectname","publishtime","area","city","district"`
+	fields := `"bidstatus","_id","title","subtype","toptype","projectname","publishtime","area","city","district"`
 	if start+limit <= tableShowNumLimit { //表格数据
 		fields += `,"bidamount","budget","bidopentime","s_winner","entidlist"`
 	}