|
@@ -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 {
|