report.go 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package english_report
  2. import (
  3. "hongze/hongze_yb_en_api/global"
  4. "hongze/hongze_yb_en_api/models/base"
  5. "time"
  6. )
  7. type Report struct {
  8. Id int `gorm:"primaryKey;column:id" json:"id"`
  9. AddType int8 `gorm:"column:add_type" json:"add_type"` //新增方式:1:新增报告,2:继承报告
  10. ClassifyIdFirst int `gorm:"column:classify_id_first" json:"classify_id_first"` //一级分类id
  11. ClassifyNameFirst string `gorm:"column:classify_name_first" json:"classify_name_first"` //一级分类名称
  12. ClassifyIdSecond int `gorm:"column:classify_id_second" json:"classify_id_second"` //二级分类id
  13. ClassifyNameSecond string `gorm:"column:classify_name_second" json:"classify_name_second"` //二级分类名称
  14. Title string `gorm:"column:title" json:"title"` //标题
  15. Abstract string `gorm:"column:abstract" json:"abstract"` //摘要
  16. Author string `gorm:"column:author" json:"author"` //作者
  17. Frequency string `gorm:"column:frequency" json:"frequency"` //频度
  18. State int8 `gorm:"column:state" json:"state"` //1:未发布,2:已发布
  19. PublishTime time.Time `gorm:"column:publish_time" json:"publish_time"` //发布时间
  20. Stage int `gorm:"column:stage" json:"stage"` //期数
  21. MsgIsSend int8 `gorm:"column:msg_is_send" json:"msg_is_send"` //消息是否已发送,0:否,1:是
  22. Content string `gorm:"column:content" json:"content"` //内容
  23. Overview string `gorm:"column:overview" json:"overview"` //概述
  24. VideoUrl string `gorm:"column:video_url" json:"video_url"` //音频文件URL
  25. VideoName string `gorm:"column:video_name" json:"video_name"` //音频文件名称
  26. VideoPlaySeconds string `gorm:"column:video_play_seconds" json:"video_play_seconds"` //音频播放时长
  27. ContentSub string `gorm:"column:content_sub" json:"content_sub"` //内容前两个章节
  28. ReportCode string `gorm:"column:report_code" json:"report_code"` //报告唯一编码
  29. VideoSize string `gorm:"column:video_size" json:"video_size"` //音频文件大小,单位M
  30. Pv int `gorm:"column:pv" json:"pv"`
  31. ShareUrl string `gorm:"column:share_url" json:"share_url"` //分享url
  32. PvEmail uint `gorm:"column:pv_email" json:"pv_email"` //分享邮箱的PV
  33. EmailState uint8 `gorm:"column:email_state" json:"email_state"` //是否已群发邮件:0-否; 1-是
  34. base.TimeBase
  35. }
  36. // TableName get sql table name.获取数据库表名
  37. func (r *Report) TableName() string {
  38. return "english_report"
  39. }
  40. type ReportListReq struct {
  41. ClassifyIdFirst string `json:"classify_id_first" form:"classify_id_first"`
  42. ClassifyIdSecond string `json:"classify_id_second" form:"classify_id_second"`
  43. base.PageReq
  44. }
  45. type ListItem struct {
  46. Id int `json:"id"`
  47. AddType int8 `json:"add_type"` //新增方式:1:新增报告,2:继承报告
  48. ClassifyIdFirst int `json:"classify_id_first"` //一级分类id
  49. ClassifyNameFirst string `json:"classify_name_first"` //一级分类名称
  50. ClassifyIdSecond int `json:"classify_id_second"` //二级分类id
  51. ClassifyNameSecond string `json:"classify_name_second"` //二级分类名称
  52. Title string `json:"title"` //标题
  53. Abstract string `json:"abstract"` //摘要
  54. Author string `json:"author"` //作者
  55. Frequency string `json:"frequency"` //频度
  56. PublishTime string `json:"publish_time"` //发布时间
  57. Stage int `json:"stage"` //期数
  58. VideoUrl string `json:"video_url"` //音频文件URL
  59. VideoName string `json:"video_name"` //音频文件名称
  60. VideoPlaySeconds string `json:"video_play_seconds"` //音频播放时长
  61. ReportCode string `json:"report_code"` //报告唯一编码
  62. ShareUrl string `json:"share_url"` //分享url
  63. CreateTime string `json:"create_time"` //创建时间
  64. ModifyTime string `json:"modify_time"` //最后更新时间
  65. }
  66. type ReportSearchReq struct {
  67. KeyWord string `json:"key_word" form:"key_word"`
  68. base.PageReq
  69. }
  70. type SearchEnglishReportItem struct {
  71. Id int `json:"id"`
  72. ClassifyIdFirst int `json:"classify_id_first"` //一级分类id
  73. ClassifyNameFirst string `json:"classify_name_first"` //一级分类名称
  74. ClassifyIdSecond int `json:"classify_id_second"` //二级分类id
  75. ClassifyNameSecond string `json:"classify_name_second"` //二级分类名称
  76. Title string `json:"title"` //标题
  77. Author string `json:"author"` //作者
  78. PublishTime string `json:"publish_time"` //发布时间
  79. ReportCode string `json:"report_code"` //报告唯一编码
  80. CreateTime string `json:"create_time"` //创建时间
  81. ContentSub string `json:"content_sub"` //内容前两个章节"`
  82. }
  83. type ElasticEnglishReportDetail struct {
  84. ReportId int
  85. ClassifyIdFirst int
  86. ClassifyNameFirst string
  87. ClassifyIdSecond int
  88. ClassifyNameSecond string
  89. StageStr string
  90. Title string
  91. Abstract string
  92. Author string
  93. Frequency string
  94. PublishState int
  95. BodyContent string
  96. ContentSub string
  97. CreateTime string
  98. PublishTime string
  99. ReportCode string
  100. Overview string
  101. }
  102. func (r *Report) SelectPage(page base.IPage, condition string, pars []interface{}) (count int64, results []*Report, err error) {
  103. results = make([]*Report, 0)
  104. query := global.DEFAULT_MYSQL.Model(r).
  105. Select("*").
  106. Where(condition, pars...)
  107. query.Count(&count)
  108. if len(page.GetOrderItemsString()) > 0 {
  109. query = query.Order(page.GetOrderItemsString())
  110. }
  111. err = query.Limit(int(page.GetPageSize())).Offset(int(page.Offset())).Find(&results).Error
  112. return
  113. }