浏览代码

新增英文研报列表

xiexiaoyuan 2 年之前
父节点
当前提交
e211c9b1d3
共有 4 个文件被更改,包括 181 次插入0 次删除
  1. 84 0
      controller/english_report/english_report.go
  2. 1 0
      init_serve/router.go
  3. 83 0
      models/english_report/english_report.go
  4. 13 0
      routers/english_report.go

+ 84 - 0
controller/english_report/english_report.go

@@ -0,0 +1,84 @@
+package english_report
+
+import (
+	"github.com/gin-gonic/gin"
+	"github.com/go-playground/validator/v10"
+	"hongze/hongze_yb_en_api/controller/resp"
+	"hongze/hongze_yb_en_api/global"
+	"hongze/hongze_yb_en_api/models/base"
+	"hongze/hongze_yb_en_api/models/english_report"
+	"hongze/hongze_yb_en_api/utils"
+)
+
+type EnglishReportController struct {}
+
+func (er *EnglishReportController) List(c *gin.Context) {
+	req := new(english_report.ReportListReq)
+	err := c.BindQuery(&req)
+	if err != nil {
+		errs, ok := err.(validator.ValidationErrors)
+		if !ok {
+			resp.FailData("参数解析失败", "Err:"+err.Error(), c)
+			return
+		}
+		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
+		return
+	}
+	page := new(base.Page)
+	page.SetPageSize(req.PageSize)
+	page.SetCurrent(req.Current)
+	item := new(english_report.EnglishReport)
+
+	condition := " state=2"
+	var pars []interface{}
+	var total int64
+	var tmpList []*english_report.EnglishReport
+	var list []*english_report.ListItem
+
+	if req.ClassifyIdFirst != "" {
+		condition += " and classify_id_first = ?"
+		pars = append(pars, req.ClassifyIdFirst)
+	}
+	if req.ClassifyIdSecond != "" {
+		condition += " and classify_id_second = ?"
+		pars = append(pars, req.ClassifyIdSecond)
+	}
+	page.AddOrderItem(base.OrderItem{Column: "publish_time", Asc: false})
+	page.AddOrderItem(base.OrderItem{Column: "id", Asc: false})
+	total, tmpList, err = item.SelectPage(page, condition, pars)
+	if err != nil {
+		resp.FailMsg("获取失败", "获取失败,Err:"+err.Error(), c)
+		return
+	}
+	if len(tmpList) > 0 {
+		for _, v := range tmpList {
+			tmp := &english_report.ListItem{
+				Id:                 v.Id,
+				AddType:            v.AddType,
+				ClassifyIdFirst:    v.ClassifyIdFirst,
+				ClassifyNameFirst:  v.ClassifyNameFirst,
+				ClassifyIdSecond:   v.ClassifyIdSecond,
+				ClassifyNameSecond: v.ClassifyNameSecond,
+				Title:              v.Title,
+				Abstract:           v.Abstract,
+				Author:             v.Author,
+				Frequency:          v.Frequency,
+				PublishTime:        utils.TimeTransferString(utils.FormatDateTime, v.PublishTime),
+				Stage:              v.Stage,
+				VideoUrl:           v.VideoUrl,
+				VideoName:          v.VideoName,
+				VideoPlaySeconds:   v.VideoPlaySeconds,
+				ReportCode:         v.ReportCode,
+				ShareUrl:           "https://share.hzinsights.com/reportEn?code=" + v.ReportCode,
+				CreateTime:         utils.TimeTransferString(utils.FormatDateTime, v.CreateTime),
+				ModifyTime:         utils.TimeTransferString(utils.FormatDateTime, v.ModifyTime),
+			}
+			list = append(list, tmp)
+		}
+	}
+	page.SetTotal(total)
+	baseData := new(base.BaseData)
+	baseData.SetPage(page)
+	baseData.SetList(list)
+	resp.OkData("获取成功", baseData, c)
+}

+ 1 - 0
init_serve/router.go

@@ -25,5 +25,6 @@ func InitRouter() (r *gin.Engine) {
 //	r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
 	rBase := r.Group("api/")
 	routers.InitAuth(rBase)
+	routers.InitReport(rBase)
 	return
 }

+ 83 - 0
models/english_report/english_report.go

