pay_vip.js
1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
async function getVipOrder(connection, uId, label) {
// 获取订单
const resCount = await connection.queryAsync(
'SELECT id,`order`,sk_number,pay_id,sk_num,sk_time FROM ct_user_sk_order WHERE u_id=? AND checkinfo=0 ORDER BY add_time DESC LIMIT 0,1',
[uId]
);
if (!resCount || !resCount[0] || !resCount[0]['id']) {
logger.warn(
`【${label}】${logUidAndTradeNo},该订单不存在或已支付,resCount:${JSON.stringify(resCount)}`
);
return;
}
return resCount;
}
async function updateVipOrder(connection, uId, order) {
const orderNo = order['order'].replace('wxpay', 'wxpaymini');
const today = new Date();
const nowTime = +today / 1000;
today.setMonth(today.getMonth() + order['sk_time']);
const endTime = +today / 1000;
const orderId = order['id'];
const skLevel = order['pay_id'];
const skNum = order['sk_num'];
const skNo = order['sk_number'];
// 事务开始
await connection.beginTransactionAsync();
// 更新语句
const updateUserRes = await connection.queryAsync(
'UPDATE ct_user SET sk_level=?,sk_num=?,sk_start_time=?,sk_end_time=?,foor_number=? WHERE uid=?',
[skLevel, skNum, parseInt(nowTime), parseInt(endTime), skNo, uId]
);
const updateOrderRes = await connection.queryAsync(
'UPDATE ct_user_sk_order SET `order`=?,pay_type=5,checkinfo=1,update_time=?,pay_time=?,`state`=1 WHERE id=?',
[orderNo, new Date(), new Date(), orderId]
);
// 提交事务
await connection.commitAsync();
// 更新结果
return updateOrderRes.affectedRows > 0 && updateUserRes.affectedRows > 0;
}
exports.updateVipOrder = updateVipOrder;
exports.getVipOrder = getVipOrder;