d_recommend.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  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. recommendDir (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 and f.flightState = 1`;
  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
  114. * @param flightId
  115. * @param img
  116. * @param zIndex
  117. * @returns {Promise | Promise<unknown>}
  118. */
  119. function addFlight(recommendId,flightId,img,zIndex = 0){
  120. let sql=``,values=[];
  121. sql+=`insert into recommendFlight (recommendId,flightId,img,zIndex) values(?,?,?,?)`
  122. values.push(recommendId,flightId,img,zIndex)
  123. sql += ';'
  124. return mysql.pq(sql,values);
  125. }
  126. /**
  127. * 删除推荐里的指定航班
  128. * @param recommendId 推荐id
  129. * @param flightId 航班id
  130. */
  131. function deleteFlight(recommendId,flightId){
  132. let sql=``,values=[];
  133. sql+=`delete from recommendFlight where recommendId = ? and flightId = ?`
  134. values.push(recommendId,flightId);
  135. sql += ';'
  136. return mysql.pq(sql,values);
  137. }
  138. function updateRecommend(recommendId,params){
  139. let sql=`update recommendDir set`,values=[];
  140. let fields = Object.keys(params);
  141. fields = fields.filter(field=>params[field])
  142. if(fields.length<1){
  143. throw {rcode:code.notParam,msg:'db缺少参数'}
  144. }
  145. for(let field of fields) {
  146. if (!params[field]) {
  147. continue;
  148. }
  149. if(values.length>0){sql+=','}
  150. sql+=` \`${field}\` = ?`
  151. values.push(params[field])
  152. }
  153. sql+=` where id = ?`;
  154. values.push(recommendId);
  155. return mysql.pq(sql,values);
  156. }
  157. /**
  158. * 更新活动项
  159. * @param recommendId
  160. * @param flightId
  161. * @param params
  162. * @returns {Promise | Promise<unknown>}
  163. */
  164. function updateRecommendItem(recommendId,flightId,params){
  165. let sql=`update recommendFlight set`,values=[];
  166. let fields = Object.keys(params);
  167. fields = fields.filter(field=>params[field])
  168. if(fields.length<1){
  169. throw {rcode:code.notParam,msg:'db缺少参数'}
  170. }
  171. console.log(fields)
  172. console.log(params)
  173. for(let field of fields) {
  174. if (!params[field]) {
  175. continue;
  176. }
  177. if(values.length>0){sql+=','}
  178. sql+=` \`${field}\` = ?`
  179. values.push(params[field])
  180. }
  181. sql+=` where recommendId = ? and flightId = ?`;
  182. values.push(recommendId,flightId);
  183. return mysql.pq(sql,values);
  184. }
  185. module.exports = {
  186. recommendList,
  187. addRecommend,
  188. searchRecommend,
  189. loadFlights,
  190. addFlights,
  191. addFlight,
  192. deleteFlight,
  193. updateRecommend,
  194. updateRecommendItem,
  195. find
  196. }