Quellcode durchsuchen

add: 推送研报小程序到同花顺

hsun vor 3 Jahren
Ursprung
Commit
5c38f3e3e9
3 geänderte Dateien mit 82 neuen und 3 gelöschten Zeilen
  1. 3 0
      models/report.go
  2. 70 3
      services/report_push.go
  3. 9 0
      utils/constants.go

+ 3 - 0
models/report.go

@@ -29,6 +29,9 @@ type Report struct {
 	VideoName          string    `description:"音频文件名称"`
 	VideoPlaySeconds   string    `description:"音频播放时长"`
 	ContentSub         string    `description:"内容前两个章节"`
+	HasChapter         int       `description:"是否有章节 0-否 1-是"`
+	ChapterType        string    `description:"章节类型 day-晨报 week-周报"`
+	OldReportId        int       `description:"research_report表ID(后续一两个版本过渡需要,之后可移除)"`
 }
 
 func GetReportById(reportId int) (item *Report, err error) {

+ 70 - 3
services/report_push.go

@@ -11,6 +11,7 @@ import (
 	"io/ioutil"
 	"net/http"
 	"net/url"
+	"strconv"
 	"time"
 )
 
@@ -157,6 +158,11 @@ func SendToThs(sendDetailId, reportId int, reportType string) (err error) {
 		if tmpErr != nil {
 			err = tmpErr
 		}
+	case "研报":
+		tmpErr := SendReportMiniToThs(reportId)
+		if tmpErr != nil {
+			err = tmpErr
+		}
 	default:
 		err = errors.New("异常类型")
 	}
@@ -237,13 +243,13 @@ func SendReportToThs(reportId int) (err error) {
 	abstract := report.Abstract
 
 	// 实际推送到同花顺
-	err = SendThs(title, permissionStr, abstract, jumpUrl, logoUrl)
+	err = SendThs(title, permissionStr, abstract, jumpUrl, logoUrl, "1")
 
 	return
 }
 
 // SendThs 发送消息到同花顺
-func SendThs(title, labelStr, abstract, jumpBaseUrl, logoUrl string) (err error) {
+func SendThs(title, labelStr, abstract, jumpBaseUrl, logoUrl, dataType string) (err error) {
 	defer func() {
 		if err != nil {
 			//fmt.Println(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "发送消息至同花顺失败 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
@@ -286,7 +292,6 @@ func SendThs(title, labelStr, abstract, jumpBaseUrl, logoUrl string) (err error)
 		return
 	}
 
-	dataType := "1" //内容类型:1文字 2小程序
 	dataTypeEncript, err := gorsa.PublicEncrypt(dataType, pubKey)
 	if err != nil {
 		return
@@ -387,3 +392,65 @@ func SyncWxGroup(openCompanyCode, deadline string) (err error) {
 	}
 	return
 }
+
+// SendReportMiniToThs 发送报告小程序到同花顺
+func SendReportMiniToThs(reportId int) (err error) {
+	defer func() {
+		if err != nil {
+			//fmt.Println(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "发送消息至同花顺失败 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
+			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "SendReportMiniToThs延时任务发送报告至同花顺失败, ReportId:" + strconv.Itoa(reportId) + ", ErrMsg:"+err.Error(), utils.EmailSendToUsers)
+		}
+	}()
+
+	report, tmpErr := models.GetReportById(reportId)
+	if tmpErr != nil {
+		err = tmpErr
+		return
+	}
+
+	//小程序跳转地址
+	jumpBaseUrl := utils.WxYbAppId + `/pages-report/reportDetail?reportId=`
+	jumpUrl := fmt.Sprint(jumpBaseUrl, report.Id)
+	logoUrl := `https://hongze.oss-cn-shanghai.aliyuncs.com/hzyj.png`
+
+	var permissionStr string
+	if report.HasChapter == 0 {
+		// 获取分类信息(标签)
+		permissionName := report.ClassifyNameSecond
+		classifyItem, tmpErr := models.GetClassifyById(report.ClassifyIdSecond)
+		if tmpErr != nil {
+			err = errors.New(fmt.Sprint("获取分类失败:", permissionName))
+			return
+		}
+		// 获取权限标签名称
+		if classifyItem != nil {
+			permissionStr = classifyItem.ClassifyLabel
+			if permissionStr == "" {
+				var isOk bool
+				permissionStr, isOk = permissionMap[permissionName]
+				if !isOk {
+					err = errors.New(fmt.Sprint("没有该权限的标签,权限名:", permissionName))
+					return
+				}
+			}
+		} else {
+			var isOk bool
+			permissionStr, isOk = permissionMap[permissionName]
+			if !isOk {
+				err = errors.New(fmt.Sprint("没有该权限的标签,权限名:", permissionName))
+				return
+			}
+		}
+		if permissionStr == "" {
+			err = errors.New(fmt.Sprint("没有该权限的标签,权限名:", permissionName))
+			return
+		}
+	} else {
+		labelMap := map[string]string{utils.REPORT_TYPE_DAY: "晨报", utils.REPORT_TYPE_WEEK: "周报"}
+		permissionStr = labelMap[report.ChapterType]
+	}
+	// 实际推送到同花顺
+	err = SendThs(report.Title, permissionStr, report.Abstract, jumpUrl, logoUrl, "2")
+
+	return
+}

+ 9 - 0
utils/constants.go

@@ -113,4 +113,13 @@ var (
 var (
 	APP_EDB_LIB_NAME_EN = "hongze_edb_lib"
 	EDB_LIB_Md5_KEY     = "GuRaB6dY1bXOJcwG"
+)
+
+// 研报类型标识
+var (
+	REPORT_TYPE_DAY      = "day"
+	REPORT_TYPE_WEEK     = "week"
+	REPORT_TYPE_TWO_WEEK = "two_week"
+	REPORT_TYPE_MONTH    = "month"
+	REPORT_TYPE_OTHER    = "other"
 )