tactics.go 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package models
  2. import (
  3. "fmt"
  4. "github.com/rdlucklib/rdluck_tools/orm"
  5. "github.com/rdlucklib/rdluck_tools/paging"
  6. "strconv"
  7. "time"
  8. )
  9. type Tactics struct {
  10. ArticleId int `description:"文章id"`
  11. Title string `description:"标题"`
  12. TitleEn string `description:"英文标题"`
  13. UpdateFrequency string `description:"更新周期"`
  14. PublishDate time.Time `description:"发布时间"`
  15. PublishStatus int `description:"发布状态"`
  16. Department string `description:"作者"`
  17. Body string `description:"内容"`
  18. Abstract string `description:"摘要"`
  19. Annotation string `description:"注解"`
  20. CategoryName string `description:"分类"`
  21. SubCategoryName string `description:"子级分类"`
  22. CategoryId int `description:"分类id"`
  23. CreateDate string `description:"创建日期"`
  24. }
  25. func GetTacticsList(endDate string) (list []*Tactics, err error) {
  26. o := orm.NewOrm()
  27. o.Using("tactics")
  28. sql := `SELECT a.*,b.body,b.abstract,b.annotation,b.article_id,d.category_name,d.sub_category_name,c.category_id
  29. FROM article_articleinfo AS a
  30. INNER JOIN article_content AS b ON a.id=b.article_id
  31. INNER JOIN article_category AS c ON a.id=c.article_id
  32. INNER JOIN article_categoryinfo AS d ON c.category_id=d.id
  33. WHERE a.publish_status=1 AND a.publish_date>=? AND d.id IN (28,32,45,57,62,72,74,79,84,86,88,90,93,95,96,98)
  34. AND a.id NOT IN (3454,3456,3457,3459,2449,2450,2453,2454,2459,2530,2583,2663,2670,2699,2715,2732,2748,2759,2399,2356,2870,3173,2978,2826,3470) `
  35. _, err = o.Raw(sql, endDate).QueryRows(&list)
  36. return
  37. }
  38. func GetTacticsListAll() (list []*Tactics, err error) {
  39. o := orm.NewOrm()
  40. o.Using("tactics")
  41. sql := `SELECT a.*,b.body,b.abstract,b.annotation,b.article_id,d.category_name,d.sub_category_name,c.category_id
  42. FROM article_articleinfo AS a
  43. INNER JOIN article_content AS b ON a.id=b.article_id
  44. INNER JOIN article_category AS c ON a.id=c.article_id
  45. INNER JOIN article_categoryinfo AS d ON c.category_id=d.id
  46. WHERE a.publish_status=1 AND d.id IN (28,32,45,57,62,72,74,79,84,86,88,90,93,95,96,98)
  47. AND a.id NOT IN (3454,3456,3457,3459,2449,2450,2453,2454,2459,2530,2583,2663,2670,2699,2715,2732,2748,2759,2399,2356,2870,3173,2978,2826,3470) `
  48. //IN(85,71)
  49. _, err = o.Raw(sql).QueryRows(&list)
  50. return
  51. }
  52. func GetCygxArticleListAll() (list []*Tactics, err error) {
  53. o := orm.NewOrm()
  54. sql := `SELECT * FROM cygx_article `
  55. _, err = o.Raw(sql).QueryRows(&list)
  56. return
  57. }
  58. type Tactics2 struct {
  59. ArticleId int `description:"文章id"`
  60. Title string `description:"标题"`
  61. TitleEn string `description:"英文标题"`
  62. UpdateFrequency string `description:"更新周期"`
  63. PublishDate time.Time `description:"发布时间"`
  64. PublishStatus int `description:"发布状态"`
  65. Department string `description:"作者"`
  66. Body string `description:"内容"`
  67. Abstract string `description:"摘要"`
  68. Annotation string `description:"注解"`
  69. CategoryName string `description:"分类"`
  70. SubCategoryName string `description:"子级分类"`
  71. CategoryId int `description:"分类id"`
  72. CreateDate string `description:"创建日期"`
  73. IsClass int `description:"是否归类,1是,0否"`
  74. IsSummary int `description:"是否是纪要库,1是,0否"`
  75. IsReport int `description:"是否属于报告,1是,0否"`
  76. ReportType int `description:"报告类型,1行业报告,2产业报告,0无"`
  77. }
  78. func GetTacticsList2(endDate string) (list []*Tactics2, err error) {
  79. o := orm.NewOrm()
  80. o.Using("tactics")
  81. sql := `SELECT a.*,b.body,b.abstract,b.annotation,b.article_id,d.category_name,d.sub_category_name,c.category_id
  82. FROM article_articleinfo AS a
  83. INNER JOIN article_content AS b ON a.id=b.article_id
  84. INNER JOIN article_category AS c ON a.id=c.article_id
  85. INNER JOIN article_categoryinfo AS d ON c.category_id=d.id
  86. WHERE a.publish_status=1 AND a.publish_date>=? AND d.id IN (7,9,11,28,32,45,51,52,57,62,64,65,66,67,69,71,72,74,79,80,84,85,86,87,88,89,90,93,95,96,98,100,102)`
  87. //AND a.id NOT IN (3454,3456,3457,3459,2449,2450,2453,2454,2459,2530,2583,2663,2670,2699,2715,2732,2748,2759,2399,2356,2870,3173,2978,2826,3470) `
  88. //IN(85,71)
  89. _, err = o.Raw(sql, endDate).QueryRows(&list)
  90. return
  91. }
  92. func GetTacticsListAll2() (list []*Tactics2, err error) {
  93. o := orm.NewOrm()
  94. o.Using("tactics")
  95. sql := `SELECT a.*,b.body,b.abstract,b.annotation,b.article_id,d.category_name,d.sub_category_name,c.category_id
  96. FROM article_articleinfo AS a
  97. INNER JOIN article_content AS b ON a.id=b.article_id
  98. INNER JOIN article_category AS c ON a.id=c.article_id
  99. INNER JOIN article_categoryinfo AS d ON c.category_id=d.id
  100. WHERE a.publish_status=1 AND d.id IN (7,9,11,28,32,45,51,52,57,62,64,65,66,67,69,71,72,74,79,80,84,85,86,87,88,89,90,93,95,96,98,100) `
  101. //AND a.id NOT IN (3454,3456,3457,3459,2449,2450,2453,2454,2459,2530,2583,2663,2670,2699,2715,2732,2748,2759,2399,2356,2870,3173,2978,2826,3470) `
  102. //IN(85,71)
  103. _, err = o.Raw(sql).QueryRows(&list)
  104. return
  105. }
  106. type TacticsListResp struct {
  107. Paging *paging.PagingItem
  108. MatchTypeName string `description:"匹配类型"`
  109. List []*ReportArticle
  110. }
  111. func GetReportTacticsList(condition string, pars []interface{}, userId, startSize, pageSize int) (items []*ReportArticle, err error) {
  112. o := orm.NewOrm()
  113. sql := ` SELECT * ,(SELECT COUNT(1) FROM cygx_article_history_record AS rec WHERE rec.user_id = ` + strconv.Itoa(userId) + ` AND rec.article_id=a.article_id) AS readnum
  114. FROM cygx_article AS a
  115. WHERE a.publish_status=1 `
  116. if condition != "" {
  117. sql += condition
  118. }
  119. sql += ` ORDER BY publish_date DESC LIMIT ?,? `
  120. fmt.Println(sql)
  121. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  122. return
  123. }