report.go 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. package models
  2. import (
  3. "rdluck_tools/orm"
  4. "time"
  5. )
  6. type Report struct {
  7. Id int `description:"报告Id"`
  8. AddType int `description:"新增方式:1:新增报告,2:继承报告"`
  9. ClassifyIdFirst int `description:"一级分类id"`
  10. ClassifyNameFirst string `description:"一级分类名称"`
  11. ClassifyIdSecond int `description:"二级分类id"`
  12. ClassifyNameSecond string `description:"二级分类名称"`
  13. Title string `description:"标题"`
  14. Abstract string `description:"摘要"`
  15. Author string `description:"作者"`
  16. Frequency string `description:"频度"`
  17. CreateTime string `description:"创建时间"`
  18. ModifyTime time.Time `description:"修改时间"`
  19. State int `description:"1:未发布,2:已发布"`
  20. PublishTime string `description:"发布时间"`
  21. Stage int `description:"期数"`
  22. MsgIsSend int `description:"消息是否已发送,0:否,1:是"`
  23. Content string `description:"内容"`
  24. VideoUrl string `description:"音频文件URL"`
  25. VideoName string `description:"音频文件名称"`
  26. VideoPlaySeconds string `description:"音频播放时长"`
  27. ContentSub string `description:"内容前两个章节"`
  28. IsShowNewLabel int `description:"是否显示新标签"`
  29. IsCurrentDate int `description:"是否当前日期"`
  30. ClassifyName string `description:"分类名称"`
  31. }
  32. type ReportList struct {
  33. Id int `description:"报告Id"`
  34. AddType int `description:"新增方式:1:新增报告,2:继承报告"`
  35. ClassifyIdFirst int `description:"一级分类id"`
  36. ClassifyNameFirst string `description:"一级分类名称"`
  37. ClassifyIdSecond int `description:"二级分类id"`
  38. ClassifyNameSecond string `description:"二级分类名称"`
  39. Title string `description:"标题"`
  40. Abstract string `description:"摘要"`
  41. Author string `description:"作者"`
  42. Frequency string `description:"频度"`
  43. CreateTime string `description:"创建时间"`
  44. ModifyTime time.Time `description:"修改时间"`
  45. State int `description:"1:未发布,2:已发布"`
  46. PublishTime string `description:"发布时间"`
  47. Stage int `description:"期数"`
  48. MsgIsSend int `description:"消息是否已发送,0:否,1:是"`
  49. Content string `description:"内容"`
  50. VideoUrl string `description:"音频文件URL"`
  51. VideoName string `description:"音频文件名称"`
  52. VideoPlaySeconds string `description:"音频播放时长"`
  53. ContentSub string `description:"内容前两个章节"`
  54. HasPermission int `description:"是否拥有报告权限,1:拥有,0:没有"`
  55. TitleType string `description:"标题类型,FICC或者权益"`
  56. }
  57. type ReportListResp struct {
  58. List []*ReportList
  59. Paging *PagingItem `description:"分页数据"`
  60. }
  61. func GetReportListCount(classifyId int) (count int, err error) {
  62. o := orm.NewOrm()
  63. o.Using("rddp")
  64. sql := ` SELECT COUNT(1) AS count FROM report WHERE 1=1 AND state=2 AND classify_id_second=? `
  65. err = o.Raw(sql, classifyId).QueryRow(&count)
  66. return
  67. }
  68. func GetReportList(classifyId, startSize, pageSize int) (items []*ReportList, err error) {
  69. o := orm.NewOrm()
  70. o.Using("rddp")
  71. sql := ` SELECT * FROM report WHERE state=2 AND classify_id_second=? ORDER BY publish_time DESC LIMIT ?,? `
  72. _, err = o.Raw(sql, classifyId, startSize, pageSize).QueryRows(&items)
  73. return
  74. }
  75. func GetReportPermission(userId int, classifyNameSecond string) (count int, err error) {
  76. o := orm.NewOrm()
  77. sql := ` SELECT COUNT(1) AS count
  78. FROM company_report_permission AS crp
  79. INNER JOIN chart_permission_chapter_mapping AS cpcm ON crp.chart_permission_id = cpcm.chart_permission_id
  80. INNER JOIN chart_permission_search_key_word_mapping AS cskwm ON cskwm.chart_permission_id=crp.chart_permission_id
  81. INNER JOIN wx_user wu ON wu.company_id = crp.company_id
  82. WHERE wu.user_id = ?
  83. AND cpcm.research_type = 'rddp'
  84. AND cskwm.from='rddp'
  85. AND cskwm.key_word=? `
  86. err = o.Raw(sql, userId, classifyNameSecond).QueryRow(&count)
  87. return
  88. }
  89. type ReportDetail struct {
  90. Id int `description:"报告Id"`
  91. AddType int `description:"新增方式:1:新增报告,2:继承报告"`
  92. ClassifyIdFirst int `description:"一级分类id"`
  93. ClassifyNameFirst string `description:"一级分类名称"`
  94. ClassifyIdSecond int `description:"二级分类id"`
  95. ClassifyNameSecond string `description:"二级分类名称"`
  96. Title string `description:"标题"`
  97. Abstract string `description:"摘要"`
  98. Author string `description:"作者"`
  99. Frequency string `description:"频度"`
  100. CreateTime string `description:"创建时间"`
  101. ModifyTime string `description:"修改时间"`
  102. State int `description:"1:未发布,2:已发布"`
  103. PublishTime string `description:"发布时间"`
  104. Stage int `description:"期数"`
  105. MsgIsSend int `description:"消息是否已发送,0:否,1:是"`
  106. Content string `description:"内容"`
  107. VideoUrl string `description:"音频文件URL"`
  108. VideoName string `description:"音频文件名称"`
  109. VideoPlaySeconds string `description:"音频播放时长"`
  110. ContentSub string `description:"内容前两个章节"`
  111. IsShowNewLabel int `description:"是否显示新标签"`
  112. IsCurrentDate int `description:"是否当前日期"`
  113. ClassifyName string `description:"分类名称"`
  114. TitleType string `description:"标题类型,FICC或者权益"`
  115. }
  116. func GetReportById(reportId int) (item *ReportDetail, err error) {
  117. o := orm.NewOrm()
  118. o.Using("rddp")
  119. sql := `SELECT * FROM report WHERE id=?`
  120. err = o.Raw(sql, reportId).QueryRow(&item)
  121. return
  122. }
  123. type ReportVarietyList struct {
  124. ReportChapterTypeId int
  125. }
  126. func GetReportVarietyListByUserIdExt(userId int, reportType string) (list []*ReportVarietyList, err error) {
  127. o := orm.NewOrm()
  128. sql := `SELECT cpcm.report_chapter_type_id
  129. FROM company_report_permission crp
  130. INNER JOIN chart_permission_chapter_mapping cpcm ON crp.chart_permission_id = cpcm.chart_permission_id
  131. INNER JOIN wx_user wu ON wu.company_id = crp.company_id
  132. WHERE wu.user_id = ?
  133. AND cpcm.research_type = ?
  134. GROUP BY cpcm.report_chapter_type_id`
  135. _, err = o.Raw(sql, userId, reportType).QueryRows(&list)
  136. return
  137. }
  138. type ReportDetailResp struct {
  139. Report *ReportDetail `description:"报告"`
  140. RecommendList []*RecommendReport `description:"推荐报告列表"`
  141. Status int `description:"状态:0:正常展示,1:报告不存在,2:无权限"`
  142. Msg string `description:"提示信息"`
  143. }
  144. type ReportRecordReq struct {
  145. ReportId int `description:"报告Id"`
  146. }
  147. type RecommendReport struct {
  148. Id int `description:"报告Id"`
  149. AddType int `description:"新增方式:1:新增报告,2:继承报告"`
  150. ClassifyIdFirst int `description:"一级分类id"`
  151. ClassifyNameFirst string `description:"一级分类名称"`
  152. ClassifyIdSecond int `description:"二级分类id"`
  153. ClassifyNameSecond string `description:"二级分类名称"`
  154. Title string `description:"标题"`
  155. Abstract string `description:"摘要"`
  156. Author string `description:"作者"`
  157. Frequency string `description:"频度"`
  158. CreateTime string `description:"创建时间"`
  159. ModifyTime time.Time `description:"修改时间"`
  160. State int `description:"1:未发布,2:已发布"`
  161. PublishTime string `description:"发布时间"`
  162. Stage int `description:"期数"`
  163. MsgIsSend int `description:"消息是否已发送,0:否,1:是"`
  164. Content string `description:"内容"`
  165. VideoUrl string `description:"音频文件URL"`
  166. VideoName string `description:"音频文件名称"`
  167. VideoPlaySeconds string `description:"音频播放时长"`
  168. ContentSub string `description:"内容前两个章节"`
  169. ClassifyName string `description:"分类名称"`
  170. HasPermission int `description:"报告权限:0:无权限,1:有权限"`
  171. TitleType string `description:"标题类型,FICC或者权益"`
  172. }
  173. func GetRecommendList(reportId, reportType int) (items []*RecommendReport, err error) {
  174. o := orm.NewOrm()
  175. o.Using("rddp")
  176. sql := `SELECT * FROM report WHERE id<>? `
  177. if reportType == 1 {
  178. sql += ` AND classify_name_first='权益研报' `
  179. } else {
  180. sql += ` AND classify_name_first<>'权益研报' `
  181. }
  182. sql += ` ORDER BY publish_time DESC LIMIT 3`
  183. _, err = o.Raw(sql, reportId).QueryRows(&items)
  184. return
  185. }
  186. func GetReportByCode(reportCode string) (item *Report, err error) {
  187. o := orm.NewOrm()
  188. o.Using("rddp")
  189. sql := `SELECT * FROM report WHERE report_code=?`
  190. err = o.Raw(sql, reportCode).QueryRow(&item)
  191. return
  192. }
  193. type ReportShareDetailResp struct {
  194. Report *Report `description:"报告"`
  195. }