report.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. package response
  2. import (
  3. "time"
  4. )
  5. type ReportDetail struct {
  6. ReportInfo *ReportItem `json:"report_info"`
  7. ReportChapterList []*ReportChapterListItem `json:"report_chapter_list"`
  8. PermissionCheck *PermissionCheckInfo `json:"permission_check"`
  9. AuthOk bool `json:"auth_ok"`
  10. LikeNum int64 `description:"点赞总数" json:"like_num"`
  11. LikeEnabled int8 `description:"是否已点赞: 0-未点赞 1-已点赞" json:"like_enabled"`
  12. ReportShowType int `descritpion:"展示形式:1-列表 2-专栏" json:"report_show_type"`
  13. CollectionId int `description:"收藏ID: 大于0则表示已收藏" json:"collection_id"`
  14. RoadVideoId int `json:"road_video_id" description:"绑定的路演视频ID"`
  15. }
  16. type ReportChapterListItem struct {
  17. ReportChapterId int `json:"report_chapter_id"`
  18. ReportId int `json:"report_id"`
  19. Title string `json:"title"`
  20. TypeId int `json:"type_id"`
  21. TypeName string `json:"type_name"`
  22. Trend string `json:"trend"`
  23. ReportChapterTypeKey string `json:"report_chapter_type_key"`
  24. ReportChapterTypeThumb string `json:"report_chapter_type_thumb"`
  25. ReportChapterTypeName string `json:"report_chapter_type_name"`
  26. Sort int `json:"sort"`
  27. PublishTime time.Time `json:"publish_time"`
  28. IsClose int `gorm:"column:is_close;type:tinyint(1);default:0" json:"is_close"` //音频品种是否关闭
  29. VideoUrl string `json:"video_url" description:"音频文件URL"`
  30. VideoName string `json:"video_name" description:"音频文件名称"`
  31. VideoPlaySeconds string `json:"video_play_seconds" description:"音频播放时长"`
  32. VideoSize string `json:"video_size" description:"音频文件大小,单位M"`
  33. }
  34. type ReportItem struct {
  35. ReportId int `json:"report_id"`
  36. ClassifyNameFirst string `description:"一级分类名称" json:"classify_name_first"`
  37. ClassifyNameSecond string `description:"二级分类名称" json:"classify_name_second"`
  38. Title string `description:"标题" json:"title"`
  39. Abstract string `description:"摘要" json:"abstract"`
  40. Author string `description:"作者" json:"author"`
  41. Frequency string `description:"频度" json:"frequency"`
  42. PublishTime time.Time `description:"发布时间" json:"publish_time"`
  43. Stage int `description:"期数" json:"stage"`
  44. Content string `description:"内容" json:"content"`
  45. VideoUrl string `description:"音频文件URL" json:"video_url"`
  46. VideoName string `description:"音频文件名称" json:"video_name"`
  47. VideoSize string `description:"音频文件大小,单位M" json:"video_size"`
  48. VideoPlaySeconds string `description:"音频播放时长" json:"video_play_seconds"`
  49. VideoImg string `description:"音频播放条的图片" json:"video_img"`
  50. ContentSub string `description:"内容前两个章节" json:"content_sub"`
  51. BannerUrl string `description:"详情页banner" json:"banner_url"`
  52. ShareBgImg string `description:"分享背景图" json:"share_bg_img"`
  53. }
  54. type ReportChapterItem struct {
  55. ReportChapterId int `json:"report_chapter_id"`
  56. ReportId int `json:"report_id"`
  57. Title string `json:"title"`
  58. Abstract string `json:"abstract"`
  59. TypeId int `json:"type_id"`
  60. TypeName string `json:"type_name"`
  61. Trend string `json:"trend"`
  62. ReportChapterTypeName string `json:"report_chapter_type_name"`
  63. PublishTime time.Time `json:"publish_time"`
  64. Content string `description:"内容" json:"content"`
  65. ContentSub string `description:"内容前两个章节" json:"content_sub"`
  66. VideoUrl string `json:"video_url"` //音频文件URL
  67. VideoName string `json:"video_name"` //音频文件名称
  68. VideoPlaySeconds string `json:"video_play_seconds"` //音频播放时长
  69. VideoSize string `json:"video_size"`
  70. VideoImg string `description:"音频播放条的图片" json:"video_img"`
  71. Author string `description:"作者" json:"author"`
  72. Stage int `description:"期数" json:"stage"`
  73. ClassifyIdFirst int `description:"一级分类id" json:"classify_id_first"`
  74. ClassifyNameFirst string `description:"一级分类名称" json:"classify_name_first"`
  75. ShareBgImg string `description:"分享背景图" json:"share_bg_img"`
  76. }
  77. type ReportChapterDetail struct {
  78. ReportChapterItem *ReportChapterItem `json:"report_chapter_item"`
  79. PermissionCheck *PermissionCheckInfo `json:"permission_check"`
  80. ReportChapterMenuList []*ReportChapterMenu `json:"report_chapter_menu_list"`
  81. AuthOk bool `json:"auth_ok"`
  82. LikeNum int64 `description:"点赞总数" json:"like_num"`
  83. LikeEnabled int8 `description:"是否已点赞: 0-未点赞 1-已点赞" json:"like_enabled"`
  84. CollectionId int `description:"收藏ID: 大于0则表示已收藏" json:"collection_id"`
  85. }
  86. type ReportChapterMenu struct {
  87. ReportChapterId int `json:"report_chapter_id"`
  88. ReportId int `json:"report_id"`
  89. ReportChapterTypeName string `json:"report_chapter_type_name"`
  90. ReportChapterTypeThumb string `json:"report_chapter_type_thumb"`
  91. PcSelectedThumb string `json:"pc_selected_thumb"`
  92. PcUnselectedThumb string `json:"pc_unselected_thumb"`
  93. Sort int `json:"sort"`
  94. }
  95. type ReportListItem struct {
  96. ReportId int `description:"报告Id" json:"report_id"`
  97. ClassifyIdFirst int `description:"一级分类id" json:"classify_id_first"`
  98. ClassifyNameFirst string `description:"一级分类名称" json:"classify_name_first"`
  99. ClassifyIdSecond int `description:"二级分类id" json:"classify_id_second"`
  100. ClassifyNameSecond string `description:"二级分类名称" json:"classify_name_second"`
  101. Title string `description:"标题" json:"title"`
  102. Abstract string `description:"摘要" json:"abstract"`
  103. Author string `description:"作者" json:"author"`
  104. ReportImgUrl string `description:"作者头像" json:"report_img_url"`
  105. PublishTime time.Time `description:"发布时间" json:"publish_time"`
  106. Stage int `description:"期数" json:"stage"`
  107. VideoList []*VideoListItem `json:"video_list"`
  108. AuthOk bool `json:"auth_ok"`
  109. TitleInfo string `json:"title_info"`
  110. }
  111. type VideoListItem struct {
  112. VideoUrl string `description:"音频文件URL" json:"video_url"`
  113. Sort int `description:"音频内容排序" json:"sort"`
  114. VideoName string `json:"video_name"` //音频文件名称
  115. VideoPlaySeconds string `json:"video_play_seconds"` //音频播放时长
  116. VideoImg string `json:"video_img"` // 音频播放条前面展示的图片
  117. }
  118. type ReportList struct {
  119. Paging *PagingItem `json:"paging"`
  120. List []*ReportListItem `json:"list"`
  121. }
  122. type ReportCollectListItem struct {
  123. ReportId int `description:"报告Id" json:"report_id"`
  124. ReportChapterId int `json:"report_chapter_id"`
  125. ClassifyIdFirst int `description:"一级分类id" json:"classify_id_first"`
  126. ClassifyNameFirst string `description:"一级分类名称" json:"classify_name_first"`
  127. ClassifyIdSecond int `description:"二级分类id" json:"classify_id_second"`
  128. ClassifyNameSecond string `description:"二级分类名称" json:"classify_name_second"`
  129. ReportChapterTypeId int `json:"report_chapter_type_id"`
  130. PublishTime time.Time `description:"发布时间" json:"publish_time"`
  131. Title string `description:"标题" json:"title"`
  132. ContentSub string `description:"内容前两个章节" json:"content_sub"`
  133. }
  134. type ReportCollectList struct {
  135. Date string `json:"date"`
  136. SubList []*ReportCollectListItem `json:"sub_list"`
  137. }
  138. type ReportCollectResp struct {
  139. Paging *PagingItem `json:"paging"`
  140. List []*ReportCollectList `json:"list"`
  141. }
  142. type ReportSearchResp struct {
  143. Paging *PagingItem `json:"paging"`
  144. List []*ReportCollectListItem `json:"list"`
  145. }
  146. type EsReportItem struct {
  147. Author string `description:"作者"`
  148. BodyContent string `description:"内容"`
  149. Categories string `description:"品种名称"`
  150. ClassifyIdFirst int `description:"一级分类id"`
  151. ClassifyNameFirst string `description:"一级分类名称"`
  152. ClassifyIdSecond int `description:"二级分类id"`
  153. ClassifyNameSecond string `description:"二级分类名称"`
  154. PublishState int `description:"1:未发布,2:已发布"`
  155. PublishTime string `description:"发布时间"`
  156. ReportChapterId int `description:"报告章节Id"`
  157. ReportId int `description:"报告Id"`
  158. Title string `description:"标题"`
  159. Abstract string `description:"摘要"`
  160. StageStr string `description:"期数"`
  161. }
  162. type TickerDataItem struct {
  163. Date string `json:"date"`
  164. Ticker string `json:"ticker"`
  165. BaseColumnName string `json:"base_column_name"`
  166. TickerValue float64 `json:"ticker_value"`
  167. LastValue float64 `json:"last_value"`
  168. DdValue float64 `json:"dd_value"`
  169. WwValue float64 `json:"ww_value"`
  170. MmValue float64 `json:"mm_value"`
  171. }
  172. type TickerTitleData struct {
  173. TickerTitle string `json:"ticker_title"`
  174. ReportChapterTypeId int `json:"report_chapter_type_id"`
  175. ReportChapterTypeName string `json:"report_chapter_type_name"`
  176. DataTableImage string `json:"data_table_image"`
  177. }
  178. type TickerData struct {
  179. List []*TickerDataItem `json:"list"`
  180. TickerTitle *TickerTitleData `json:"ticker_title"`
  181. }
  182. type ReportCollectListResp []*ReportCollectList
  183. func (p ReportCollectListResp) Len() int {
  184. return len(p)
  185. }
  186. func (p ReportCollectListResp) Less(i, j int) bool {
  187. return p[i].Date > p[j].Date
  188. }
  189. func (p ReportCollectListResp) Swap(i, j int) {
  190. p[i], p[j] = p[j], p[i]
  191. }
  192. type ReportChapterList []*ReportChapterListItem
  193. func (r ReportChapterList) Len() int {
  194. return len(r)
  195. }
  196. func (r ReportChapterList) Less(i, j int) bool {
  197. return r[i].Sort < r[j].Sort
  198. }
  199. func (r ReportChapterList) Swap(i, j int) {
  200. r[i], r[j] = r[j], r[i]
  201. }
  202. type ReportChapterMenuList []*ReportChapterMenu
  203. func (rc ReportChapterMenuList) Len() int {
  204. return len(rc)
  205. }
  206. func (rc ReportChapterMenuList) Less(i, j int) bool {
  207. return rc[i].Sort < rc[j].Sort
  208. }
  209. func (rc ReportChapterMenuList) Swap(i, j int) {
  210. rc[i], rc[j] = rc[j], rc[i]
  211. }
  212. type ReportVarietyResp struct {
  213. Paging *PagingItem `json:"paging"`
  214. List []*VarietyReportItem `json:"list"`
  215. }
  216. type VarietyReportItem struct {
  217. ReportId int `json:"report_id"`
  218. ClassifyNameFirst string `description:"一级分类名称" json:"classify_name_first"`
  219. ClassifyNameSecond string `description:"二级分类名称" json:"classify_name_second"`
  220. Title string `description:"标题" json:"title"`
  221. Abstract string `description:"摘要" json:"abstract"`
  222. Author string `description:"作者" json:"author"`
  223. Frequency string `description:"频度" json:"frequency"`
  224. PublishTime time.Time `description:"发布时间" json:"publish_time"`
  225. Stage int `description:"期数" json:"stage"`
  226. Content string `description:"内容" json:"content"`
  227. VideoUrl string `description:"音频文件URL" json:"video_url"`
  228. VideoName string `description:"音频文件名称" json:"video_name"`
  229. VideoSize string `description:"音频文件大小,单位M" json:"video_size"`
  230. VideoPlaySeconds string `description:"音频播放时长" json:"video_play_seconds"`
  231. VideoImg string `description:"音频播放条的图片" json:"video_img"`
  232. ContentSub string `description:"内容前两个章节" json:"content_sub"`
  233. BannerUrl string `description:"详情页banner" json:"banner_url"`
  234. ShareBgImg string `description:"分享背景图" json:"share_bg_img"`
  235. AuthOk bool `json:"auth_ok"`
  236. }