d_product.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. const mysql = require('./mysql');
  2. const {searchSql,limitSql} = require("../tools/searchSql");
  3. const log = require("../logger").logger("d_product","info")
  4. function loadProducts(key, page, limit) {
  5. let sql = ``;
  6. let values = [];
  7. sql += `SELECT
  8. p.proid as id,p.remark,p.name,p.image,p.source,p.sourceType
  9. FROM
  10. hfy_product as p ,
  11. hfy_product_type as p_type
  12. WHERE
  13. p.type_id = p_type.type_id
  14. and p_type.type_key = ?`;
  15. values = [key];
  16. let _limitSql = limitSql(limit,page);
  17. sql += _limitSql.sql;
  18. values.push(..._limitSql.values);
  19. return mysql.pq(sql, values);
  20. }
  21. function getProductInfo(id) {
  22. let sql = ``;
  23. let values = [];
  24. sql += `SELECT
  25. p.*
  26. FROM
  27. hfy_product as p
  28. WHERE
  29. p.proid = ?`;
  30. values = [id];
  31. return mysql.pq(sql, values);
  32. }
  33. function searchProducts(type='array',searchParam,page,limit){
  34. let sql = ``;
  35. let values = [];
  36. if(type === 'count'){
  37. sql = `select count(*) as total `;
  38. }else{
  39. sql = `select
  40. p.proid as id,
  41. p.remark,p.name,
  42. p.image,p.source,
  43. p.sourceType,
  44. p_type.type_key
  45. `;
  46. }
  47. sql += `
  48. from
  49. hfy_product as p,
  50. hfy_product_type as p_type
  51. `
  52. sql += `where p.type_id = p_type.type_id`
  53. if(searchParam.key){
  54. sql += ` and p.name like '%${searchParam.key}%'`
  55. }
  56. if(searchParam.type){
  57. sql += ` and p_type.type_key = ?`
  58. values.push(searchParam.type)
  59. }
  60. return searchSql(mysql.pq,type,sql,values,limit,page);
  61. }
  62. /**
  63. * 搜索产品,只返回id和name等信息,节约流量
  64. * @param type
  65. * @param searchParam
  66. * @param page
  67. * @param limit
  68. * @returns {*}
  69. */
  70. function searchProductsByMini(type='array',searchParam,page,limit){
  71. let sql = ``;
  72. let values = [];
  73. if(type === 'count'){
  74. sql = `select count(*) as total `;
  75. }else{
  76. sql = `select
  77. p.proid as id,
  78. p.name,
  79. p_type.type_key
  80. `;
  81. }
  82. sql += `
  83. from
  84. hfy_product as p,
  85. hfy_product_type as p_type
  86. `
  87. sql += `where p.type_id = p_type.type_id`
  88. if(searchParam.key){
  89. sql += ` and p.name like '%${searchParam.key}%'`
  90. }
  91. if(searchParam.type){
  92. sql += ` and p_type.type_key = ?`
  93. values.push(searchParam.type)
  94. }
  95. return searchSql(mysql.pq,type,sql,values,limit,page);
  96. }
  97. function loadTypes() {
  98. let sql = `SELECT * FROM hfy_product_type`;
  99. return mysql.pq(sql, []);
  100. }
  101. function getProductById(id){
  102. let sql = `SELECT *,name as title FROM hfy_product WHERE proid = ? limit 1`;
  103. return mysql.pq(sql,[id]);
  104. }
  105. module.exports = {
  106. loadProducts,
  107. getProductInfo,
  108. searchProducts,
  109. searchProductsByMini,
  110. loadTypes,
  111. getProductById
  112. }