Browse Source

修改报告bug

317699326@qq.com 4 days ago
parent
commit
a897f71e5e
3 changed files with 140 additions and 71 deletions
  1. 39 7
      controllers/report_v2.go
  2. 69 34
      services/report_v2.go
  3. 32 30
      utils/constants.go

File diff suppressed because it is too large
+ 39 - 7
controllers/report_v2.go


+ 69 - 34
services/report_v2.go

@@ -15,6 +15,7 @@ import (
 	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/utils"
 	"fmt"
+	"github.com/PuerkitoBio/goquery"
 	"github.com/rdlucklib/rdluck_tools/file"
 	"github.com/rdlucklib/rdluck_tools/http"
 	html2 "golang.org/x/net/html"
@@ -1951,40 +1952,41 @@ func processMapTable(data map[string]interface{}, reportId, fromScene int) error
 	return nil
 }
 
-// HandleReportContent
-// @Description: 处理报告内容(动态图表/表格添加授权token)
-// @author: Roc
-// @datetime 2025-01-07 10:03:15
-// @param body string
-// @return newBody string
-func HandleReportContent(body string, opType string, tokenMap map[string]string) (newBody string) {
-	if body == `` {
-		return
-	}
-	newBody = body
-
-	// 解析HTML
-	doc, err := html2.Parse(strings.NewReader(body))
-	if err != nil {
-		fmt.Println("Error parsing HTML:", err)
-		return
-	}
-
-	replaceIframeSrc(doc, opType, tokenMap)
-
-	// 输出修改后的HTML
-	var modifiedHtml strings.Builder
-	err = html2.Render(&modifiedHtml, doc)
-	if err != nil {
-		fmt.Println("Error rendering HTML:", err)
-		return
-	}
-
-	newBody = modifiedHtml.String()
-	fmt.Println(newBody)
-
-	return
-}
+//
+//// HandleReportContent
+//// @Description: 处理报告内容(动态图表/表格添加授权token)
+//// @author: Roc
+//// @datetime 2025-01-07 10:03:15
+//// @param body string
+//// @return newBody string
+//func HandleReportContent(body string, opType string, tokenMap map[string]string) (newBody string) {
+//	if body == `` {
+//		return
+//	}
+//	newBody = body
+//
+//	// 解析HTML
+//	doc, err := html2.Parse(strings.NewReader(body))
+//	if err != nil {
+//		fmt.Println("Error parsing HTML:", err)
+//		return
+//	}
+//
+//	replaceIframeSrc(doc, opType, tokenMap)
+//
+//	// 输出修改后的HTML
+//	var modifiedHtml strings.Builder
+//	err = html2.Render(&modifiedHtml, doc)
+//	if err != nil {
+//		fmt.Println("Error rendering HTML:", err)
+//		return
+//	}
+//
+//	newBody = modifiedHtml.String()
+//	fmt.Println(newBody)
+//
+//	return
+//}
 
 // replaceIframeSrc 遍历HTML节点,替换iframe的src属性
 func replaceIframeSrc(n *html2.Node, opType string, tokenMap map[string]string) {
@@ -2354,3 +2356,36 @@ func FilterShareUrl() web.FilterFunc {
 		utils.ApiLog.Info(fmt.Sprintf("原始请求为:%s, 已修改请求路径为:%s?%s", path, newPath, q.Encode()))
 	}
 }
+
+// HandleReportContent
+// @Description: 处理报告内容(动态图表/表格添加授权token)
+// @author: Roc
+// @datetime 2025-01-07 10:03:15
+// @param body string
+// @return newBody string
+func HandleReportContent(body string, opType string, tokenMap map[string]string) (newBody string) {
+	if body == `` {
+		return
+	}
+	newBody = body
+	doc, err := goquery.NewDocumentFromReader(strings.NewReader(newBody))
+	if err != nil {
+		return ""
+	}
+	doc.Find("iframe").Each(func(i int, f *goquery.Selection) {
+		src, exist := f.Attr("src")
+		if exist {
+			var newLink string
+			switch opType {
+			case `add`:
+				newLink = linkAddToken(src, tokenMap)
+			case `del`:
+				newLink = linkDelToken(src)
+			}
+			f.SetAttr("src", newLink)
+		}
+	})
+
+	newBody, _ = doc.Find("body").Children().Html()
+	return newBody
+}

+ 32 - 30
utils/constants.go

