d_user.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. const mysql = require('./mysql');
  2. const fields = require("../maps/field")
  3. const code = require("../maps/rcodeMap");
  4. /**
  5. * 查找是否有指定用户名的账户
  6. * @param userType 用户类型
  7. * @param account 账号
  8. * @returns {Promise<unknown>}
  9. */
  10. function findAccountUser(userType,account){
  11. let sql = `select * from user where accountType = ? and account = ?`;
  12. let values = [userType,account];
  13. return mysql.pq(sql,values);
  14. }
  15. /**
  16. * 查找是否手机号是否被绑定
  17. * @param userType 用户类型
  18. * @param phone 手机号
  19. * @returns {Promise<unknown>}
  20. */
  21. function findPhoneUser(userType,phone){
  22. let sql = `select count(*) as total from user where accountType = ? and phone = ?`;
  23. let values = [userType,phone];
  24. return mysql.pq(sql,values);
  25. }
  26. /**
  27. * 登录
  28. * @param userType
  29. * @param account
  30. * @param passwd
  31. * @returns {Promise<unknown>}
  32. */
  33. function login(userType,account,passwd){
  34. let sql = `select * from user where accountType = ? and account = ? and passwd = ?`;
  35. let values = [...arguments];
  36. return mysql.pq(sql,values);
  37. }
  38. /**
  39. * 根据id修改密码
  40. * @param id
  41. * @param newPasswd
  42. * @returns {Promise<unknown>}
  43. */
  44. function changePasswd(id,newPasswd){
  45. let sql = `update user set passwd = ? where id = ?`;
  46. let values = [newPasswd,id];
  47. return mysql.pq(sql,values);
  48. }
  49. /**
  50. * 修改账号手机号
  51. * @param id
  52. * @param phone
  53. * @returns {Promise<unknown>}
  54. */
  55. function changePhone(id,phone){
  56. let sql = `update user set Phone = ? where id = ?`;
  57. let values = [phone,id];
  58. return mysql.pq(sql,values);
  59. }
  60. /**
  61. * 新增用户
  62. * @param userType 账户类型
  63. * @param nickName 用户名称
  64. * @param account 登录账号
  65. * @param passwd 密码
  66. * @returns {Promise<unknown>}
  67. */
  68. function register(userType,nickName,account,passwd){
  69. let sql = `insert into user(nickName,account,passwd,accountType) values(?,?,?,?)`;
  70. let values = [nickName,account,passwd,userType];
  71. return mysql.pq(sql,values);
  72. }
  73. function info(type,account){
  74. let sql = `select * from user where accountType = ? and account = ?`;
  75. let values = [type,account];
  76. return mysql.pq(sql,values);
  77. }
  78. function findCar(userId,flightId){
  79. let sql = ``,values = [];
  80. sql = `select c.*,f.flightState,f.currentPrice,f.sailingTime,f.langdinTime,dep.cityname as departureCityName,tar.cityname as targetCityName
  81. from
  82. flight as f
  83. inner JOIN (select * from car ) as c on c.flightId = f.id
  84. LEFT JOIN (select id,cityName from area ) as dep on dep.id = f.departureCity
  85. LEFT JOIN (select id,cityName from area ) as tar on tar.id = f.targetCity
  86. where c.userId = ? and flightId = ?;`
  87. values.push(userId,flightId);
  88. return mysql.pq(sql,values);
  89. }
  90. function cars(userId){
  91. let sql = ``,values = [];
  92. sql = `select c.*,f.flightState,f.currentPrice,f.sailingTime,f.langdinTime,dep.cityname as departureCityName,tar.cityname as targetCityName
  93. from
  94. flight as f
  95. inner JOIN (select * from car ) as c on c.flightId = f.id
  96. LEFT JOIN (select id,cityName from area ) as dep on dep.id = f.departureCity
  97. LEFT JOIN (select id,cityName from area ) as tar on tar.id = f.targetCity
  98. where c.userId = ?;`
  99. values.push(userId);
  100. return mysql.pq(sql,values);
  101. }
  102. function addCar(flightId,userId){
  103. let sql = `insert into car(flightId,userId) values(?,?)`;
  104. let values = [flightId,userId];
  105. return mysql.pq(sql,values);
  106. }
  107. /**
  108. * 添加乘机人
  109. * @param userId
  110. * @param name
  111. * @param card
  112. * @param phone
  113. * @param defaultState
  114. * @returns {Promise | Promise<unknown>}
  115. */
  116. function addTravel(userId,name,card,phone,defaultState){
  117. let sql = `insert into travel(userId,name,card,phone,default) values(?,?,?,?,?)`;
  118. let values = [userId,name,card,phone,defaultState];
  119. return mysql.pq(sql,values);
  120. }
  121. // 获取乘机人
  122. function travels(userId){
  123. let sql = `select * from travel where userId = ? and delete = ?`;
  124. let values = [userId,fields.travelDelete_notDelete];
  125. return mysql.pq(sql,values);
  126. }
  127. /**
  128. * 修改指定用户的所有状态
  129. * @param userId
  130. * @param travelState
  131. * @returns {Promise | Promise<unknown>}
  132. */
  133. function changeAllTravelState(userId,travelState = fields.travelState_notDefault){
  134. let sql = `update travel set default = ? where userId = ?`;
  135. let values = [travelState,userId];
  136. return mysql.pq(sql,values);
  137. }
  138. /**
  139. * 修改指定乘机人的信息
  140. * @param travelId
  141. * @param params
  142. * @returns {Promise | Promise<unknown>}
  143. */
  144. function changeTravel(travelId,params){
  145. let sql=`update travel set`,values=[];
  146. let fields = Object.keys(params);
  147. fields = fields.filter(field=>params[field])
  148. if(fields.length<1){
  149. throw {rcode:code.notParam}
  150. }
  151. for(let field of fields) {
  152. // console.log(`${field} : ${searchItems[field]}`)
  153. if (!params[field]) {
  154. continue;
  155. }
  156. if(values.length>0){sql+=','}
  157. sql+=` ${field} = ?`
  158. values.push(params[field])
  159. }
  160. sql+=` where id=?`;
  161. values.push(travelId)
  162. // let sql = `update travel set default = ? where userId = ?`;
  163. // let values = [travelState,userId];
  164. return mysql.pq(sql,values);
  165. }
  166. // 修改乘机人
  167. function removeTravel(travelId){
  168. let sql = `update travel set travel.delete = ? where travelId =?`;
  169. let values = [fields.travelDelete_notDelete,travelId];
  170. return mysql.pq(sql,values);
  171. }
  172. // 修改乘机人
  173. function travelInfo(travelId){
  174. let sql = `select * from travel where id = ?`;
  175. let values = [travelId];
  176. return mysql.pq(sql,values);
  177. }
  178. /**
  179. * 移除购物车的指定行 根据id
  180. * @param carId 要删除的id
  181. * @returns {Promise<unknown>}
  182. */
  183. function removeCar(carId){
  184. let sql = `delete from car where id = ?`;
  185. let values = [carId];
  186. return mysql.pq(sql,values);
  187. }
  188. function userOrder(userId,payState){
  189. let sql=``,values=[];
  190. sql+=`
  191. select
  192. o.*,air.airCode,
  193. f.sailingTime,f.langdinTime,f.flightState,f.flightName,
  194. dep.cityname as departureCityName,
  195. tar.cityname as targetCityName
  196. from
  197. orders as o
  198. LEFT JOIN (select * from flight ) as f on f.id = o.flightId
  199. LEFT JOIN (select * from air ) as air on air.id = f.airId
  200. LEFT JOIN (select id,cityName from area ) as dep on dep.id = f.departureCity
  201. LEFT JOIN (select id,cityName from area ) as tar on tar.id = f.targetCity;
  202. where userId = ?
  203. `
  204. values.push(userId);
  205. if (payState){
  206. sql+=` and payState = ?`;
  207. values.push(payState);
  208. }
  209. return mysql.pq(sql,values);
  210. }
  211. function addOrder(userId,flightId,travelIds,createTime){
  212. let sql=``,values=[];
  213. sql+=`insert into order(userId,flightId,ticketNum,travelIds,createTime)`;
  214. values.push(userId,flightId);
  215. values.push(travelIds.length);
  216. values.push(travelIds.join(','));
  217. values.push(createTime);
  218. return mysql.pq(sql,values);
  219. }
  220. /**
  221. * 用户支付订单
  222. * @param orderId
  223. * @returns {Promise | Promise<unknown>}
  224. */
  225. function payOrder(orderId){
  226. let sql=``,values=[];
  227. sql+=`update orders set payState = ? where id = orderId`
  228. values.push(fields.payState_pay,orderId);
  229. return mysql.pq(sql,values);
  230. }
  231. /**
  232. * 获取平台上所有等待支付的订单
  233. * @returns {Promise | Promise<unknown>}
  234. */
  235. function waitPayOrder(){
  236. let sql=``,values=[];
  237. sql+=`select * from orders where payState = ?`
  238. values.push(fields.payState_create);
  239. return mysql.pq(sql,values);
  240. }
  241. module.exports = {
  242. register,
  243. login,
  244. findAccountUser,
  245. findPhoneUser,
  246. changePhone,
  247. changePasswd,
  248. info,
  249. cars,
  250. removeCar,
  251. addCar,
  252. findCar,
  253. removeTravel,
  254. addTravel,
  255. travels,
  256. travelInfo,
  257. changeAllTravelState,
  258. changeTravel,
  259. waitPayOrder
  260. }