@@ -0,0 +1,83 @@
+package english_report
+
+import (
+	"hongze/hongze_yb_en_api/global"
+	"hongze/hongze_yb_en_api/models/base"
+	"time"
+)
+
+type EnglishReport struct {
+	Id                 int       `gorm:"primaryKey;column:id" json:"id"`
+	AddType            int8      `gorm:"column:add_type" json:"add_type"`                         //新增方式:1:新增报告,2:继承报告
+	ClassifyIdFirst    int       `gorm:"column:classify_id_first" json:"classify_id_first"`       //一级分类id
+	ClassifyNameFirst  string    `gorm:"column:classify_name_first" json:"classify_name_first"`   //一级分类名称
+	ClassifyIdSecond   int       `gorm:"column:classify_id_second" json:"classify_id_second"`     //二级分类id
+	ClassifyNameSecond string    `gorm:"column:classify_name_second" json:"classify_name_second"` //二级分类名称
+	Title              string    `gorm:"column:title" json:"title"`                               //标题
+	Abstract           string    `gorm:"column:abstract" json:"abstract"`                         //摘要
+	Author             string    `gorm:"column:author" json:"author"`                             //作者
+	Frequency          string    `gorm:"column:frequency" json:"frequency"`                       //频度
+	State              int8      `gorm:"column:state" json:"state"`                               //1:未发布,2:已发布
+	PublishTime        time.Time `gorm:"column:publish_time" json:"publish_time"`                 //发布时间
+	Stage              int       `gorm:"column:stage" json:"stage"`                               //期数
+	MsgIsSend          int8      `gorm:"column:msg_is_send" json:"msg_is_send"`                   //消息是否已发送,0:否,1:是
+	Content            string    `gorm:"column:content" json:"content"`                           //内容
+	Overview           string    `gorm:"column:overview" json:"overview"`                         //概述
+	VideoUrl           string    `gorm:"column:video_url" json:"video_url"`                       //音频文件URL
+	VideoName          string    `gorm:"column:video_name" json:"video_name"`                     //音频文件名称
+	VideoPlaySeconds   string    `gorm:"column:video_play_seconds" json:"video_play_seconds"`     //音频播放时长
+	ContentSub         string    `gorm:"column:content_sub" json:"content_sub"`                   //内容前两个章节
+	ReportCode         string    `gorm:"column:report_code" json:"report_code"`                   //报告唯一编码
+	VideoSize          string    `gorm:"column:video_size" json:"video_size"`                     //音频文件大小,单位M
+	Pv                 int       `gorm:"column:pv" json:"pv"`
+	ShareUrl           string    `gorm:"column:share_url" json:"share_url"`     //分享url
+	PvEmail            uint      `gorm:"column:pv_email" json:"pv_email"`       //分享邮箱的PV
+	EmailState         uint8     `gorm:"column:email_state" json:"email_state"` //是否已群发邮件:0-否; 1-是
+	base.TimeBase
+}
+
+// TableName get sql table name.获取数据库表名
+func (r *EnglishReport) TableName() string {
+	return "english_report"
+}
+
+type ReportListReq struct {
+	ClassifyIdFirst  string `json:"classify_id_first" form:"classify_id_first"`
+	ClassifyIdSecond string `json:"classify_id_second" form:"classify_id_second"`
+	base.PageReq
+}
+
+type ListItem struct {
+	Id                 int    `json:"id"`
+	AddType            int8   `json:"add_type"`             //新增方式:1:新增报告,2:继承报告
+	ClassifyIdFirst    int    `json:"classify_id_first"`    //一级分类id
+	ClassifyNameFirst  string `json:"classify_name_first"`  //一级分类名称
+	ClassifyIdSecond   int    `json:"classify_id_second"`   //二级分类id
+	ClassifyNameSecond string `json:"classify_name_second"` //二级分类名称
+	Title              string `json:"title"`                //标题
+	Abstract           string `json:"abstract"`             //摘要
+	Author             string `json:"author"`               //作者
+	Frequency          string `json:"frequency"`            //频度
+	PublishTime        string `json:"publish_time"`         //发布时间
+	Stage              int    `json:"stage"`                //期数
+	VideoUrl           string `json:"video_url"`            //音频文件URL
+	VideoName          string `json:"video_name"`           //音频文件名称
+	VideoPlaySeconds   string `json:"video_play_seconds"`   //音频播放时长
+	ReportCode         string `json:"report_code"`          //报告唯一编码
+	ShareUrl           string `json:"share_url"`            //分享url
+	CreateTime         string `json:"create_time"`          //创建时间
+	ModifyTime         string `json:"modify_time"`          //最后更新时间
+}
+
+func (r *EnglishReport) SelectPage(page base.IPage, condition string, pars []interface{}) (count int64, results []*EnglishReport, err error) {
+	results = make([]*EnglishReport, 0)
+	query := global.DEFAULT_MYSQL.Model(r).
+		Select("*").
+		Where(condition, pars...)
+	query.Count(&count)
+	if len(page.GetOrderItemsString()) > 0 {
+		query = query.Order(page.GetOrderItemsString())
+	}
+	err = query.Limit(int(page.GetPageSize())).Offset(int(page.Offset())).Find(&results).Error
+	return
+}

+ 13 - 0
routers/english_report.go

@@ -0,0 +1,13 @@
+package routers
+
+import (
+	"github.com/gin-gonic/gin"
+	"hongze/hongze_yb_en_api/controller/english_report"
+)
+
+func InitReport(baseGroup *gin.RouterGroup) {
+	//登录
+	controller := new(english_report.EnglishReportController)
+	group := baseGroup.Group("english_report/")
+	group.GET("list", controller.List)
+}