Sfoglia il codice sorgente

feat:记录接口提交

wangkaiyue 3 anni fa
parent
commit
8bc6ee23d8

+ 41 - 1
src/jfw/modules/bigmember/src/entity/marketAnalysis/marketAnalysisEntity.go

@@ -4,9 +4,11 @@ import (
 	"db"
 	"db"
 	"encoding/json"
 	"encoding/json"
 	"fmt"
 	"fmt"
+	"mongodb"
 	qutil "qfw/util"
 	qutil "qfw/util"
 	"strings"
 	"strings"
 	"time"
 	"time"
+	"util"
 )
 )
 
 
 const (
 const (
@@ -65,6 +67,7 @@ type MarketAnalysisEntity struct {
 	MgoRecordId string
 	MgoRecordId string
 	BaseParam   AnalysisRequestParam
 	BaseParam   AnalysisRequestParam
 	FormatParam AnalysisRequestFormat
 	FormatParam AnalysisRequestFormat
+	UId, Pid    string
 }
 }
 
 
 //ForMatData 获取格式化请求参数
 //ForMatData 获取格式化请求参数
@@ -113,6 +116,8 @@ func (mae *MarketAnalysisEntity) SaveAnalysisRecord() error {
 		"s_city":       mae.BaseParam.City,
 		"s_city":       mae.BaseParam.City,
 		"s_industry":   mae.BaseParam.Industry,
 		"s_industry":   mae.BaseParam.Industry,
 		"s_buyerClass": mae.BaseParam.BuyerClass,
 		"s_buyerClass": mae.BaseParam.BuyerClass,
+		"s_userId":     mae.UId,
+		"s_parentId":   mae.Pid,
 		"l_createTime": time.Now().Unix(),
 		"l_createTime": time.Now().Unix(),
 	})
 	})
 	if mae.MgoRecordId == "" {
 	if mae.MgoRecordId == "" {
@@ -128,7 +133,7 @@ func (mae *MarketAnalysisEntity) GetAnalysisFromMgoDb() error {
 	}
 	}
 	res, _ := db.Mgo.FindById(ReportHistoryTable, mae.MgoRecordId, nil)
 	res, _ := db.Mgo.FindById(ReportHistoryTable, mae.MgoRecordId, nil)
 	if res == nil || len(*res) == 0 {
 	if res == nil || len(*res) == 0 {
-		return fmt.Errorf("查询到相关数据")
+		return fmt.Errorf("查询到相关数据")
 	}
 	}
 	mae.BaseParam.KeysItemsStr, _ = (*res)["s_keysItems"].(string)
 	mae.BaseParam.KeysItemsStr, _ = (*res)["s_keysItems"].(string)
 	mae.BaseParam.RangeTime, _ = (*res)["s_rangeTime"].(string)
 	mae.BaseParam.RangeTime, _ = (*res)["s_rangeTime"].(string)
@@ -139,6 +144,41 @@ func (mae *MarketAnalysisEntity) GetAnalysisFromMgoDb() error {
 	return nil
 	return nil
 }
 }
 
 
+//GetRecordList 获取分析记录
+func (mae *MarketAnalysisEntity) GetRecordList(pageNum, PageSize int) (total int, list []map[string]interface{}) {
+	var queryMap map[string]interface{}
+	if mae.UId == mae.Pid { //主账号
+		queryMap = map[string]interface{}{"s_parentId": mae.Pid}
+	} else {
+		queryMap = map[string]interface{}{"s_userId": mae.UId}
+	}
+	if pageNum == 1 {
+		total = db.Mgo.Count(ReportHistoryTable, queryMap)
+		if total == 0 {
+			return
+		}
+	} else {
+		total = -1
+	}
+	res, _ := db.Mgo.Find(ReportHistoryTable, queryMap, `{"l_createTime":-1}`, nil, false, (pageNum-1)*PageSize, PageSize)
+	if res == nil || len(*res) == 0 {
+		return
+	}
+	for _, row := range *res {
+		list = append(list, map[string]interface{}{
+			"id":         util.EncodeId(mongodb.BsonIdToSId(row["_id"])),
+			"keysItems":  qutil.ObjToString(row["s_keysItems"]),
+			"city":       qutil.ObjToString(row["s_city"]),
+			"area":       qutil.ObjToString(row["s_area"]),
+			"industry":   qutil.ObjToString(row["s_industry"]),
+			"buyerclass": qutil.ObjToString(row["s_buyerClass"]),
+			"rangeTime":  qutil.ObjToString(row["s_rangeTime"]),
+			"createTime": qutil.Int64All(row["l_createTime"]),
+		})
+	}
+	return
+}
+
 //GetPartResult 分块儿获取报告内容
 //GetPartResult 分块儿获取报告内容
 func (mae *MarketAnalysisEntity) GetPartResult(flag int) (map[string]interface{}, error) {
 func (mae *MarketAnalysisEntity) GetPartResult(flag int) (map[string]interface{}, error) {
 	//控制并发&&超时返回超时异常
 	//控制并发&&超时返回超时异常

+ 20 - 56
src/jfw/modules/bigmember/src/service/report/marketAnalysis.go

@@ -9,7 +9,6 @@ import (
 	"log"
 	"log"
 	qutil "qfw/util"
 	qutil "qfw/util"
 	"qfw/util/jy"
 	"qfw/util/jy"
-	"time"
 	"util"
 	"util"
 )
 )
 
 
@@ -21,62 +20,26 @@ type MarketAnalysis struct {
 	analysisHistory   xweb.Mapper `xweb:"/marketAnalysis/analysisHistory"`   //市场分析报告历史记录
 	analysisHistory   xweb.Mapper `xweb:"/marketAnalysis/analysisHistory"`   //市场分析报告历史记录
 }
 }
 
 
