duxin 1 éve
szülő
commit
3adcd3d36c
3 módosított fájl, 44 hozzáadás és 21 törlés
  1. 11 1
      main.go
  2. 1 1
      manager/columnCron.go
  3. 32 19
      manager/manager.go

+ 11 - 1
main.go

@@ -34,7 +34,17 @@ func main() {
 		cronJobName = append(cronJobName, "ColumnCronJob")
 	}
 
-	//每日8点同步前天数据
+	//每日8点同步前天数据 热门数据
+	if dataSignCron := g.Cfg().MustGet(mainCtx, "runData.dataHotSign").String(); dataSignCron != "" {
+		if _, err := gcron.Add(gctx.New(), g.Cfg().MustGet(mainCtx, "runData.dataHotSign").String(), func(ctx context.Context) {
+			manager.GobalManager.RunHotSign(ctx)
+		}, "dataHotSignJob"); err != nil {
+			g.Log().Panic(gctx.New(), "%v", err)
+		}
+		cronJobName = append(cronJobName, "dataHotSignJob")
+	}
+
+	//2h同步一次表标签数据
 	if dataSignCron := g.Cfg().MustGet(mainCtx, "runData.dataSign").String(); dataSignCron != "" {
 		if _, err := gcron.Add(gctx.New(), g.Cfg().MustGet(mainCtx, "runData.dataSign").String(), func(ctx context.Context) {
 			manager.GobalManager.RunDataSign(ctx)

+ 1 - 1
manager/columnCron.go

@@ -285,7 +285,7 @@ func SaveProjectSign(ctx context.Context, arr []*ProjectSign) {
 		if i != 0 {
 			sql += ","
 		}
-		sql += fmt.Sprintf(" ('%s','%s','%s','%s','%s',bitmapBuild(%v),'%s') ", data.Bid_id, data.Title, data.Nature, data.Ownerclass, data.Category, gconv.String(data.Sign), data.Publish_time.Format(date2.Date_Full_Layout))
+		sql += fmt.Sprintf(" ('%s','%s','%s','%s','%s','%s','%s',bitmapBuild(%v),'%s') ", data.Bid_id, data.Title, data.Stage, data.Area, data.Nature, data.Ownerclass, data.Category, gconv.String(data.Sign), data.Publish_time.Format(date2.Date_Full_Layout))
 	}
 	if _, err := g.DB().Exec(ctx, sql); err != nil {
 		fmt.Println(sql)

+ 32 - 19
manager/manager.go

@@ -73,14 +73,14 @@ func (m runManager) RunColumnCron() {
 }
 
 func (m *runManager) RunDataSign(ctx context.Context) {
-	st, et := eTime()
+	st, et := SignTime()
 	GetProjectSign(ctx, st, et) //前一天拟建标签
 	GetBidSign(ctx, st, et)     //前一天标讯标签
-	GetHotSign(ctx)             //热门标签
+	//GetHotSign(ctx)             //热门标签
 }
 
 // 热门标签统计
-func GetHotSign(ctx context.Context) {
+func (m *runManager) RunHotSign(ctx context.Context) {
 	var (
 		total, count int
 	)
@@ -112,16 +112,19 @@ func GetProjectSign(ctx context.Context, st, et int64) {
 	defer db.ProposedMgo.DestoryMongoConn(sess)
 	query := bson.M{
 		"nav_column": bson.M{"$exists": true},
-		"pici":       bson.M{"$gte": st, "$lte": et},
+		"pici":       bson.M{"$gte": st, "$lt": et},
 	}
+
 	it := sess.DB(db.ProposedMgoConf.DbName).C(db.ProposedMgoConf.Collection).Find(query).Select(map[string]interface{}{
-		"_id":             1,
-		"nature_code":     1,
-		"ownerclass_code": 1,
-		"category_code":   1,
-		"projectname":     1,
-		"nav_column":      1,
-		"firsttime":       1,
+		"_id":                1,
+		"nature_code":        1,
+		"area":               1,
+		"project_stage_code": 1,
+		"ownerclass_code":    1,
+		"category_code":      1,
+		"projectname":        1,
+		"nav_column":         1,
+		"lasttime":           1,
 	}).Iter()
 	var (
 		projectSignArr []*ProjectSign
@@ -138,14 +141,16 @@ func GetProjectSign(ctx context.Context, st, et int64) {
 		bs := &ProjectSign{
 			Bid_id:       mongodb.BsonIdToSId(cMap["_id"]),
 			Title:        gconv.String(cMap["projectname"]),
+			Stage:        gconv.String(cMap["project_stage_code"]),
+			Area:         gconv.String(cMap["area"]),
 			Nature:       gconv.String(cMap["nature_code"]),
 			Ownerclass:   gconv.String(cMap["ownerclass_code"]),
 			Category:     gconv.String(cMap["category_code"]),
 			Sign:         convertToBitmap(gconv.Int(cMap["nav_column"])),
-			Publish_time: time.Unix(gconv.Int64(cMap["firsttime"]), 0),
+			Publish_time: time.Unix(gconv.Int64(cMap["lasttime"]), 0),
 		}
 		projectSignArr = append(projectSignArr, bs)
-		if len(projectSignArr) > 100 {
+		if len(projectSignArr) == 100 {
 			SaveProjectSign(ctx, projectSignArr)
 			projectSignArr = []*ProjectSign{}
 		}
@@ -154,23 +159,23 @@ func GetProjectSign(ctx context.Context, st, et int64) {
 	if len(projectSignArr) > 0 {
 		SaveProjectSign(ctx, projectSignArr)
 	}
-	g.Log().Infof(ctx, "GetProjectSign date :%s 总加载%d条数据", time.Now().String(), total)
+	g.Log().Infof(ctx, "GetProjectSign query :%v 总加载%d条数据", query, total)
 }
 
 // 标讯标签统计
 func GetBidSign(ctx context.Context, st, et int64) {
-	sOfDay, eOfDay := eTime()
-	queryStr := fmt.Sprintf(`SELECT bid_id FROM new_bidList  WHERE pici >= %d and pici <= %d `, sOfDay, eOfDay)
+	//_, eOfDay := eTime()
+	queryStr := fmt.Sprintf(`SELECT bid_id FROM new_bidList  WHERE pici >= %d and pici <= %d `, st, time.Now().Unix())
 	bidListId := getNewBidList(ctx, queryStr)
 	if bidListId == nil || len(*bidListId) == 0 {
-		g.Log().Infof(ctx, "new_bidList 信息获取失败", time.Now())
+		g.Log().Infof(ctx, "new_bidList 信息获取失败stime:%d,etime:%v", st, time.Now())
 		return
 	}
 	sess := db.Mgo.GetMgoConn()
 	defer db.Mgo.DestoryMongoConn(sess)
 	query := bson.M{
 		"nav_column": bson.M{"$exists": true},
-		"pici":       bson.M{"$gte": st, "$lte": et},
+		"pici":       bson.M{"$gte": st, "$lt": et},
 	}
 	it := sess.DB(db.MongdbConf.DbName).C(db.MongdbConf.Collection).Find(query).Select(map[string]interface{}{
 		"_id":         1,
@@ -214,7 +219,7 @@ func GetBidSign(ctx context.Context, st, et int64) {
 		SaveBidSign(ctx, bidSignArr)
 	}
 	RepeatIds(ctx)
-	g.Log().Infof(ctx, "GetBidSign date :%s 总加载%d条数据", time.Now().String(), total)
+	g.Log().Infof(ctx, "GetBidSign date :%d 总加载%d条数据", st, total)
 }
 
 func getNewBidList(ctx context.Context, queryStr string) *map[string]bool {
@@ -241,6 +246,12 @@ func eTime() (int64, int64) {
 	return sOfDay.Unix(), eOfDay.Unix()
 }
 
+func SignTime() (int64, int64) {
+	tm := time.Now()
+	// 转换为时间戳
+	return tm.Add(-4 * time.Hour).Unix(), tm.Add(-2 * time.Hour).Unix()
+}
+
 func ColumnInit() {
 	TitleRemoval = map[string]bool{}
 	ColumnNumber = map[columnType]int{}
@@ -348,6 +359,8 @@ func (m *runManager) RunColumnData(ctx context.Context) {
 type ProjectSign struct {
 	Bid_id       string    `json:"bid_id"`
 	Title        string    `json:"title"`
+	Stage        string    `json:"stage"`
+	Area         string    `json:"area"`
 	Nature       string    `json:"nature"`
 	Ownerclass   string    `json:"ownerclass"`
 	Category     string    `json:"category"`