소스 검색

修改webserver

zhanwencai 1 년 전
부모
커밋
c23cc3e542
3개의 변경된 파일46개의 추가작업 그리고 16개의 파일을 삭제
  1. 35 14
      webServer/src/controller/ApiController.ts
  2. 11 1
      webServer/src/model/OrderModel.ts
  3. 0 1
      webServer/src/msg.ts

+ 35 - 14
webServer/src/controller/ApiController.ts

@@ -23,10 +23,23 @@ const callPay = async (ctx) => {
 
     let data = ctx.request.body
     let sign = data.sign
-    let serverId = data.serverId
+    let serverId = data.serverID
+    let orderId = data.cpOrderID
 
     logger.info("pay callback params:", { "url": ctx.href, "params": data })
 
+    const orderInfo = (await Order.getOrder(orderId))[0]
+
+    if (!orderInfo) {
+        logger.info(`订单${orderId}不存在`)
+        return false
+    }
+
+    if (orderInfo.status == 2) {
+        logger.info(`订单${orderId}已经重复发货`)
+        return false
+    }
+
     //签名参数
     let signData = Object.keys(data).filter(key => key !== 'sign');
     let signStr = signData.map(key => `${data[key]}`).join('');
@@ -36,18 +49,13 @@ const callPay = async (ctx) => {
     console.log("signStr:", signStr)
     console.log("newSign:", newSign)
     if (sign != newSign) {
-        console.log("签名错误:", signStr, newSign, sign)
-        return false
-    }
-    console.log(111, orderList)
-    if (orderList.includes(data.orderId)) {
-        logger.error("订单号无效", data.orderId)
+        logger.info(`签名错误: 签名串 ${signStr} newSign ${newSign} sign ${sign}`)
         return false
     }
 
     let url = getServerList(serverId)
     if (!url) {
-        console.log("区服id错误")
+        logger.info(`区服id错误: serverId ${serverId}`)
         return false
     }
 
@@ -65,10 +73,23 @@ const callPay = async (ctx) => {
 
     setTimeout(function () {
         console.log("这个消息将在3秒后打印出来");
-        Msg.CG_ASK_LOGIN("payCallback", 0, "", 'cn', 'CN', ctx.request.ip, params);
+        Msg.CG_ASK_LOGIN(Account, 0, "", 'cn', 'CN', ctx.request.ip, params);
     }, 3000);
-    orderList.push(data.order_id)
-    return true
+
+    const update_time = formatDate(new Date())
+    const res = await Order.updateOrderStats(
+        orderId,
+        2,
+        update_time
+    );
+
+    if (res.affectedRows > 0) {
+        logger.info(`订单${orderId} 发货成功`)
+        return true
+    } else {
+        logger.info(`订单${orderId} 发货失败`)
+        return false
+    }
 }
 
 //验证账号
@@ -99,14 +120,14 @@ const generateOrderNumber = () => {
     const hours = date.getHours().toString().padStart(2, '0');
     const minutes = date.getMinutes().toString().padStart(2, '0');
     const seconds = date.getSeconds().toString().padStart(2, '0');
-    const datestring = `${year}${month}${day}${hours}${minutes}${seconds}`;
+    const dateString = `${year}${month}${day}${hours}${minutes}${seconds}`;
     const randomString1 = Math.floor(Math.random() * 1090000000800)
         .toString()
         .slice(0, 4);
     const randomString2 = Math.floor(Math.random() * 1090000000800)
         .toString()
         .slice(0, 4);
-    return datestring + randomString1 + randomString2;
+    return "CP" + dateString + randomString1 + randomString2;
 }
 
 const formatDate = (date: Date) => {
@@ -127,7 +148,7 @@ class ApiController {
             product_id
         } = ctx.request.body
 
-        logger.info("create params:", {"params": ctx.request.body })
+        logger.info("create params:", { "params": ctx.request.body })
 
         const orderId = generateOrderNumber(); // 生成一个长度为8的订单号
         const create_time = formatDate(new Date())

+ 11 - 1
webServer/src/model/OrderModel.ts

@@ -3,7 +3,7 @@ import { query } from '../sql/query'; // 确保路径是正确的
 class OrderModel {
     //获取订单
     async getOrder(order_id: any) {
-        return await query(`SELECT * FROM order WHERE order_id = '${order_id}'`)
+        return await query(`SELECT * FROM game_order WHERE order_id = '${order_id}'`)
     }
 
     //添加订单
@@ -19,6 +19,16 @@ class OrderModel {
     ) {
         return await query(`INSERT INTO game_order(order_id, uid, level,amount,role_id,role_name,product_id,create_time) VALUES('${orderId}', '${uid}', '${level}', '${amount}', '${role_id}', '${role_name}','${product_id}', '${create_time}')`)
     }
+
+    async updateOrderStats(
+        orderId: any,
+        status: any,
+        update_time: string
+    ) {
+
+        const sql = 'UPDATE game_order SET status = ?, update_time = ? WHERE order_id = ?';
+        return await query(sql, [status, update_time, orderId])
+    }
 }
 
 module.exports = new OrderModel()

+ 0 - 1
webServer/src/msg.ts

@@ -209,5 +209,4 @@ export default class Msg {
 		console.log("发送完了断开连接");
         Msg.close();  // 主动断开连接
 	}
-
 }