d_product.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. p_type.type_key
  27. FROM
  28. hfy_product as p,
  29. hfy_product_type as p_type
  30. WHERE
  31. p.type_id = p_type.type_id
  32. and p.proid = ?`;
  33. values = [id];
  34. return mysql.pq(sql, values);
  35. }
  36. function searchProducts(type='array',searchParam,page,limit){
  37. let sql = ``;
  38. let values = [];
  39. if(type === 'count'){
  40. sql = `select count(*) as total `;
  41. }else{
  42. sql = `select
  43. p.proid as id,
  44. p.remark,p.name,
  45. p.image,p.source,
  46. p.sourceType,
  47. p_type.type_key
  48. `;
  49. }
  50. sql += `
  51. from
  52. hfy_product as p,
  53. hfy_product_type as p_type
  54. `
  55. sql += `where p.type_id = p_type.type_id`
  56. if(searchParam.key){
  57. sql += ` and p.name like '%${searchParam.key}%'`
  58. }
  59. if(searchParam.type){
  60. sql += ` and p_type.type_key = ?`
  61. values.push(searchParam.type)
  62. }
  63. return searchSql(mysql.pq,type,sql,values,limit,page);
  64. }
  65. /**
  66. * 搜索产品,只返回id和name等信息,节约流量
  67. * @param type
  68. * @param searchParam
  69. * @param page
  70. * @param limit
  71. * @returns {*}
  72. */
  73. function searchProductsByMini(type='array',searchParam,page,limit){
  74. let sql = ``;
  75. let values = [];
  76. if(type === 'count'){
  77. sql = `select count(*) as total `;
  78. }else{
  79. sql = `select
  80. p.proid as id,
  81. p.name,
  82. p_type.type_key
  83. `;
  84. }
  85. sql += `
  86. from
  87. hfy_product as p,
  88. hfy_product_type as p_type
  89. `
  90. sql += `where p.type_id = p_type.type_id`
  91. if(searchParam.key){
  92. sql += ` and p.name like '%${searchParam.key}%'`
  93. }
  94. if(searchParam.type){
  95. sql += ` and p_type.type_key = ?`
  96. values.push(searchParam.type)
  97. }
  98. return searchSql(mysql.pq,type,sql,values,limit,page);
  99. }
  100. function loadTypes() {
  101. let sql = `SELECT * FROM hfy_product_type`;
  102. return mysql.pq(sql, []);
  103. }
  104. function getProductById(id){
  105. let sql = `SELECT *,name as title FROM hfy_product WHERE proid = ? limit 1`;
  106. return mysql.pq(sql,[id]);
  107. }
  108. module.exports = {
  109. loadProducts,
  110. getProductInfo,
  111. searchProducts,
  112. searchProductsByMini,
  113. loadTypes,
  114. getProductById
  115. }