-//此处未模拟接口返回数据,开发完毕后请删除
-var (
-	//模拟历史数据
-	historyReport = []map[string]interface{}{
-		map[string]interface{}{
-			"id":         "5e8eb60ae138234b4f91aacc", //加密处理
-			"keysItems":  "[{\"a_key\":[{\"appendkey\":[\"引擎\"],\"key\":[\"软件\"],\"matchway\":1,\"notkey\":[\"网站\"],\"updatetime\":1640657393},{\"appendkey\":[\"人工\"],\"key\":[\"智能\"],\"matchway\":0,\"notkey\":[\"报告\"],\"updatetime\":1640657384}],\"s_item\":\"科技\",\"updatetime\":1640657329},{\"a_key\":[{\"appendkey\":[\"绿化\"],\"key\":[\"道路\"],\"matchway\":0,\"notkey\":[\"路面\"],\"updatetime\":1640657384}],\"s_item\":\"建筑\",\"updatetime\":1640657329}]",
-			"rangeTime":  "1546272000-1609430400",
-			"city":       "郑州,开封,商丘",
-			"area":       "北京",
-			"industry":   "行政办公_办公用品,能源化工_化工产品,机械设备_矿山机械",
-			"buyerclass": "传媒,检察院,民政,农业",
-			"createTime": time.Now().Unix(),
-		},
-		map[string]interface{}{
-			"id":         "5e8eb60ae138234b4f91aacc", //加密处理
-			"keysItems":  "[{\"a_key\":[{\"appendkey\":[\"引擎\"],\"key\":[\"软件\"],\"matchway\":1,\"notkey\":[\"网站\"],\"updatetime\":1640657393},{\"appendkey\":[\"人工\"],\"key\":[\"智能\"],\"matchway\":0,\"notkey\":[\"报告\"],\"updatetime\":1640657384}],\"s_item\":\"科技\",\"updatetime\":1640657329},{\"a_key\":[{\"appendkey\":[\"绿化\"],\"key\":[\"道路\"],\"matchway\":0,\"notkey\":[\"路面\"],\"updatetime\":1640657384}],\"s_item\":\"建筑\",\"updatetime\":1640657329}]",
-			"rangeTime":  "1546272000-1609430400",
-			"city":       "郑州,开封,商丘",
-			"area":       "北京",
-			"industry":   "行政办公_办公用品,能源化工_化工产品,机械设备_矿山机械",
-			"buyerclass": "传媒,检察院,民政,农业",
-			"createTime": time.Now().Unix(),
-		},
-		map[string]interface{}{
-			"id":         "5e8eb60ae138234b4f91aacc",
-			"keysItems":  "[{\"a_key\":[{\"appendkey\":[\"引擎\"],\"key\":[\"软件\"],\"matchway\":1,\"notkey\":[\"网站\"],\"updatetime\":1640657393},{\"appendkey\":[\"人工\"],\"key\":[\"智能\"],\"matchway\":0,\"notkey\":[\"报告\"],\"updatetime\":1640657384}],\"s_item\":\"科技\",\"updatetime\":1640657329},{\"a_key\":[{\"appendkey\":[\"绿化\"],\"key\":[\"道路\"],\"matchway\":0,\"notkey\":[\"路面\"],\"updatetime\":1640657384}],\"s_item\":\"建筑\",\"updatetime\":1640657329}]",
-			"rangeTime":  "1546272000-1609430400",
-			"city":       "郑州,开封,商丘",
-			"area":       "北京",
-			"industry":   "行政办公_办公用品,能源化工_化工产品,机械设备_矿山机械",
-			"buyerclass": "传媒,检察院,民政,农业",
-			"createTime": time.Now().Unix(),
-		},
-	}
-)
-
 //checkPower 权限校验
 //checkPower 权限校验
