d_solution.js 2.9 KB

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