dk.go 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package models
  2. import (
  3. "eta/eta_task/global"
  4. "eta/eta_task/utils"
  5. )
  6. type WechatArticleTag struct {
  7. TagName string
  8. ArticleId string
  9. TextContent string
  10. Soft int
  11. }
  12. type WechatArticle struct {
  13. TextContent string
  14. }
  15. func GetWechatArticleTags(classifyName, startTime, endTime string, startSize, pageSize int) (list []*WechatArticleTag, err error) {
  16. sql := `SELECT a.tag_name,GROUP_CONCAT(DISTINCT a.article_id) AS article_id,c.soft
  17. FROM article_dfa_tag_mapping AS a
  18. INNER JOIN wechat_article AS b ON a.article_id=b.wechat_article_id
  19. INNER JOIN dfa_tag_sensitive_word_mapping AS c ON a.tag_name=c.tag_name
  20. WHERE a.tag_name<>''
  21. AND b.article_create_time >= ?
  22. AND b.article_create_time <= ?
  23. AND a.source='wechat'
  24. AND c.classify_name=?
  25. GROUP BY a.tag_name LIMIT ?,?`
  26. err = global.DbMap[utils.DbNameAI].Raw(sql, startTime, endTime, classifyName, startSize, pageSize).Find(&list).Error
  27. return list, err
  28. }
  29. func GetWechatArticle(articleId, startTime, endTime string) (list []*WechatArticle, err error) {
  30. sql := `SELECT a.text_content
  31. FROM wechat_article AS a
  32. WHERE a.wechat_article_id IN(` + articleId + `)
  33. AND a.article_create_time >= ?
  34. AND a.article_create_time <= ?`
  35. //AND a.is_summary=0`
  36. err = global.DbMap[utils.DbNameAI].Raw(sql, startTime, endTime).Find(&list).Error
  37. return list, err
  38. }
  39. func ModifyWechatArticleSummary(articleId string, isSummary int) (err error) {
  40. sql := ` UPDATE wechat_article SET is_summary=? WHERE wechat_article_id IN(` + articleId + `)`
  41. err = global.DbMap[utils.DbNameAI].Exec(sql, isSummary).Error
  42. return err
  43. }
  44. func GetWechatArticleTagsTotal(classifyName, startTime, endTime string) (total int, err error) {
  45. //sql := `SELECT COUNT(1) AS total
  46. // FROM article_dfa_tag_mapping AS a
  47. // INNER JOIN wechat_article AS b ON a.article_id=b.wechat_article_id
  48. // INNER JOIN dfa_tag_sensitive_word_mapping AS c ON a.tag_name=c.tag_name
  49. // WHERE a.tag_name<>''
  50. // AND b.article_create_time >= ?
  51. // AND b.article_create_time <= ?
  52. // AND a.source='wechat'
  53. // AND c.classify_name=?
  54. // GROUP BY a.tag_name`
  55. sql := `select count(1) as total from (
  56. SELECT COUNT(1) AS total
  57. FROM article_dfa_tag_mapping AS a
  58. INNER JOIN wechat_article AS b ON a.article_id=b.wechat_article_id
  59. INNER JOIN dfa_tag_sensitive_word_mapping AS c ON a.tag_name=c.tag_name
  60. WHERE a.tag_name<>''
  61. AND b.article_create_time >= ?
  62. AND b.article_create_time <= ?
  63. AND a.source='wechat'
  64. AND c.classify_name = ?
  65. GROUP BY a.tag_name
  66. )as t`
  67. err = global.DbMap[utils.DbNameAI].Raw(sql, startTime, endTime, classifyName).Scan(&total).Error
  68. return total, err
  69. }