@@ -223,29 +223,29 @@ const (
 
 // 缓存key
 const (
-	CACHE_KEY_LOGS                    = "HZ_ADMIN_CACHE_KEY_LOGS"             //api用户操作日志队列
-	CACHE_KEY_ADMIN                   = "calendar:admin:list"                 //系统用户列表缓存key
-	CACHE_KEY_ADMIN_ID                = "calendar:admin:id:list"              //系统用户列表缓存key
-	CACHE_KEY_OLD_REPORT_PUBLISH      = "HZ_CACHE_KEY_OLD_REPORT_PUBLISH"     //老后台报告发布队列
-	CACHE_ADMIN_YB_CONFIG             = "admin:yb_config:"                    //研报配置相关缓存前缀
-	CACHE_WIND_URL                    = "CACHE_WIND_URL"                      //指标与wind服务器的绑定关系
-	CACHE_CHART_INFO_DATA             = "chart:info:data:"                    //图表数据
-	CACHE_CHART_CLASSIFY              = "chart:classify"                      //图表分类数据
-	CACHE_IMPORT_MANUAL_DATA          = "import:manual:data"                  //手工数据导入后刷新
-	CACHE_MYSTEEL_CHEMICAL_ADD_DATA   = "import:mysteelchemical:data"         //上海钢联的数据源导入后刷新
-	CACHE_ACCESS_TOKEN_LOGIN          = "pc_eta_admin:login:"                 //管理后台登录
-	CACHE_ACCESS_TOKEN_LOGIN_NO_TRUST = "pc_eta_admin:login:no_trust:"        //管理后台登录(不可信登录态)
-	CACHE_ABNORMAL_LOGIN              = "pc_eta_admin:login:abnormal:"        //管理后台登录-异常登录
-	CACHE_LOGIN_ERR_PASS              = "pc_eta_admin:login:errPass:"         //管理后台登录-输入错误密码次数
-	MOBILE_CACHE_ABNORMAL_LOGIN       = "mobile_eta_admin:login:abnormal:"        //管理后台登录-异常登录
-	MOBILE_CACHE_LOGIN_ERR_PASS             = "mobile_eta_admin:login:errPass:"         //管理后台登录-输入错误密码次数
-
-	CACHE_FIND_PASS_VERIFY            = "pc_eta_admin:findPass:verify:"       //找回密码校验成功标记
-	CACHE_KEY_MYSTEEL_REFRESH         = "mysteel_chemical:refresh"            //上海钢联刷新
-	CACHE_KEY_DAYNEW_REFRESH          = "admin:day_new:refresh"               //每日资讯拉取企业微信聊天记录
-	CACHE_KEY_DAYNEW_TRANSLATE        = "admin:day_new:translate"             //每日资讯中翻英
-	CACHE_KEY_ADMIN_OPERATE_RECORD    = "HZ_ADMIN_CACHE_ADMIN_OPERATE_RECORD" //系统用户操作日志队列
-	CACHE_KEY_EDBINFO_ADD             = "eta_api:edbinfo:add"                 //手工指标录入的key
+	CACHE_KEY_LOGS                    = "HZ_ADMIN_CACHE_KEY_LOGS"          //api用户操作日志队列
+	CACHE_KEY_ADMIN                   = "calendar:admin:list"              //系统用户列表缓存key
+	CACHE_KEY_ADMIN_ID                = "calendar:admin:id:list"           //系统用户列表缓存key
+	CACHE_KEY_OLD_REPORT_PUBLISH      = "HZ_CACHE_KEY_OLD_REPORT_PUBLISH"  //老后台报告发布队列
+	CACHE_ADMIN_YB_CONFIG             = "admin:yb_config:"                 //研报配置相关缓存前缀
+	CACHE_WIND_URL                    = "CACHE_WIND_URL"                   //指标与wind服务器的绑定关系
+	CACHE_CHART_INFO_DATA             = "chart:info:data:"                 //图表数据
+	CACHE_CHART_CLASSIFY              = "chart:classify"                   //图表分类数据
+	CACHE_IMPORT_MANUAL_DATA          = "import:manual:data"               //手工数据导入后刷新
+	CACHE_MYSTEEL_CHEMICAL_ADD_DATA   = "import:mysteelchemical:data"      //上海钢联的数据源导入后刷新
+	CACHE_ACCESS_TOKEN_LOGIN          = "pc_eta_admin:login:"              //管理后台登录
+	CACHE_ACCESS_TOKEN_LOGIN_NO_TRUST = "pc_eta_admin:login:no_trust:"     //管理后台登录(不可信登录态)
+	CACHE_ABNORMAL_LOGIN              = "pc_eta_admin:login:abnormal:"     //管理后台登录-异常登录
+	CACHE_LOGIN_ERR_PASS              = "pc_eta_admin:login:errPass:"      //管理后台登录-输入错误密码次数
+	MOBILE_CACHE_ABNORMAL_LOGIN       = "mobile_eta_admin:login:abnormal:" //管理后台登录-异常登录
+	MOBILE_CACHE_LOGIN_ERR_PASS       = "mobile_eta_admin:login:errPass:"  //管理后台登录-输入错误密码次数
+
+	CACHE_FIND_PASS_VERIFY         = "pc_eta_admin:findPass:verify:"       //找回密码校验成功标记
+	CACHE_KEY_MYSTEEL_REFRESH      = "mysteel_chemical:refresh"            //上海钢联刷新
+	CACHE_KEY_DAYNEW_REFRESH       = "admin:day_new:refresh"               //每日资讯拉取企业微信聊天记录
+	CACHE_KEY_DAYNEW_TRANSLATE     = "admin:day_new:translate"             //每日资讯中翻英
+	CACHE_KEY_ADMIN_OPERATE_RECORD = "HZ_ADMIN_CACHE_ADMIN_OPERATE_RECORD" //系统用户操作日志队列
+	CACHE_KEY_EDBINFO_ADD          = "eta_api:edbinfo:add"                 //手工指标录入的key
 
 	CACHE_SYNC_ADMIN        = "hz_crm_eta:sync_admin"        // 同步用户的缓存队列key
 	CACHE_SYNC_ROLE         = "hz_crm_eta:sync_role"         // 同步角色的缓存队列key
@@ -268,13 +268,13 @@ const (
 
 	CACHE_EXCEL_REFRESH = "CACHE_EXCEL_REFRESH" // 表格刷新
 
-	CACHE_DATA_SOURCE_ES_HANDLE             = "eta:data_source_es:handle"            // 数据源es处理队列
+	CACHE_DATA_SOURCE_ES_HANDLE             = "eta:data_source_es:handle"             // 数据源es处理队列
 	CACHE_WECHAT_PLATFORM_ARTICLE           = "wechat_platform:article:op:"           //微信文章处理
 	CACHE_WECHAT_PLATFORM_ARTICLE_KNOWLEDGE = "wechat_platform:article:knowledge:op:" //微信文章入知识库处理
 	CACHE_ETA_REPORT_KNOWLEDGE              = "eta:report:knowledge:op:"              //eta报告入知识库处理
-	CACHE_CHART_AUTH                        = "eta:chart:auth:"                      //图表数据授权
-	CACHE_REPORT_SHARE_AUTH                 = "eta:report:auth:share:"               //报告短链与报告图表授权映射key
-	CACHE_REPORT_AUTH                       = "eta:report:auth:"                     //报告图表数据授权
+	CACHE_CHART_AUTH                        = "eta:chart:auth:"                       //图表数据授权
+	CACHE_REPORT_SHARE_AUTH                 = "eta:report:auth:share:"                //报告短链与报告图表授权映射key
+	CACHE_REPORT_AUTH                       = "eta:report:auth:"                      //报告图表数据授权
 )
 
 // 模板消息推送类型
@@ -586,6 +586,10 @@ const (
 	DbNameWeekly      = "weekly_report"
 )
 
+const (
+	FICC_ARTICLE_UPDATE_KEY = "FICC_ARTICLE_UPDATE_KEY" //权益报告通知给FICC这边的缓存key
+)
+
 // 图表分类设置精选资源分类
 const (
 	ChartClassifyIsSelected            = 1 // 图表分类设置精选资源分类
@@ -597,9 +601,7 @@ const (
 const (
 	DATA_SOURCE_NAME_RADISH_RESEARCH = "萝卜投研" // 萝卜投研 -> 105
 )
-const (
-	FICC_ARTICLE_UPDATE_KEY = "FICC_ARTICLE_UPDATE_KEY" //权益报告通知给FICC这边的缓存key
-)
+
 const (
 	CACHE_KEY_EDB_DATA_UPDATE_LOG = "eta_forum:edb_data_update_log" // 经济数据库数据更新日志
 )

Some files were not shown because too many files changed in this diff