Browse Source

fix:语音播报推送同花顺改为实时推送

Roc 2 years ago
parent
commit
79e94a2455
1 changed files with 72 additions and 50 deletions
  1. 72 50
      services/report_push.go

+ 72 - 50
services/report_push.go

@@ -73,6 +73,7 @@ ZwIDAQAB
 		THS_SendUrl = `https://mtest.10jqka.com.cn/gateway/ps/syncNews`
 	}
 }
+
 // SendThs 发送消息到同花顺
 func SendThs(title, labelStr, abstract, jumpBaseUrl, logoUrl, dataType string) (err error) {
 	defer func() {
@@ -182,58 +183,79 @@ func SendVoiceBroadcastToThs(voice *voice_broadcast.VoiceBroadcast) (err error)
 		}
 	}
 
-	pushTime := time.Now()      //预发送时间
-	isPrePush := false          //是否预发布
-	addTime := time.Minute * 40 //短时间内多次发布报告,每篇报告的间隔时间(目前暂定40分钟,只有日度点评的报告需要限制)
-
-	//获取距离现在最近的一条发送成功失败记录
-	latelySendDetail, err := models.GetLatelyReportSendThsDetail()
-	//如果存在最近一条发送记录,那么去校验时间
-	if (err == nil && latelySendDetail != nil) || err == utils.ErrNoRow {
-		pushTime = latelySendDetail.PushTime.Add(addTime)
-		//如果最近一条的发送记录 的 (发送时间 + 每篇报告的间隔时间)  晚于 当前时间
-		if pushTime.After(time.Now()) {
-			isPrePush = true
-		} else {
-			pushTime = time.Now()
-		}
-	}
+	pushTime := time.Now() //预发送时间
+	//isPrePush := false          //是否预发布
+	//addTime := time.Minute * 40 //短时间内多次发布报告,每篇报告的间隔时间(目前暂定40分钟,只有日度点评的报告需要限制)
 
-	if isPrePush { //预发布,只添加预发布记录,不立马发送报告,等待定时任务推送消息给同花顺
-		newSendDetail := &models.ReportSendThsDetail{
-			ReportId:   voice.BroadcastId,
-			ReportType: "语音播报",
-			Status:     2,
-			PushTime:   pushTime,
-			CreateTime: time.Now(),
-		}
-		_, tmpErr := models.AddReportSendThsDetail(newSendDetail)
-		if tmpErr != nil {
-			err = tmpErr
-			return
-		}
-	} else {
-		newSendDetail := &models.ReportSendThsDetail{
-			ReportId:   voice.BroadcastId,
-			ReportType: "语音播报",
-			Status:     0,
-			PushTime:   pushTime,
-			CreateTime: time.Now(),
-		}
-		sendDetailId, tmpErr := models.AddReportSendThsDetail(newSendDetail)
-		if tmpErr != nil {
-			err = tmpErr
-			return
-		}
-		//及时发送
-		dataType := "2" //内容类型:1文字 2小程序
-		err = SendThs(voice.BroadcastName, permissionName, voice.BroadcastName, fmt.Sprint(jumpBaseUrl, voice.BroadcastId), logoUrl, dataType)
-		if err != nil {
-			_ = models.ModifyReportSendThsDetailStatus(int(sendDetailId), -1, err.Error())
-			return
-		}
-		_ = models.ModifyReportSendThsDetailStatus(int(sendDetailId), 1, "")
+	////获取距离现在最近的一条发送成功失败记录
+	//latelySendDetail, err := models.GetLatelyReportSendThsDetail()
+	////如果存在最近一条发送记录,那么去校验时间
+	//if (err == nil && latelySendDetail != nil) || err == utils.ErrNoRow {
+	//	pushTime = latelySendDetail.PushTime.Add(addTime)
+	//	//如果最近一条的发送记录 的 (发送时间 + 每篇报告的间隔时间)  晚于 当前时间
+	//	if pushTime.After(time.Now()) {
+	//		isPrePush = true
+	//	} else {
+	//		pushTime = time.Now()
+	//	}
+	//}
+	//
+	//if isPrePush { //预发布,只添加预发布记录,不立马发送报告,等待定时任务推送消息给同花顺
+	//	newSendDetail := &models.ReportSendThsDetail{
+	//		ReportId:   voice.BroadcastId,
+	//		ReportType: "语音播报",
+	//		Status:     2,
+	//		PushTime:   pushTime,
+	//		CreateTime: time.Now(),
+	//	}
+	//	_, tmpErr := models.AddReportSendThsDetail(newSendDetail)
+	//	if tmpErr != nil {
+	//		err = tmpErr
+	//		return
+	//	}
+	//} else {
+	//	newSendDetail := &models.ReportSendThsDetail{
+	//		ReportId:   voice.BroadcastId,
+	//		ReportType: "语音播报",
+	//		Status:     0,
+	//		PushTime:   pushTime,
+	//		CreateTime: time.Now(),
+	//	}
+	//	sendDetailId, tmpErr := models.AddReportSendThsDetail(newSendDetail)
+	//	if tmpErr != nil {
+	//		err = tmpErr
+	//		return
+	//	}
+	//	//及时发送
+	//	dataType := "2" //内容类型:1文字 2小程序
+	//	err = SendThs(voice.BroadcastName, permissionName, voice.BroadcastName, fmt.Sprint(jumpBaseUrl, voice.BroadcastId), logoUrl, dataType)
+	//	if err != nil {
+	//		_ = models.ModifyReportSendThsDetailStatus(int(sendDetailId), -1, err.Error())
+	//		return
+	//	}
+	//	_ = models.ModifyReportSendThsDetailStatus(int(sendDetailId), 1, "")
+	//}
+
+	newSendDetail := &models.ReportSendThsDetail{
+		ReportId:   voice.BroadcastId,
+		ReportType: "语音播报",
+		Status:     0,
+		PushTime:   pushTime,
+		CreateTime: time.Now(),
+	}
+	sendDetailId, tmpErr := models.AddReportSendThsDetail(newSendDetail)
+	if tmpErr != nil {
+		err = tmpErr
+		return
+	}
+	//及时发送
+	dataType := "2" //内容类型:1文字 2小程序
+	err = SendThs(voice.BroadcastName, permissionName, voice.BroadcastName, fmt.Sprint(jumpBaseUrl, voice.BroadcastId), logoUrl, dataType)
+	if err != nil {
+		_ = models.ModifyReportSendThsDetailStatus(int(sendDetailId), -1, err.Error())
+		return
 	}
+	_ = models.ModifyReportSendThsDetailStatus(int(sendDetailId), 1, "")
 
 	return
 }