Quellcode durchsuchen

fix:添加版头版尾的样式

Roc vor 8 Monaten
Ursprung
Commit
3d99b3621d

+ 1 - 0
.gitignore

@@ -8,3 +8,4 @@ latest_log
 latest_binlog
 hongze_yb
 /rdlucklog
+latest_mongolog

+ 4 - 0
models/response/report.go

@@ -58,6 +58,8 @@ type ReportItem struct {
 	HeadImg            string    `description:"报告头图地址" json:"head_img"`
 	EndImg             string    `description:"报告尾图地址" json:"end_img"`
 	CanvasColor        string    `description:"画布颜色" json:"canvas_color"`
+	HeadStyle          string    `description:"版头样式" json:"head_style"`
+	EndStyle           string    `description:"版尾样式" json:"end_style"`
 }
 
 type ReportChapterItem struct {
@@ -86,6 +88,8 @@ type ReportChapterItem struct {
 	HeadImg               string    `description:"报告头图地址" json:"head_img"`
 	EndImg                string    `description:"报告尾图地址" json:"end_img"`
 	CanvasColor           string    `description:"画布颜色" json:"canvas_color"`
+	HeadStyle             string    `description:"版头样式" json:"head_style"`
+	EndStyle              string    `description:"版尾样式" json:"end_style"`
 }
 
 type ReportChapterDetail struct {

+ 1 - 1
models/tables/rddp/report/query.go

@@ -225,7 +225,7 @@ func GetListCountByClassifyIdSecond(classifyIdSecond int) (total int64, err erro
 // GetReportList 获取报告列表
 func GetReportList(condition string, pars []interface{}, offset, limit int) (list []*Report, err error) {
 	err = global.MYSQL["rddp"].Model(Report{}).
-		Select("id, classify_id_first, classify_name_first, classify_id_second, classify_name_second, title, stage, publish_time, author, create_time, video_url, video_name, video_play_seconds, abstract,has_chapter").
+		Select("id, classify_id_first, classify_name_first, classify_id_second, classify_name_second, title, stage, publish_time, author, create_time, video_url, video_name, video_play_seconds, abstract,has_chapter,head_img,end_img,head_resource_id,end_resource_id").
 		Where(condition, pars...).
 		Order("publish_time desc, id desc").
 		Offset(offset).

+ 2 - 0
models/tables/rddp/report/report.go

@@ -32,6 +32,8 @@ type Report struct {
 	HeadImg            string    `description:"报告头图地址" json:"head_img"`
 	EndImg             string    `description:"报告尾图地址" json:"end_img"`
 	CanvasColor        string    `description:"画布颜色" json:"canvas_color"`
+	HeadResourceId     int       `description:"版头资源ID" json:"head_resource_id"`
+	EndResourceId      int       `description:"版尾资源ID" json:"end_resource_id"`
 }
 
 type UnReadItem struct {

+ 33 - 0
models/tables/rddp/smart_report_resource/query.go

@@ -0,0 +1,33 @@
+package smart_report_resource
+
+import (
+	"hongze/hongze_yb/global"
+)
+
+// GetResourceItemById
+// @Description: 根据资源id获取信息
+// @author: Roc
+// @datetime 2024-06-21 16:59:23
+// @param resourceId int
+// @return item *SmartReportResource
+// @return err error
+func GetResourceItemById(resourceId int) (item *SmartReportResource, err error) {
+	err = global.MYSQL["rddp"].Model(SmartReportResource{}).
+		Select("*").
+		Where("resource_id = ? ", resourceId).First(&item).Error
+	return
+}
+
+// GetResourceItemListByIdList
+// @Description: 根据资源id列表获取信息列表
+// @author: Roc
+// @datetime 2024-06-21 17:00:31
+// @param resourceIdList []int
+// @return items []*SmartReportResource
+// @return err error
+func GetResourceItemListByIdList(resourceIdList []int) (items []*SmartReportResource, err error) {
+	err = global.MYSQL["rddp"].Model(SmartReportResource{}).
+		Select("*").
+		Where("resource_id in (?) ", resourceIdList).Find(&items).Error
+	return
+}

+ 37 - 0
models/tables/rddp/smart_report_resource/smart_report_resource.go

@@ -0,0 +1,37 @@
+package smart_report_resource
+
+import (
+	"time"
+)
+
+// SmartReportResource 智能研报-资源表
+type SmartReportResource struct {
+	ResourceID int       `gorm:"primaryKey;column:resource_id" json:"-"`
+	ImgURL     string    `gorm:"column:img_url" json:"imgUrl"`         // 图片链接
+	ImgName    string    `gorm:"column:img_name" json:"imgName"`       // 图片名称
+	Type       int       `gorm:"column:type" json:"type"`              // 类型 1-版头 2-版尾
+	CreateTime time.Time `gorm:"column:create_time" json:"createTime"` // 创建时间
+	Style      string    `gorm:"column:style" json:"style"`            // 版图样式
+}
+
+// TableName get sql table name.获取数据库表名
+func (m *SmartReportResource) TableName() string {
+	return "smart_report_resource"
+}
+
+// SmartReportResourceColumns get sql column name.获取数据库列名
+var SmartReportResourceColumns = struct {
+	ResourceID string
+	ImgURL     string
+	ImgName    string
+	Type       string
+	CreateTime string
+	Style      string
+}{
+	ResourceID: "resource_id",
+	ImgURL:     "img_url",
+	ImgName:    "img_name",
+	Type:       "type",
+	CreateTime: "create_time",
+	Style:      "style",
+}

+ 32 - 1
services/report/report.go

@@ -19,6 +19,7 @@ import (
 	"hongze/hongze_yb/models/tables/rddp/report_chapter"
 	"hongze/hongze_yb/models/tables/rddp/report_chapter_ticker"
 	"hongze/hongze_yb/models/tables/rddp/report_ppt_img"
+	"hongze/hongze_yb/models/tables/rddp/smart_report_resource"
 	"hongze/hongze_yb/models/tables/report_chapter_type"
 	"hongze/hongze_yb/models/tables/report_chapter_type_permission"
 	"hongze/hongze_yb/models/tables/user_report_chapter_set"
@@ -435,6 +436,30 @@ func GetReportDetail(userinfo user.UserInfo, reportId int) (reportDetail respons
 	reportItem.HeadImg = reportInfo.HeadImg
 	reportItem.EndImg = reportInfo.EndImg
 	reportItem.CanvasColor = reportInfo.CanvasColor
+
+	// 版头版尾样式
+	{
+		if reportInfo.HeadResourceId > 0 {
+			headResource, tmpErr := smart_report_resource.GetResourceItemById(reportInfo.HeadResourceId)
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			reportItem.HeadImg = headResource.ImgURL
+			reportItem.HeadStyle = headResource.Style
+		}
+
+		if reportInfo.EndResourceId > 0 {
+			endResource, tmpErr := smart_report_resource.GetResourceItemById(reportInfo.EndResourceId)
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			reportItem.EndImg = endResource.ImgURL
+			reportItem.EndStyle = endResource.Style
+		}
+	}
+
 	if reportInfo.VideoName == "" && reportInfo.VideoUrl != "" {
 		reportItem.VideoName = reportInfo.Title
 	}
@@ -457,13 +482,19 @@ func GetReportDetail(userinfo user.UserInfo, reportId int) (reportDetail respons
 	}
 	var reportTypeList []*response.ReportChapterListItem
 
-	if reportInfo.ClassifyNameFirst == "晨报" || reportInfo.ClassifyNameFirst == "周报" {
+	if reportInfo.HasChapter == 1 {
 		//(晨报和周报的banner图)
 		if reportInfo.ClassifyNameFirst == "晨报" {
 			reportItem.BannerUrl = utils.ALIYUN_YBIMG_HOST + "report_banner_day.jpg"
 		} else {
 			reportItem.BannerUrl = utils.ALIYUN_YBIMG_HOST + "report_banner_week.jpg"
 		}
+
+		// 如果还没有配置banner图,则取晨报的
+		if reportItem.BannerUrl == `` {
+			reportItem.BannerUrl = utils.ALIYUN_YBIMG_HOST + "report_banner_day.jpg"
+		}
+
 		if authOk {
 			reportTypeList, err = GetChapterListByReport(reportInfo.ClassifyNameFirst, reportInfo.Id, vaildWeekTypeIds, reportInfo.CreateTime)
 			if err != nil {

+ 25 - 0
services/report/report_chapter.go

@@ -11,6 +11,7 @@ import (
 	"hongze/hongze_yb/models/tables/rddp/classify"
 	"hongze/hongze_yb/models/tables/rddp/report"
 	"hongze/hongze_yb/models/tables/rddp/report_chapter"
+	"hongze/hongze_yb/models/tables/rddp/smart_report_resource"
 	"hongze/hongze_yb/models/tables/report_chapter_type"
 	"hongze/hongze_yb/models/tables/user_report_chapter_set"
 	"hongze/hongze_yb/services"
@@ -255,6 +256,30 @@ func GetChapterDetail(user user.UserInfo, reportChapterId int) (reportChapterDet
 	reportChapterItem.HeadImg = reportInfo.HeadImg
 	reportChapterItem.EndImg = reportInfo.EndImg
 	reportChapterItem.CanvasColor = reportInfo.CanvasColor
+
+	// 版头版尾样式
+	{
+		if reportInfo.HeadResourceId > 0 {
+			headResource, tmpErr := smart_report_resource.GetResourceItemById(reportInfo.HeadResourceId)
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			reportChapterItem.HeadImg = headResource.ImgURL
+			reportChapterItem.HeadStyle = headResource.Style
+		}
+
+		if reportInfo.EndResourceId > 0 {
+			endResource, tmpErr := smart_report_resource.GetResourceItemById(reportInfo.EndResourceId)
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			reportChapterItem.EndImg = endResource.ImgURL
+			reportChapterItem.EndStyle = endResource.Style
+		}
+	}
+
 	if reportChapter.VideoUrl != "" && reportChapter.VideoName == "" {
 		reportChapterItem.VideoName = reportChapter.Title
 	}