d_recommend.js 4.1 KB

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