english_report.go 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  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 EnglishReportDetail 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 string `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. ContentSub string `description:"内容前两个章节"`
  29. ThsMsgIsSend int `description:"客户群消息是否已发送,0:否,1:是"`
  30. HasChapter int `description:"是否有章节 0-否 1-是"`
  31. ChapterType string `description:"章节类型 day-晨报 week-周报"`
  32. ReportCode string `description:"报告唯一编码"`
  33. Overview string `description:"英文概述部分"`
  34. }
  35. type EnglishClassify struct {
  36. Id int `orm:"column(id);pk"`
  37. ClassifyName string `description:"分类名称"`
  38. Sort int `description:"排序"`
  39. ParentId int `description:"父级分类id"`
  40. CreateTime time.Time `description:"创建时间"`
  41. ModifyTime time.Time `description:"修改时间"`
  42. ClassifyLabel string `description:"分类标签"`
  43. ShowType int `description:"展示类型:1-列表 2-专栏"`
  44. IsShow int `description:"是否在小程序显示:1-显示 0-隐藏"`
  45. }
  46. type ElasticEnglishReportDetail struct {
  47. ReportId int `description:"报告id"`
  48. ClassifyIdFirst int `description:"一级分类id"`
  49. ClassifyNameFirst string `description:"一级分类名称"`
  50. ClassifyIdSecond int `description:"二级分类id"`
  51. ClassifyNameSecond string `description:"二级分类名称"`
  52. StageStr string `description:"报告期数"`
  53. Title string `description:"标题"`
  54. Abstract string `description:"摘要"`
  55. Author string `description:"作者"`
  56. Frequency string `description:"频度"`
  57. PublishState int `description:"状态:1:未发布,2:已发布"`
  58. BodyContent string `description:"内容"`
  59. ContentSub string `description:"前两段内容"`
  60. CreateTime string `description:"创建时间"`
  61. PublishTime string `description:"发布时间"`
  62. ReportCode string `description:"报告唯一编码"`
  63. Overview string `description:"英文概述部分"`
  64. }
  65. type SearchEnglishReportItem struct {
  66. Id int `description:"报告Id"`
  67. ClassifyIdFirst int `description:"一级分类id"`
  68. ClassifyNameFirst string `description:"一级分类名称"`
  69. ClassifyIdSecond int `description:"二级分类id"`
  70. ClassifyNameSecond string `description:"二级分类名称"`
  71. Title string `description:"标题"`
  72. Author string `description:"作者"`
  73. CreateTime string `description:"创建时间"`
  74. PublishTime string `description:"发布时间"`
  75. ContentSub string `description:"内容前两个章节"`
  76. ReportCode string `description:"报告唯一编码"`
  77. }
  78. type SearchEnglishReportResp struct {
  79. List []*SearchEnglishReportItem
  80. Paging *paging.PagingItem `description:"分页数据"`
  81. }
  82. func GetEnglishReportByCode(reportCode string) (item *EnglishReportDetail, err error) {
  83. o := orm.NewOrmUsingDB("rddp")
  84. sql := `SELECT * FROM english_report WHERE report_code=?`
  85. err = o.Raw(sql, reportCode).QueryRow(&item)
  86. return
  87. }
  88. type EnglishReportShareDetailResp struct {
  89. Report *EnglishReportDetail `description:"报告"`
  90. }
  91. func UpdateEnglishReportCounts(reportCode string) (err error) {
  92. o := orm.NewOrmUsingDB("rddp")
  93. sql := `UPDATE english_report SET pv = pv+1 WHERE report_code = ? `
  94. _, err = o.Raw(sql, reportCode).Exec()
  95. return
  96. }
  97. func UpdateEnglishReportEmailCounts(reportCode string) (err error) {
  98. o := orm.NewOrmUsingDB("rddp")
  99. sql := `UPDATE english_report SET pv_email = pv_email+1 WHERE report_code = ? `
  100. _, err = o.Raw(sql, reportCode).Exec()
  101. return
  102. }
  103. type EnglishClassifyList struct {
  104. Id int `description:"分类ID"`
  105. ClassifyName string `description:"分类名称"`
  106. Sort int `description:"排序"`
  107. ParentId int `description:"父级分类id"`
  108. CreateTime string `description:"创建时间"`
  109. ModifyTime string `description:"修改时间"`
  110. ClassifyLabel string `description:"分类标签"`
  111. ShowType int `description:"展示类型:1-列表 2-专栏"`
  112. IsShow int `description:"是否在小程序显示:1-显示 0-隐藏"`
  113. Child []*EnglishClassify
  114. }
  115. type EnglishClassifyListResp struct {
  116. List []*EnglishClassifyList
  117. }
  118. // GetParentEnglishClassify 获取一级分类列表
  119. func GetParentEnglishClassify() (items []*EnglishClassify, err error) {
  120. sql := `SELECT * FROM english_classify WHERE parent_id=0 ORDER BY sort ASC,create_time ASC`
  121. o := orm.NewOrmUsingDB("rddp")
  122. _, err = o.Raw(sql).QueryRows(&items)
  123. return
  124. }
  125. // GetChildEnglishClassify 获取二级分类列表
  126. func GetChildEnglishClassify() (items []*EnglishClassify, err error) {
  127. sql := `SELECT * FROM english_classify WHERE parent_id>0 ORDER BY sort ASC,create_time ASC`
  128. o := orm.NewOrmUsingDB("rddp")
  129. _, err = o.Raw(sql).QueryRows(&items)
  130. return
  131. }
  132. func GetEnglishReportListCount(condition string, pars []interface{}) (count int, err error) {
  133. //产品权限
  134. oRddp := orm.NewOrmUsingDB("rddp")
  135. sql := `SELECT COUNT(1) AS count FROM english_report WHERE state=2 `
  136. if condition != "" {
  137. sql += condition
  138. }
  139. err = oRddp.Raw(sql, pars).QueryRow(&count)
  140. return
  141. }
  142. type EnglishReportList struct {
  143. Id int `description:"报告Id"`
  144. AddType int `description:"新增方式:1:新增报告,2:继承报告"`
  145. ClassifyIdFirst int `description:"一级分类id"`
  146. ClassifyNameFirst string `description:"一级分类名称"`
  147. ClassifyIdSecond int `description:"二级分类id"`
  148. ClassifyNameSecond string `description:"二级分类名称"`
  149. Title string `description:"标题"`
  150. Abstract string `description:"摘要"`
  151. Author string `description:"作者"`
  152. Frequency string `description:"频度"`
  153. CreateTime string `description:"创建时间"`
  154. ModifyTime string `description:"修改时间"`
  155. PublishTime string `description:"发布时间"`
  156. Stage int `description:"期数"`
  157. VideoUrl string `description:"音频文件URL"`
  158. VideoName string `description:"音频文件名称"`
  159. VideoPlaySeconds string `description:"音频播放时长"`
  160. ReportCode string `description:"报告唯一编码"`
  161. ShareUrl string `description:"分享url"`
  162. }
  163. type EnglishReportListResp struct {
  164. List []*EnglishReportList
  165. Paging *paging.PagingItem `description:"分页数据"`
  166. }
  167. func GetEnglishReportList(condition string, pars []interface{}, startSize, pageSize int) (items []*EnglishReportDetail, err error) {
  168. o := orm.NewOrmUsingDB("rddp")
  169. sql := `SELECT *
  170. FROM english_report WHERE state=2 `
  171. if condition != "" {
  172. sql += condition
  173. }
  174. sql += `ORDER BY publish_time DESC, id DESC LIMIT ?,?`
  175. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  176. return
  177. }