d_solution.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. const mysql = require('./mysql');
  2. const {searchSql,limitSql} = require("../tools/searchSql");
  3. const log = require("../logger").logger("d_solution","info");
  4. function loadSolution(key, page, limit) {
  5. let sql = ``;
  6. let values = [];
  7. sql += `SELECT
  8. news.id,
  9. news.remark,
  10. news.title as name,
  11. news.image,
  12. news.source_val as source,
  13. news.sourceType
  14. FROM
  15. hfy_news as news ,
  16. hfy_news_type as n_type
  17. WHERE
  18. news.type_id = n_type.type_id
  19. and n_type.parent_type = 1
  20. and n_type.type_key = ?`;
  21. values = [key];
  22. let _limitSql = limitSql(limit,page);
  23. sql += _limitSql.sql;
  24. values.push(..._limitSql.values);
  25. // log.info(sql);
  26. return mysql.pq(sql, values);
  27. }
  28. function searchSolution(type='array', searchParam, sort, page,limit){
  29. let sql;
  30. let values = [];
  31. if(type === 'count'){
  32. sql = `
  33. select
  34. count(*) as total
  35. FROM hfy_news AS news
  36. INNER JOIN hfy_news_type AS n_type
  37. ON news.type_id = n_type.type_id`;
  38. }else{
  39. sql = `
  40. SELECT
  41. news.id,
  42. news.remark,
  43. news.title,
  44. news.title as name,
  45. news.image,
  46. news.coverId,
  47. news.date_time,
  48. news.hits,
  49. f.filePath as coverPath,
  50. f.fileType as coverType,
  51. news.source,
  52. news.sourceType,
  53. n_type.type_key
  54. FROM hfy_news AS news
  55. LEFT JOIN hfy_files as f ON news.coverId = f.fileId
  56. INNER JOIN hfy_news_type AS n_type ON news.type_id = n_type.type_id
  57. `;
  58. }
  59. sql += ` where 1=1 `
  60. if(searchParam.parentType) {
  61. sql += ` and n_type.parent_type = ?`
  62. values.push(searchParam.parentType);
  63. }
  64. if(searchParam.key){
  65. sql += ` and news.title like '%${searchParam.key}%'`
  66. }
  67. if(searchParam.type){
  68. sql += ` and n_type.type_key = ?`
  69. values.push(searchParam.type)
  70. }
  71. // 增加排序
  72. if(sort && sort.key && sort.type){
  73. // key value 转换
  74. if(sort.key === 'date_time')
  75. if(sort.key === 'hits'){
  76. sort.key = 'news.hits';
  77. }else{
  78. sort.key = 'news.date_time';
  79. }
  80. if(sort.type === 'asc'){
  81. sort.type = 'asc';
  82. }else{
  83. sort.type = 'desc';
  84. }
  85. sql += ` order by ${sort.key} ${sort.type}`;
  86. }else{
  87. sql += ` order by news.date_time desc`;
  88. }
  89. // console.log(sql);
  90. // console.log(values);
  91. return searchSql(mysql.pq,type,sql,values,limit,page);
  92. }
  93. function getSolutionInfo(id) {
  94. let sql = ``;
  95. let values = [];
  96. sql += `SELECT
  97. news.*
  98. FROM
  99. hfy_news as news
  100. WHERE
  101. news.id = ?`;
  102. values = [id];
  103. return mysql.pq(sql, values);
  104. }
  105. module.exports = {
  106. loadSolution,
  107. searchSolution,
  108. getSolutionInfo
  109. }