d_recommend.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. const mysql = require('./mysql')
  2. const field = require('../maps/field')
  3. const code = require('../maps/rcodeMap')
  4. const checkArgumentsIsEmpty = require('../until/checkArgumentsIsEmpty')
  5. /**
  6. * 新增活动
  7. * @param recommendName 活动名
  8. * @param discript 推荐描述
  9. * @param zIndex 排序
  10. * @param imgUrl
  11. * @returns {Promise | Promise<unknown>}
  12. */
  13. function addRecommend(recommendName,discript,zIndex = 1,imgUrl = 'public/upload/bg_weekend.jpg'){
  14. let sql=``,values=[];
  15. sql+=`insert into
  16. recommend (recommendName,discript,zIndex,bg)
  17. values(?,?,?,?);`
  18. values.push(recommendName,discript,zIndex,imgUrl)
  19. return mysql.pq(sql,values);
  20. }
  21. /**
  22. * 活动列表
  23. * @returns {Promise | Promise<unknown>}
  24. */
  25. function recommendList(){
  26. let sql=``,values=[];
  27. sql+=`select * from recommendDir`
  28. sql += ' order by zIndex desc;'
  29. return mysql.pq(sql,values);
  30. }
  31. /**
  32. * 获取活动
  33. * @param recommendId 活动id
  34. * @returns {Promise | Promise<unknown>}
  35. */
  36. function find(recommendId){
  37. let sql=``,values=[];
  38. sql+=`select * from recommendDir where id = ?`
  39. sql += ';'
  40. values.push(recommendId)
  41. return mysql.pq(sql,values);
  42. }
  43. /**
  44. * 搜索活动
  45. * @param key
  46. * @param state
  47. * @returns {Promise<unknown>}
  48. */
  49. function searchRecommend(key,state){
  50. let sql=``,values=[];
  51. sql+=`select * from recommendDir`
  52. if(key){
  53. sql += ` where recommend like "%?%" and discript like "%?%"`
  54. values.push(key,key)
  55. }
  56. if(state){
  57. if(values.length < 1){
  58. sql += ' where'
  59. }
  60. sql += ` state = state`
  61. values.push(state)
  62. }
  63. sql += ';'
  64. // values.push(recommendName,discript,zIndex)
  65. return mysql.pq(sql,values);
  66. }
  67. /**
  68. * 加载所有航班
  69. * @param recommendId 航班id
  70. * @param isHave 是否为在指定航班中
  71. * @returns {Promise<unknown>}
  72. */
  73. function loadFlights(recommendId,isHave){
  74. let sql=``,values=[];
  75. sql+=`select r.*,f.flightName,f.currentPrice,f.originalPrice,f.sailingTime,f.langdinTime ,air.airCode,dep.cityname as departureCityName,tar.cityname as targetCityName
  76. from
  77. recommendFlight as r,
  78. flight as f
  79. LEFT JOIN (select * from air ) as air on air.id = f.airId
  80. LEFT JOIN (select id,cityName from area ) as dep on dep.id = f.departureCity
  81. LEFT JOIN (select id,cityName from area ) as tar on tar.id = f.targetCity where`
  82. if(isHave){
  83. sql += ` f.id = r.flightId`;
  84. }else {
  85. sql += ` f.id != r.flightId`;
  86. }
  87. sql += ` and r.recommendId = ?`;
  88. values.push(recommendId);
  89. sql += ' order by r.zIndex desc;'
  90. return mysql.pq(sql,values);
  91. }
  92. /**
  93. * 活动添加航班
  94. * @param recommendId 活动id
  95. * @param flights 航班列表
  96. * @returns {Promise<unknown>}
  97. */
  98. function addFlights(recommendId,flights){
  99. let sql=``,values=[];
  100. sql+=`insert into area (recommendId,flightId,recommendIndex) values`
  101. for (let i = 0;i<flights.length;i++){
  102. if(i>0){
  103. sql+=',';
  104. }
  105. sql+=`(?,?,?)`;
  106. values.push(recommendId,flights.flightId,flights.recommendIndex);
  107. }
  108. sql += ';'
  109. return mysql.pq(sql,values);
  110. }
  111. /**
  112. * 删除推荐里的指定航班
  113. * @param recommendId 推荐id
  114. * @param flightId 航班id
  115. */
  116. function deleteFlight(recommendId,flightId){
  117. let sql=``,values=[];
  118. sql+=`delete from recommendFlight where recommendId = ? and flightId = ?`
  119. values.push(recommendId,flightId);
  120. sql += ';'
  121. return mysql.pq(sql,values);
  122. }
  123. function updateRecommend(recommendId,params){
  124. let sql=`update recommendDir set`,values=[];
  125. let fields = Object.keys(params);
  126. fields = fields.filter(field=>params[field])
  127. if(fields.length<1){
  128. throw {rcode:code.notParam}
  129. }
  130. for(let field of fields) {
  131. if (!params[field]) {
  132. continue;
  133. }
  134. if(values.length>0){sql+=','}
  135. sql+=` \`${field}\` = ?`
  136. values.push(params[field])
  137. }
  138. sql+=` where id = ?`;
  139. values.push(recommendId);
  140. return mysql.pq(sql,values);
  141. }
  142. module.exports = {
  143. recommendList,
  144. addRecommend,
  145. searchRecommend,
  146. loadFlights,
  147. addFlights,
  148. deleteFlight,
  149. updateRecommend,
  150. find
  151. }