english_report.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. package models
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "github.com/rdlucklib/rdluck_tools/paging"
  5. "time"
  6. )
  7. type EnglishReport struct {
  8. Id int `orm:"column(id)" 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 time.Time `description:"发布时间"`
  22. Stage int `description:"期数"`
  23. Content string `description:"内容"`
  24. VideoUrl string `description:"音频文件URL"`
  25. VideoName string `description:"音频文件名称"`
  26. VideoPlaySeconds string `description:"音频播放时长"`
  27. VideoSize string `description:"音频文件大小,单位M"`
  28. ContentSub string `description:"内容前两个章节"`
  29. ReportCode string `description:"报告唯一编码"`
  30. Pv int `description:"Pv"`
  31. PvEmail int `description:"邮箱PV"`
  32. EmailState int `description:"群发邮件状态: 0-未发送; 1-已发送"`
  33. Overview string `description:"英文概述部分"`
  34. KeyTakeaways string `description:"关键点"`
  35. FromReportId int `description:"继承的报告ID(英文策略报告ID)"`
  36. AdminId int `description:"创建者账号"`
  37. AdminRealName string `description:"创建者姓名"`
  38. }
  39. type AddEnglishReportReq struct {
  40. AddType int `description:"新增方式:1:新增报告,2:继承报告"`
  41. ClassifyIdFirst int `description:"一级分类id"`
  42. ClassifyNameFirst string `description:"一级分类名称"`
  43. ClassifyIdSecond int `description:"二级分类id"`
  44. ClassifyNameSecond string `description:"二级分类名称"`
  45. Title string `description:"标题"`
  46. Abstract string `description:"摘要"`
  47. Author string `description:"作者"`
  48. Frequency string `description:"频度"`
  49. State int `description:"状态:1:未发布,2:已发布"`
  50. Content string `description:"内容"`
  51. CreateTime string `description:"创建时间"`
  52. Overview string `description:"英文概述部分"`
  53. }
  54. type AddEnglishReportResp struct {
  55. ReportId int64 `description:"报告id"`
  56. ReportCode string `description:"报告code"`
  57. }
  58. type EditEnglishReportReq struct {
  59. ReportId int64 `description:"报告id"`
  60. ClassifyIdFirst int `description:"一级分类id"`
  61. ClassifyNameFirst string `description:"一级分类名称"`
  62. ClassifyIdSecond int `description:"二级分类id"`
  63. ClassifyNameSecond string `description:"二级分类名称"`
  64. Title string `description:"标题"`
  65. Abstract string `description:"摘要"`
  66. Author string `description:"作者"`
  67. Frequency string `description:"频度"`
  68. State int `description:"状态:1:未发布,2:已发布"`
  69. Content string `description:"内容"`
  70. CreateTime string `description:"创建时间"`
  71. Overview string `description:"英文概述部分"`
  72. }
  73. type EditEnglishReportFromPolicyReq struct {
  74. ReportId int64 `description:"报告id"`
  75. Title string `description:"标题"`
  76. Abstract string `description:"摘要"`
  77. Author string `description:"作者"`
  78. Frequency string `description:"频度"`
  79. CreateTime string `description:"创建时间"`
  80. //Overview string `description:"英文概述部分"`
  81. }
  82. type EditEnglishReportResp struct {
  83. ReportId int64 `description:"报告id"`
  84. ReportCode string `description:"报告code"`
  85. }
  86. type ElasticEnglishReportDetail struct {
  87. Id string `description:"报告id或者线上路演Id"`
  88. ReportId int `description:"报告id"`
  89. VideoId int `description:"线上路演Id"`
  90. ClassifyIdFirst int `description:"一级分类id"`
  91. ClassifyNameFirst string `description:"一级分类名称"`
  92. ClassifyIdSecond int `description:"二级分类id"`
  93. ClassifyNameSecond string `description:"二级分类名称"`
  94. StageStr string `description:"报告期数"`
  95. Title string `description:"标题"`
  96. Abstract string `description:"摘要"`
  97. Author string `description:"作者"`
  98. Frequency string `description:"频度"`
  99. PublishState int `description:"状态:1:未发布,2:已发布"`
  100. BodyContent string `description:"内容"`
  101. ContentSub string `description:"前两段内容"`
  102. CreateTime string `description:"创建时间"`
  103. PublishTime string `description:"发布时间"`
  104. ReportCode string `description:"报告唯一编码"`
  105. Overview string `description:"英文概述部分"`
  106. }
  107. type EnglishReportDetail struct {
  108. Id int `orm:"column(id)" description:"报告Id"`
  109. AddType int `description:"新增方式:1:新增报告,2:继承报告"`
  110. ClassifyIdFirst int `description:"一级分类id"`
  111. ClassifyNameFirst string `description:"一级分类名称"`
  112. ClassifyIdSecond int `description:"二级分类id"`
  113. ClassifyNameSecond string `description:"二级分类名称"`
  114. Title string `description:"标题"`
  115. Abstract string `description:"摘要"`
  116. Author string `description:"作者"`
  117. Frequency string `description:"频度"`
  118. CreateTime string `description:"创建时间"`
  119. ModifyTime string `description:"修改时间"`
  120. State int `description:"1:未发布,2:已发布"`
  121. PublishTime string `description:"发布时间"`
  122. Stage int `description:"期数"`
  123. MsgIsSend int `description:"消息是否已发送,0:否,1:是"`
  124. ReportCode string `description:"报告唯一编码"`
  125. Content string `description:"内容"`
  126. VideoUrl string `description:"音频文件URL"`
  127. VideoName string `description:"音频文件名称"`
  128. VideoPlaySeconds string `description:"音频播放时长"`
  129. ContentSub string `description:"内容前两个章节"`
  130. Pv int `description:"Pv"`
  131. Overview string `description:"英文概述部分"`
  132. FromReportId int `description:"继承的报告ID(英文策略报告ID)"`
  133. KeyTakeaways string `description:"关键点"`
  134. }
  135. type EnglishReportList struct {
  136. Id int `description:"报告Id"`
  137. AddType int `description:"新增方式:1:新增报告,2:继承报告"`
  138. ClassifyIdFirst int `description:"一级分类id"`
  139. ClassifyNameFirst string `description:"一级分类名称"`
  140. ClassifyIdSecond int `description:"二级分类id"`
  141. ClassifyNameSecond string `description:"二级分类名称"`
  142. Title string `description:"标题"`
  143. Abstract string `description:"摘要"`
  144. Author string `description:"作者"`
  145. Frequency string `description:"频度"`
  146. CreateTime string `description:"创建时间"`
  147. ModifyTime time.Time `description:"修改时间"`
  148. State int `description:"1:未发布,2:已发布"`
  149. PublishTime string `description:"发布时间"`
  150. Stage int `description:"期数"`
  151. Content string `description:"内容"`
  152. VideoUrl string `description:"音频文件URL"`
  153. VideoName string `description:"音频文件名称"`
  154. VideoPlaySeconds string `description:"音频播放时长"`
  155. ContentSub string `description:"内容前两个章节"`
  156. ReportCode string `description:"报告唯一编码"`
  157. Pv int `description:"Pv"`
  158. ShareUrl string `description:"分享url"`
  159. PvEmail int `description:"邮箱PV"`
  160. EmailState int `description:"群发邮件状态: 0-未发送; 1-已发送"`
  161. EmailAuth bool `description:"是否有权限群发邮件"`
  162. EmailHasFail bool `description:"是否存在邮件发送失败的记录"`
  163. CanEdit bool `description:"是否可编辑"`
  164. Editor string `description:"编辑人"`
  165. FromReportId int `description:"继承的报告ID(英文策略报告ID)"`
  166. AdminId int `description:"创建者账号"`
  167. AdminRealName string `description:"创建者姓名"`
  168. }
  169. type EnglishReportListResp struct {
  170. List []*EnglishReportList
  171. Paging *paging.PagingItem `description:"分页数据"`
  172. }
  173. //删除报告
  174. func DeleteEnglishReport(reportIds int) (err error) {
  175. o := orm.NewOrmUsingDB("rddp")
  176. sql := ` DELETE FROM english_report WHERE id =? `
  177. _, err = o.Raw(sql, reportIds).Exec()
  178. return
  179. }
  180. type EnglishClassifyList struct {
  181. Id int `orm:"column(id);pk"`
  182. ClassifyName string `description:"分类名称"`
  183. Sort int `description:"排序"`
  184. ParentId int `description:"父级分类id"`
  185. CreateTime time.Time `description:"创建时间"`
  186. ModifyTime time.Time `description:"修改时间"`
  187. ClassifyLabel string `description:"分类标签"`
  188. ShowType int `description:"展示类型:1-列表 2-专栏"`
  189. IsShow int `description:"是否在小程序显示:1-显示 0-隐藏"`
  190. ClassifyType int `description:"分类类型:0英文报告,1英文线上路演"`
  191. Child []*EnglishClassify
  192. }
  193. type EnglishClassifyListResp struct {
  194. List []*EnglishClassifyList
  195. Paging *paging.PagingItem `description:"分页数据"`
  196. }
  197. // Update 更新
  198. func (item *EnglishReport) Update(cols []string) (err error) {
  199. o := orm.NewOrmUsingDB("rddp")
  200. _, err = o.Update(item, cols...)
  201. return
  202. }
  203. // ModifyEnglishReportAuthor 更改英文报告作者
  204. func ModifyEnglishReportAuthor(condition string, pars []interface{}, authorName string) (count int, err error) {
  205. //产品权限
  206. oRddp := orm.NewOrmUsingDB("rddp")
  207. sql := `UPDATE english_report set author = ? WHERE 1=1 `
  208. if condition != "" {
  209. sql += condition
  210. }
  211. err = oRddp.Raw(sql, authorName, pars).QueryRow(&count)
  212. return
  213. }
  214. type EnglishClassify struct {
  215. Id int `orm:"column(id);pk"`
  216. ClassifyName string `description:"分类名称"`
  217. Sort int `description:"排序"`
  218. ParentId int `description:"父级分类id"`
  219. CreateTime time.Time `description:"创建时间"`
  220. ModifyTime time.Time `description:"修改时间"`
  221. ClassifyLabel string `description:"分类标签"`
  222. ShowType int `description:"展示类型:1-列表 2-专栏"`
  223. IsShow int `description:"是否在小程序显示:1-显示 0-隐藏"`
  224. ClassifyType int `description:"分类类型:0英文报告,1英文线上路演"`
  225. }
  226. func AddEnglishClassify(item *EnglishClassify) (lastId int64, err error) {
  227. o := orm.NewOrmUsingDB("rddp")
  228. lastId, err = o.Insert(item)
  229. return
  230. }
  231. func ModifyEnglishClassify(item *EnglishClassify) (err error) {
  232. o := orm.NewOrmUsingDB("rddp")
  233. sql := `UPDATE english_classify
  234. SET
  235. classify_name = ?,
  236. sort = ?,
  237. parent_id = ?,
  238. modify_time = ?
  239. WHERE id = ? `
  240. _, err = o.Raw(sql, item.ClassifyName, item.Sort, item.ParentId, item.ModifyTime, item.Id).Exec()
  241. return
  242. }
  243. // UpdateClassify 更新分类
  244. func (classifyInfo *EnglishClassify) UpdateEnglishClassify(cols []string) (err error) {
  245. o := orm.NewOrmUsingDB("rddp")
  246. _, err = o.Update(classifyInfo, cols...)
  247. return
  248. }
  249. // UpdateReport 更新英文报告
  250. func (reportInfo *EnglishReport) UpdateReport(cols []string) (err error) {
  251. o := orm.NewOrmUsingDB("rddp")
  252. _, err = o.Update(reportInfo, cols...)
  253. return
  254. }
  255. // MarkEditEnReport 标记编辑英文研报的请求数据
  256. type MarkEditEnReport struct {
  257. ReportId int `description:"研报id"`
  258. Status int `description:"标记状态,1:编辑中,2:编辑完成"`
  259. }
  260. type EnglishClassifyNameParentName struct {
  261. Id int `description:"分类ID"`
  262. ClassifyName string `description:"分类名称"`
  263. Sort int `description:"排序"`
  264. ParentId int `description:"父级分类id"`
  265. CreateTime time.Time `description:"创建时间"`
  266. ModifyTime time.Time `description:"修改时间"`
  267. ClassifyLabel string `description:"分类标签"`
  268. ShowType int `description:"展示类型:1-列表 2-专栏"`
  269. IsShow int `description:"是否在小程序显示:1-显示 0-隐藏"`
  270. ParentClassifyName string `description:"父级分类名称"`
  271. }
  272. type RSClassifyList []*EnglishClassifyList
  273. func (m RSClassifyList) Len() int {
  274. return len(m)
  275. }
  276. func (m RSClassifyList) Less(i, j int) bool {
  277. return m[i].Sort < m[j].Sort
  278. }
  279. func (m RSClassifyList) Swap(i, j int) {
  280. m[i], m[j] = m[j], m[i]
  281. }
  282. type RSChildClassifyList []*EnglishClassify
  283. func (m RSChildClassifyList) Len() int {
  284. return len(m)
  285. }
  286. func (m RSChildClassifyList) Less(i, j int) bool {
  287. return m[i].Sort < m[j].Sort
  288. }
  289. func (m RSChildClassifyList) Swap(i, j int) {
  290. m[i], m[j] = m[j], m[i]
  291. }