Bladeren bron

增改乘车人信息,接口,数据库

kindring 2 jaren geleden
bovenliggende
commit
80d5f8f620
5 gewijzigde bestanden met toevoegingen van 142 en 15 verwijderingen
  1. 17 3
      controller/TimeUpdate.js
  2. 20 6
      controller/account.js
  3. 2 0
      controller/c_area.js
  4. 11 4
      database/d_user.js
  5. 92 2
      routes/userApi.js

+ 17 - 3
controller/TimeUpdate.js

@@ -45,7 +45,7 @@ async function main(){
     orders = result.map(order=>{
         return {
             id: order.id,
-            endTime: order.createTime + expire
+            endTime: parseInt(order.createTime) + expire
         }
     });
     tick(1000,check);
@@ -55,12 +55,26 @@ main();
 
 console.log('检测订单');
 
+// 用户支付订单
 async function payOrder(orderId){
     payLock=true;
     let [err,result] = await handle(db_user.payOrder(orderId));
-    if(err){console.log(err)}
-
+    if(err){payLock=false;console.log(err);throw err}
+    let ind = orders.findIndex(val=>val.id==orderId);
+    if(ind!=-1){orders[ind] = null}
+    orders = orders.filter(val=>val);
+    payLock=false;
 }
 
+async function addOrder(orderId,createTime){
+    orders.push({
+        id: orderId,
+        endTime: parseInt(createTime) + expire
+    })
+}
 
+module.exports = {
+    payOrder,
+    addOrder,
+}
 

+ 20 - 6
controller/account.js

@@ -164,14 +164,19 @@ async function addTravel(name,card,phone,account,isDefault = field.travelState_i
         throw {rcode:codeMap.notFound,msg:'无法找到账户'}
     }
     userId = result[0].id;
-    [err,result] = await handle(db_user.changeAllTravelState(userId,field.travelState_notDefault));
-    if(err)throw err;
-    // 开始添加购物车
+    // 开始添加乘客
     [err,result] = await handle(db_user.addTravel(userId,name,card,phone,isDefault));
     if(err)throw err;
     return result;
 }
 
