|
@@ -111,6 +111,7 @@ type MarketAnalysisEntity struct {
|
|
|
Phone string // 手机号
|
|
|
PositionId int
|
|
|
OriginalTotal int64 // 数据总数
|
|
|
+ Source string
|
|
|
}
|
|
|
|
|
|
type projectInfo struct {
|
|
@@ -222,6 +223,101 @@ func (mae *MarketAnalysisEntity) ForMatData() error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+// ForMatData 获取格式化请求参数
|
|
|
+func (mae *MarketAnalysisEntity) ForMatDataPdf() (string, error) {
|
|
|
+ //格式化订阅词
|
|
|
+ if err := json.Unmarshal([]byte(mae.BaseParam.KeysItemsStr), &mae.FormatParam.KeysItems); err != nil {
|
|
|
+ return "", fmt.Errorf("关键词组格式异常")
|
|
|
+ }
|
|
|
+
|
|
|
+ //格式化时间段
|
|
|
+ if timeArr := strings.Split(mae.BaseParam.RangeTime, "-"); len(timeArr) == 2 {
|
|
|
+ mae.FormatParam.STime = qutil.Int64All(timeArr[0])
|
|
|
+ mae.FormatParam.ETime = qutil.Int64All(timeArr[1])
|
|
|
+ if mae.FormatParam.STime == 0 || mae.FormatParam.ETime == 0 {
|
|
|
+ return "", fmt.Errorf("开始时间和结束时间不能为空")
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return "", fmt.Errorf("时间戳格式异常")
|
|
|
+ }
|
|
|
+ //格式化省份、城市
|
|
|
+ if areaStr := strings.TrimSpace(mae.BaseParam.Area); areaStr != "" {
|
|
|
+ imap := map[string][]string{}
|
|
|
+ if err := json.Unmarshal([]byte(mae.BaseParam.Area), &imap); err != nil {
|
|
|
+ return "", fmt.Errorf("非法地区信息")
|
|
|
+ }
|
|
|
+ var city, area []string
|
|
|
+ for name, v := range imap {
|
|
|
+ if len(v) == 0 {
|
|
|
+ area = append(area, name)
|
|
|
+ } else {
|
|
|
+ for _, vv := range v {
|
|
|
+ city = append(city, vv)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ mae.FormatParam.Area = area
|
|
|
+ mae.FormatParam.City = city
|
|
|
+ }
|
|
|
+ //格式化行业
|
|
|
+ if industryStr := strings.TrimSpace(mae.BaseParam.Industry); industryStr != "" {
|
|
|
+ imap := map[string][]string{}
|
|
|
+ if err := json.Unmarshal([]byte(industryStr), &imap); err != nil {
|
|
|
+ return "", fmt.Errorf("非法行业信息")
|
|
|
+ }
|
|
|
+ var farr []string
|
|
|
+ for name, v := range imap {
|
|
|
+ for _, vv := range v {
|
|
|
+ farr = append(farr, fmt.Sprintf("%s_%s", name, vv))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ mae.FormatParam.Industry = farr
|
|
|
+ }
|
|
|
+ //格式化类型
|
|
|
+ if buyerClassStr := strings.TrimSpace(mae.BaseParam.BuyerClass); buyerClassStr != "" {
|
|
|
+ mae.FormatParam.BuyerClass = strings.Split(buyerClassStr, ",")
|
|
|
+ }
|
|
|
+ //中标企业
|
|
|
+ mae.FormatParam.Winner = mae.BaseParam.Winner
|
|
|
+ //采购单位
|
|
|
+ mae.FormatParam.Buyer = mae.BaseParam.Buyer
|
|
|
+ //排序
|
|
|
+ mae.FormatParam.Sort = qutil.If(mae.BaseParam.Sort != 0 && mae.BaseParam.Sort != 1, 0, mae.BaseParam.Sort).(int)
|
|
|
+ if mae.BaseParam.PageNum*mae.BaseParam.PageSize > config.Config.ProjectCount {
|
|
|
+ mae.BaseParam.PageNum = config.Config.ProjectCount / mae.BaseParam.PageSize
|
|
|
+ }
|
|
|
+ //当前页码
|
|
|
+ mae.FormatParam.PageNum = qutil.If(mae.BaseParam.PageNum < 1 || mae.BaseParam.PageNum > 1000, 1, mae.BaseParam.PageNum).(int)
|
|
|
+ //默认每页10条
|
|
|
+ mae.FormatParam.PageSize = qutil.If(mae.BaseParam.PageSize < 1 || mae.BaseParam.PageSize > 100, 50, mae.BaseParam.PageSize).(int)
|
|
|
+
|
|
|
+ data := map[string]interface{}{
|
|
|
+ "s_keysItems": mae.BaseParam.KeysItemsStr,
|
|
|
+ "s_rangeTime": mae.BaseParam.RangeTime,
|
|
|
+ "s_rangeTimeExtra": mae.BaseParam.RangeTimeExtra,
|
|
|
+ "s_area": mae.BaseParam.Area,
|
|
|
+ "s_industry": mae.BaseParam.Industry,
|
|
|
+ "s_buyerClass": mae.BaseParam.BuyerClass,
|
|
|
+ "s_matchingMode": mae.BaseParam.MatchingMode,
|
|
|
+ "s_userId": mae.UId,
|
|
|
+ "s_parentId": mae.Pid,
|
|
|
+ "s_mgoUserId": mae.MgoUserId,
|
|
|
+ "i_positionId": mae.PositionId,
|
|
|
+ "s_phone": mae.Phone,
|
|
|
+ }
|
|
|
+ if mae.OriginalTotal > 0 {
|
|
|
+ data["l_originalTotal"] = mae.OriginalTotal
|
|
|
+ }
|
|
|
+ if mae.Source != "" {
|
|
|
+ data["source"] = mae.Source
|
|
|
+ }
|
|
|
+ rs, b := db.Mgo.FindOne(ReportHistoryTable, data)
|
|
|
+ if b && rs != nil {
|
|
|
+ return mongodb.BsonIdToSId((*rs)["_id"]), nil
|
|
|
+ }
|
|
|
+ return "", nil
|
|
|
+}
|
|
|
+
|
|
|
// GetProjectInfoList 项目明细
|
|
|
func (mae *MarketAnalysisEntity) GetProjectInfoList() error {
|
|
|
var (
|
|
@@ -298,6 +394,9 @@ func (mae *MarketAnalysisEntity) SaveAnalysisRecord() error {
|
|
|
if mae.OriginalTotal > 0 {
|
|
|
data["l_originalTotal"] = mae.OriginalTotal
|
|
|
}
|
|
|
+ if mae.Source != "" {
|
|
|
+ data["source"] = mae.Source
|
|
|
+ }
|
|
|
mae.MgoRecordId = db.Mgo.Save(ReportHistoryTable, data)
|
|
|
if mae.MgoRecordId == "" {
|
|
|
return fmt.Errorf("分析创建异常")
|