Bladeren bron

航班与城市相关数据库操作

kindring 3 jaren geleden
bovenliggende
commit
444645c2d3
9 gewijzigde bestanden met toevoegingen van 133 en 4 verwijderingen
  1. 18 0
      controller/account.js
  2. 18 1
      controller/c_flight.js
  3. 40 1
      database/d_air.js
  4. 8 1
      database/d_user.js
  5. 4 1
      maps/field.js
  6. 1 0
      routes/citys.js
  7. 22 0
      routes/flight_api.js
  8. 21 0
      routes/userApi.js
  9. 1 0
      routes/users.js

+ 18 - 0
controller/account.js

@@ -92,11 +92,29 @@ async function register(type,account,passwd,nickName){
     return result;
 }
 
+/**
+ * 加载用户信息
+ * @param type
+ * @param account
+ * @returns {Promise<void>}
+ */
+async function info(type,account){
+    // 根据账号和原密码查找id
+    let [err,result] = await handle(db_user.info(type,account));
+    if(err)throw err;
+    if(result.length < 1){
+        throw {rcode:codeMap.notFound,msg:'无法找到账户'}
+    }
+    // 注册成功
+    return result[0];
+}
+
 module.exports = {
     register,
     changePhone,
     changePasswd,
     checkAccount,
     login,
+    info
 }
 

+ 18 - 1
controller/c_flight.js

@@ -158,10 +158,27 @@ async function updateFlight(flightId,updateOption){
     return result
 }
 
+/**
+ * 航班相关新闻
+ * @param nums 每种类型的数量
+ * @returns {Promise<void>}
+ */
+async function news(nums){
+    let result = {},sailFlights,wicketFlights;
+    [err,wicketFlights] = await handle(db_air.wicketFlights(nums));
+    if(err){throw err}
+    [err,sailFlights] = await handle(db_air.sailFlights(nums));
+    if(err){throw err}
+    result.sailFlights = sailFlights;
+    result.wicketFlights = wicketFlights;
+    return result;
+}
+
 module.exports = {
     searchFlight,
     flightList,
     addFlight,
     updateFlight,
-    flightInfo
+    flightInfo,
+    news
 }

+ 40 - 1
database/d_air.js

@@ -3,6 +3,7 @@ const mysql = require('./mysql');
 const until_time = require('../until/time');
 const {getUnixTimeStamp} = require("../until/time");
 const code = require("../maps/rcodeMap");
+const fields = require("../maps/field");
 const checkArgumentsIsEmpty = require("../until/checkArgumentsIsEmpty");
 // 查询指定城市航班
 
@@ -162,11 +163,49 @@ function recommendFlight(){
 
 }
 
+/**
+ * 售票的航班信息
+ * @param num
+ * @returns {Promise<unknown>}
+ */
+function sailFlights(num = 5){
+    let sql=``,values=[];
+    // 判断状态为
+    sql+=`select f.id,f.currentPrice,f.sailingTime,f.langdinTime,dep.cityname as departureCityName,tar.cityname as targetCityName
+            from
+            flight as f
+            LEFT JOIN (select id,cityName from area ) as dep on dep.id = f.departureCity
+            LEFT JOIN (select id,cityName from area ) as tar on tar.id = f.targetCity
+            where flightState = ? ORDER BY f.createTime desc limit 0,?;`
+    values.push(fields.flightState_sail,num);
+    return mysql.pq(sql,values);
+}
+
+/**
+ * 检票中的航班信息
+ * @param num
+ * @returns {Promise<unknown>}
+ */
+function wicketFlights(num = 5){
+    let sql=``,values=[];
+    // 判断状态为
+    sql+=`select f.id,f.currentPrice,f.sailingTime,f.langdinTime,f.createTime,dep.cityname as departureCityName,tar.cityname as targetCityName
+            from
+            flight as f
+            LEFT JOIN (select id,cityName from area ) as dep on dep.id = f.departureCity
+            LEFT JOIN (select id,cityName from area ) as tar on tar.id = f.targetCity
+            where flightState = ? ORDER BY f.sailingTime desc limit 0,?;`
+    values.push(fields.flightState_wicket,num);
+    return mysql.pq(sql,values);
+}
+
 module.exports = {
     flightSearch,
     addFlight,
     flightTicks,
     updateFlight,
     flightList,
-    flightInfo
+    flightInfo,
+    wicketFlights,
+    sailFlights
 }

+ 8 - 1
database/d_user.js

@@ -76,11 +76,18 @@ function register(userType,nickName,account,passwd){
     return mysql.pq(sql,values);
 }
 
+function info(type,account){
+    let sql = `select * from user where accountType = ? and account = ?`;
+    let values = [type,account];
+    return mysql.pq(sql,values);
+}
+
 module.exports =  {
     register,
     login,
     findAccountUser,
     findPhoneUser,
     changePhone,
-    changePasswd
+    changePasswd,
+    info
 }

+ 4 - 1
maps/field.js

@@ -17,5 +17,8 @@ module.exports = {
     cityType_domestic:1,
     // 国际城市
     cityType_international:2,
-
+    // 航班售票中
+    flightState_sail: 1,
+    // 航班检票状态
+    flightState_wicket:2,
 }

+ 1 - 0
routes/citys.js

@@ -76,4 +76,5 @@ router.post('/change',
         }
     })
 
+
 module.exports = router;

+ 22 - 0
routes/flight_api.js

@@ -155,4 +155,26 @@ router.post('/update',
         }
     }
 )
+
+router.get('/news',async (req,res)=>{
+    try{
+        let num = 5;
+        if(req.query.all === 'true'){
+            num = 99999;
+        }
+        let results = await c_flight.news(num);
+        res.json({
+            rcode: code.ok,
+            data: results
+        })
+    }catch (error) {
+        if (error.rcode !== code.customError) {
+            console.log(error);
+        }
+        res.json({
+            rcode: error.rcode || code.serverError,
+            msg: error.msg || error.message
+        });
+    }
+})
 module.exports = router;

+ 21 - 0
routes/userApi.js

@@ -1,8 +1,10 @@
 const router = require('express').Router();
 const checkParams = require('../middleware/paramsCheck')
+const checkLogin = require('../middleware/checkLogin')
 const c_user = require("../controller/account");
 const code = require("../maps/rcodeMap");
 const  fields = require("../maps/field")
+const progress = require('../maps/progress')
 // 检查账户 是否存在
 router.get('/check',
     checkParams({
@@ -27,4 +29,23 @@ router.get('/check',
             });
         }
 })
+// 获取用户信息
+router.get('/info',checkLogin(fields.userType),async(req,res)=>{
+    try{
+        let results = await c_user.info(fields.userType,req.session[progress.userSessionField]);
+        res.json({
+            rcode: code.ok,
+            data: results
+        })
+    }catch (error) {
+        if (error.rcode !== code.customError) {
+            console.log(error);
+        }
+        res.json({
+            rcode: error.rcode || code.serverError,
+            msg: error.msg || error.message
+        });
+    }
+});
+
 module.exports = router;

+ 1 - 0
routes/users.js

@@ -67,6 +67,7 @@ router.post('/login',
       try{
         if (req.body.captcha.toLowerCase() != req.session.captcha) return res.json({...result, msg: `验证码错误,captcha error` });
         let results = await c_user.login(fields.userType,req.body.account,req.body.passwd);
+        req.session[progress.userSessionField] = results;
         res.json({
           rcode: code.ok,
           data: results