function starttransaction(): promise<transaction>
const cloud = require("@alipay/faas-server-sdk");
exports.main = async (event, context) => {
const db = cloud.database();
try {
const transaction = await db.starttransaction();
const ordercollection = transaction.collection('order');
const accountcollection = transaction.collection('account');
const account = await accountcollection.doc('account-123').get();
if (account.amount < 10) {
console.log('事务执行失败,下单失败');
await transaction.rollback();
return {
success: false,
message: '账户余额不足',
};
}
const order = await ordercollection.add({
data: {
ordername: 'order-123',
status: 'created',
},
});
const amountleft = account.amount - 10;
await accountcollection.doc('account-123').update({
data: {
amount: amountleft,
}
});
await transaction.commit();
console.log('事务执行成功,下单成功');
return {
success: true,
orderid: order._id,
amountleft,
};