+/**
+ * 更改乘车人信息
+ * @param account
+ * @param travelId
+ * @param params
+ * @returns {Promise<*>}
+ */
 async function updateTravel(account,travelId,params){
     // 根据账号查找id
     let [err,result] = await handle(db_user.findAccountUser(userType,account));
@@ -179,13 +184,19 @@ async function updateTravel(account,travelId,params){
     if(result.length < 1){
         throw {rcode:codeMap.notFound,msg:'无法找到账户'}
     }
+    // 根据账户与id查找乘车人
+    [err,result] = await handle(db_user.findUserTravel(result[0].id,travelId));
+    if(err)throw err;
+    if(result.length < 1){
+        throw {rcode:codeMap.notFound,msg:'无法匹配用户的乘车人'}
+    }
     [err,result] = await handle(db_user.changeTravel(travelId,{
+        name:params.name,
         card:params.card,
         phone:params.phone,
         default:params.default
     }));
     if(err)throw err;
-
     // 查找成功
     return result;
 }
@@ -231,7 +242,10 @@ async function travelInfo(account,passwd,travelId){
     }
     [err,result] = await handle(db_user.travelInfo(travelId));
     if(err)throw err;
-    return result;
+    if(result.length < 1){
+        throw {rcode:codeMap.notFound,msg:'无法找到乘车人'}
+    }
+    return result[0];
 }
 
 async function addCar(flightId,account){
@@ -265,7 +279,7 @@ async function addCar(flightId,account){
 }
 
 
-async function addOrder(){
+async function addOrder(account){
 
 }
 

+ 2 - 0
controller/c_area.js

@@ -42,6 +42,8 @@ async function updateCity(cityId,cityName,cityType){
 
 
 
+
+
 module.exports = {
     addCity,
     searchCity,

+ 11 - 4
database/d_user.js

@@ -127,17 +127,23 @@ function addCar(flightId,userId){
  * @returns {Promise | Promise<unknown>}
  */
 function addTravel(userId,name,card,phone,defaultState){
-    let sql = `insert into travel(userId,name,card,phone,default) values(?,?,?,?,?)`;
+    let sql = `insert into travel(userId,name,card,phone,\`default\`) values(?,?,?,?,?)`;
     let values = [userId,name,card,phone,defaultState];
     return mysql.pq(sql,values);
 }
 // 获取乘机人
 function travels(userId){
-    let sql = `select * from travel where userId = ? and delete = ?`;
+    let sql = `select * from travel where userId = ? and \`delete\` = ?`;
     let values = [userId,fields.travelDelete_notDelete];
     return mysql.pq(sql,values);
 }
 
+// 获取乘机人
+function findUserTravel(userId,flightId){
+    let sql = `select * from travel where userId = ? and id = ?`;
+    let values = [userId,flightId];
+    return mysql.pq(sql,values);
+}
 /**
  * 修改指定用户的所有状态
  * @param userId
@@ -145,7 +151,7 @@ function travels(userId){
  * @returns {Promise | Promise<unknown>}
  */
 function changeAllTravelState(userId,travelState = fields.travelState_notDefault){
-    let sql = `update travel set default = ? where userId = ?`;
+    let sql = `update travel set \`default\` = ? where userId = ?`;
     let values = [travelState,userId];
     return mysql.pq(sql,values);
 }
@@ -169,7 +175,7 @@ function changeTravel(travelId,params){
             continue;
         }
         if(values.length>0){sql+=','}
-        sql+=` ${field} = ?`
+        sql+=` \`${field}\` = ?`
         values.push(params[field])
     }
     sql+=` where id=?`;
@@ -305,6 +311,7 @@ module.exports =  {
     removeTravel,
     addTravel,
     travels,
+    findUserTravel,
     travelInfo,
     changeAllTravelState,
     changeTravel,

+ 92 - 2
routes/userApi.js

@@ -182,12 +182,102 @@ router.post('/travel/add',
                 name:{required:true},
                 card:{required:true},
                 phone:{required:true},
-                isDefault:{required:true},
             }
         }),
     async(req,res)=>{
         try{
-            let results = await c_user.addTravel(req.body.travelId);
+            let results = await c_user.addTravel(
+                req.body.name,
+                req.body.card,
+                req.body.phone,
+                req.session[progress.userSessionField]);
+            res.json({
+                rcode: code.ok,
+                data: results,
+                total: results.length
+            })
+        }catch (error) {
+            if (error.rcode !== code.customError) {
+                console.log(error);
+            }
+            res.json({
+                rcode: error.rcode || code.serverError,
+                msg: error.msg || error.message
+            });
+        }
+    })
+
+router.post('/travel/change',
+    checkLogin(fields.userType),
+    checkParams(
+        {
+            post:{
+                travelId:{required:true},
+                params:{required:true},
+            }
+        }),
+    async(req,res)=>{
+        try{
+            let results = await c_user.updateTravel(
+                req.session[progress.userSessionField],
+                req.body.travelId,
+                req.body.params,
+            );
+            res.json({
+                rcode: code.ok,
+                data: results,
+                total: results.length
+            })
+        }catch (error) {
+            if (error.rcode !== code.customError) {
+                console.log(error);
+            }
+            res.json({
+                rcode: error.rcode || code.serverError,
+                msg: error.msg || error.message
+            });
+        }
+    })
+
+router.post('/travel/info',
+    checkLogin(fields.userType),
+    checkParams(
+        {
+            post:{
+                travelId:{required:true},
+                passwd:{required:true},
+            }
+        }),
+    async(req,res)=>{
+        try{
+            let results = await c_user.travelInfo(
+                req.session[progress.userSessionField],
+                req.body.passwd,
+                req.body.travelId,
+            );
+            res.json({
+                rcode: code.ok,
+                data: results,
+                total: results.length
+            })
+        }catch (error) {
+            if (error.rcode !== code.customError) {
+                console.log(error);
+            }
+            res.json({
+                rcode: error.rcode || code.serverError,
+                msg: error.msg || error.message
+            });
+        }
+    })
+
+router.get('/travels',
+    checkLogin(fields.userType),
+    async(req,res)=>{
+        try{
+            let results = await c_user.travels(
+                req.session[progress.userSessionField],
+            );
             res.json({
                 rcode: code.ok,
                 data: results,