report.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package pc
  2. import (
  3. "fmt"
  4. "hongze/hongze_yb/global"
  5. "time"
  6. )
  7. type Report struct {
  8. Id int `description:"报告Id"`
  9. AddType int `description:"新增方式:1:新增报告,2:继承报告"`
  10. ClassifyIdFirst int `description:"一级分类id"`
  11. ClassifyNameFirst string `description:"一级分类名称"`
  12. ClassifyIdSecond int `description:"二级分类id"`
  13. ClassifyNameSecond string `description:"二级分类名称"`
  14. Title string `description:"标题"`
  15. Abstract string `description:"摘要"`
  16. Author string `description:"作者"`
  17. Frequency string `description:"频度"`
  18. CreateTime string `description:"创建时间"`
  19. ModifyTime time.Time `description:"修改时间"`
  20. State int `description:"1:未发布,2:已发布"`
  21. PublishTime string `description:"发布时间"`
  22. Stage int `description:"期数"`
  23. MsgIsSend int `description:"消息是否已发送,0:否,1:是"`
  24. Content string `description:"内容"`
  25. VideoUrl string `description:"音频文件URL"`
  26. VideoName string `description:"音频文件名称"`
  27. VideoPlaySeconds string `description:"音频播放时长"`
  28. VideoSize string `description:"音频文件大小,单位M"`
  29. ContentSub string `description:"内容前两个章节"`
  30. ClassifyName string `description:"分类名称"`
  31. HasPermission int `description:"报告权限:0:无权限,1:有权限"`
  32. TitleType string `description:"标题类型,FICC或者权益"`
  33. }
  34. func GetLatestReportList() (items []*Report, err error) {
  35. sql := `SELECT * FROM report WHERE state=2 ORDER BY publish_time DESC LIMIT 3 `
  36. err = global.MYSQL["rddp"].Raw(sql).Scan(&items).Error
  37. return
  38. }
  39. func GetRecommendList(reportId, reportType, secondId int) (items []*Report, err error) {
  40. sql := `SELECT * FROM report WHERE state=2 AND id<> %v AND classify_id_second=%v `
  41. sql = fmt.Sprintf(sql, reportId, secondId)
  42. if reportType == 1 {
  43. sql += ` AND classify_name_first='权益研报' `
  44. } else {
  45. sql += ` AND classify_name_first<>'权益研报' `
  46. }
  47. sql += ` ORDER BY publish_time DESC LIMIT 3`
  48. err = global.MYSQL["rddp"].Raw(sql).Scan(&items).Error
  49. return
  50. }
  51. type LatestReport struct {
  52. Id int `orm:"column(id)" description:"报告Id" json:"_"`
  53. ClassifyNameFirst string `description:"一级分类名称" json:"classify_name_first"`
  54. ClassifyNameSecond string `description:"二级分类名称" json:"classify_name_second"`
  55. Title string `description:"标题" json:"title"`
  56. State int `description:"1:未发布,2:已发布" json:"state"`
  57. PublishTime time.Time `description:"发布时间" json:"publish_time"`
  58. Stage int `description:"期数" json:"stage"`
  59. ReportId int
  60. }
  61. func GetLatestStage(classifyNames []string) (items []*LatestReport, err error) {
  62. sql := `SELECT * FROM(SELECT DISTINCT
  63. classify_name_first,
  64. id,
  65. title,
  66. state,
  67. publish_time,
  68. stage
  69. FROM
  70. report
  71. WHERE
  72. classify_name_first IN (?)
  73. AND state = 2
  74. ORDER BY
  75. publish_time DESC) t GROUP BY t.classify_name_first`
  76. err = global.MYSQL["rddp"].Raw(sql, classifyNames).Scan(&items).Error
  77. return
  78. }
  79. type RecommendResp struct {
  80. ReportId int
  81. ReportChapterID int
  82. Title string
  83. Stage int
  84. ClassifyNameFirst string
  85. ClassifySecondFirst string
  86. }