Эх сурвалжийг харах

fix:时间调整,每天的第一次同步,那么拉取数据的开始时间 需要 往前面推10个小时(避免因为晚上有客户看回放而把用户遗漏了)

Roc 2 жил өмнө
parent
commit
ee26bb7d23
2 өөрчлөгдсөн 41 нэмэгдсэн , 28 устгасан
  1. 3 1
      models/db.go
  2. 38 27
      services/comein.go

+ 3 - 1
models/db.go

@@ -74,7 +74,7 @@ func init() {
 	// 注册Edb指标 数据表
 	initEdbDataTable()
 
-	// 注册ETA表格 数据表
+	// 注册研报 数据表
 	initYbTable()
 }
 
@@ -131,5 +131,7 @@ func initYbTable() {
 		new(yb.ActivityVoice),    //研报活动语音表
 		new(yb.ActivityRegister), //研报活动报名表
 		new(yb.Speaker),          //研报主持人表
+		new(yb.ComeinEvent),      //进门会议表
+		new(yb.ComeinEventUser),  //进门会议用户表
 	)
 }

+ 38 - 27
services/comein.go

@@ -21,7 +21,15 @@ func SyncComeinMeeting(cont context.Context) (err error) {
 			}
 		}
 	}()
-	roadshowData, err := comein.GetRoadshowDataList(time.Now().AddDate(0, 0, -1).Unix()*1000, time.Now().Unix()*1000)
+	startTimeInt := time.Now().Add(3700*time.Second).Unix() * 1000 //开始时间
+	endTimeInt := time.Now().Unix() * 1000                         //结束时间
+
+	//每天的第一次同步,那么拉取数据的开始时间 需要 往前面推10个小时(避免因为晚上有客户看回放而把用户遗漏了)
+	if time.Now().Hour() == 7 {
+		startTimeInt = time.Now().Add(60*60*10*time.Second).Unix() * 1000
+	}
+
+	roadshowData, err := comein.GetRoadshowDataList(startTimeInt, endTimeInt)
 	if err != nil {
 		errMsgList = append(errMsgList, fmt.Sprintf("获取进门路演到会信息失败,%s,err:%s", time.Now().Format(utils.FormatDate), err.Error()))
 		return
@@ -43,35 +51,38 @@ func SyncComeinMeeting(cont context.Context) (err error) {
 		if v.UserPhone == "" { //如果手机号为空,那么就不处理了,进入下一个循环
 			continue
 		}
-		// 检测会议是否存在,不存在则创建会议
-		tmpComeinEvent, tmpErr := yb.GetComeinEventByRoadshowId(int(v.RoadshowID))
-		if tmpErr != nil {
-			if tmpErr.Error() == utils.ErrNoRow() {
-				//会议信息
-				tmpComeinEventInfo := &yb.ComeinEvent{
-					//ComeinEventId: 0,
-					RoadshowId: int(v.RoadshowID),
-					//ConferenceId: comeinDataInfo.ConferenceType,
-					Title:      v.RoadshowTitle,
-					StartTime:  time.Unix(v.RoadshowBeginTime/1000, 0),
-					EndTime:    time.Unix(v.RoadshowEndTime/1000, 0),
-					People:     0,
-					CreateTime: time.Now(),
-				}
-				tmpErr2 := yb.AddComeinEvent(tmpComeinEventInfo)
-				if tmpErr2 != nil {
-					//入库失败
-					errMsgList = append(errMsgList, fmt.Sprintf("路演id:%d,路演标题:%s,会议入库失败,err:%s", v.RoadshowID, v.RoadshowTitle, err.Error()))
+
+		tmpComeinEvent, ok := comeinEventMap[int(v.RoadshowID)]
+		if !ok {
+			// 检测会议是否存在,不存在则创建会议
+			tmpComeinEventInfo, tmpErr := yb.GetComeinEventByRoadshowId(int(v.RoadshowID))
+			if tmpErr != nil {
+				if tmpErr.Error() == utils.ErrNoRow() {
+					//会议信息
+					tmpComeinEventInfo = &yb.ComeinEvent{
+						//ComeinEventId: 0,
+						RoadshowId: int(v.RoadshowID),
+						//ConferenceId: comeinDataInfo.ConferenceType,
+						Title:      v.RoadshowTitle,
+						StartTime:  time.Unix(v.RoadshowBeginTime/1000, 0),
+						EndTime:    time.Unix(v.RoadshowEndTime/1000, 0),
+						People:     0,
+						CreateTime: time.Now(),
+					}
+					tmpErr2 := yb.AddComeinEvent(tmpComeinEventInfo)
+					if tmpErr2 != nil {
+						//入库失败
+						errMsgList = append(errMsgList, fmt.Sprintf("路演id:%d,路演标题:%s,会议入库失败,err:%s", v.RoadshowID, v.RoadshowTitle, err.Error()))
+						continue
+					}
+				} else {
+					//数据异常,sql异常
+					errMsgList = append(errMsgList, fmt.Sprintf("路演id:%d,路演标题:%s,查找会议失败,err:%s", v.RoadshowID, v.RoadshowTitle, err.Error()))
 					continue
 				}
-				comeinEventMap[int(v.RoadshowID)] = tmpComeinEventInfo
-			} else {
-				//数据异常,sql异常
-				errMsgList = append(errMsgList, fmt.Sprintf("路演id:%d,路演标题:%s,查找会议失败,err:%s", v.RoadshowID, v.RoadshowTitle, err.Error()))
-				continue
 			}
-		} else {
-			comeinEventMap[tmpComeinEvent.RoadshowId] = tmpComeinEvent
+			comeinEventMap[tmpComeinEventInfo.RoadshowId] = tmpComeinEventInfo
+			tmpComeinEvent = tmpComeinEventInfo
 		}
 
 		//校验该记录是否已经入库,如果已经入库,那么就不处理了,进入下一个循环