-func checkPower(userId string) error {
+func checkPower(userId string) (string, error) {
 	if userId == "" {
 	if userId == "" {
-		return fmt.Errorf("未登录")
+		return "", fmt.Errorf("未登录")
 	}
 	}
 	//仅购买《周报/月报/定制化市场分析报告》的大会员有权限
 	//仅购买《周报/月报/定制化市场分析报告》的大会员有权限
 	bigMeg := jy.GetBigVipUserBaseMsg(userId, db.Mysql, db.Mgo)
 	bigMeg := jy.GetBigVipUserBaseMsg(userId, db.Mysql, db.Mgo)
 	if bigMeg.Status <= 0 || !bigMeg.CheckBigVipBackPower("report") {
 	if bigMeg.Status <= 0 || !bigMeg.CheckBigVipBackPower("report") {
-		return fmt.Errorf("非法请求")
+		return "", fmt.Errorf("非法请求")
 	}
 	}
-	return nil
+	return bigMeg.Pid, nil
 }
 }
 
 
 //DoAnalysis 开始分析报告
 //DoAnalysis 开始分析报告
 func (this *MarketAnalysis) DoAnalysis() {
 func (this *MarketAnalysis) DoAnalysis() {
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {
 	rData, errMsg := func() (interface{}, error) {
-		if err := checkPower(userId); err != nil {
-			return nil, err
+		pid, powerErr := checkPower(userId)
+		if powerErr != nil {
+			return nil, powerErr
 		}
 		}
 		//接受参数
 		//接受参数
 		bParam := marketAnalysis.AnalysisRequestParam{
 		bParam := marketAnalysis.AnalysisRequestParam{
@@ -87,7 +50,7 @@ func (this *MarketAnalysis) DoAnalysis() {
 			Industry:     this.GetString("industry"),   //行业【字符串】多个行业用逗号拼接
 			Industry:     this.GetString("industry"),   //行业【字符串】多个行业用逗号拼接
 			BuyerClass:   this.GetString("buyerclass"), //采购单位类型【字符串】多个采购单位类型用逗号拼接
 			BuyerClass:   this.GetString("buyerclass"), //采购单位类型【字符串】多个采购单位类型用逗号拼接
 		}
 		}
-		mae := &marketAnalysis.MarketAnalysisEntity{BaseParam: bParam}
+		mae := &marketAnalysis.MarketAnalysisEntity{BaseParam: bParam, UId: userId, Pid: pid}
 		if err := mae.ForMatData(); err != nil {
 		if err := mae.ForMatData(); err != nil {
 			return nil, err
 			return nil, err
 		}
 		}
@@ -107,10 +70,11 @@ func (this *MarketAnalysis) DoAnalysis() {
 func (this *MarketAnalysis) GetAnalysisResult() {
 func (this *MarketAnalysis) GetAnalysisResult() {
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {
 	rData, errMsg := func() (interface{}, error) {
-		if err := checkPower(userId); err != nil {
-			return nil, err
+		pid, powerErr := checkPower(userId)
+		if powerErr != nil {
+			return nil, powerErr
 		}
 		}
-		mae := &marketAnalysis.MarketAnalysisEntity{MgoRecordId: util.DecodeId(this.GetString("rid"))}
+		mae := &marketAnalysis.MarketAnalysisEntity{MgoRecordId: util.DecodeId(this.GetString("rid")), UId: userId, Pid: pid}
 		if err := mae.GetAnalysisFromMgoDb(); err != nil {
 		if err := mae.GetAnalysisFromMgoDb(); err != nil {
 			return nil, err
 			return nil, err
 		}
 		}
@@ -136,8 +100,9 @@ func (this *MarketAnalysis) GetAnalysisResult() {
 func (this *MarketAnalysis) AnalysisHistory() {
 func (this *MarketAnalysis) AnalysisHistory() {
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {
 	rData, errMsg := func() (interface{}, error) {
-		if err := checkPower(userId); err != nil {
-			return nil, err
+		pid, powerErr := checkPower(userId)
+		if powerErr != nil {
+			return nil, powerErr
 		}
 		}
 		//接受参数
 		//接受参数
 		pageNum, pageNumErr := this.GetInteger("pageNum") //页码
 		pageNum, pageNumErr := this.GetInteger("pageNum") //页码
@@ -146,14 +111,13 @@ func (this *MarketAnalysis) AnalysisHistory() {
 		}
 		}
 		pageSize, pageSizeErr := this.GetInteger("pageSize") //每页数量
 		pageSize, pageSizeErr := this.GetInteger("pageSize") //每页数量
 		if pageSizeErr != nil {
 		if pageSizeErr != nil {
-			pageNum = 10
+			pageSize = 10
 		}
 		}
-		log.Printf("%s DoAnalysis 接受到的参数\n pageNum:%s\n pageSize:%s\n ", userId, pageNum, pageSize)
-
-		//模拟返回数据
+		mae := &marketAnalysis.MarketAnalysisEntity{UId: userId, Pid: pid}
+		total, list := mae.GetRecordList(pageNum, pageSize)
 		return map[string]interface{}{
 		return map[string]interface{}{
-			"total": len(historyReport),
-			"list":  historyReport[pageNum-1*pageSize : pageNum*pageSize],
+			"total": total,
+			"list":  list,
 		}, nil
 		}, nil
 	}()
 	}()
 	if errMsg != nil {
 	if errMsg != nil {