/** * 第三方支付相关数据库操作 * 请勿修改此处代码,因为插件更新后此处代码会被覆盖。 * 作者:VK */ const dbNamePayOrders = "uni-pay-orders"; // 数据库表名 - 第三方支付订单表 const fnUtil = require('../fnUtil'); const db = uniCloud.database(); const _ = db.command; var dao = {}; /** * 添加 - 第三方支付订单数据 await payDao.addPayOrders({ status: 0, pay_type : payType, out_trade_no : outTradeNo, openid : openid, totalFee : totalFee, appid : appId, original_data : event.body, wxpay_info : wxpay_info, alipay_info : alipay_info, user_order_success: userOrderSuccess }); */ dao.addPayOrders = async (dataJson = {}) => { // 数据库操作开始----------------------------------------------------------- let date = new Date(); let _add_time = date.getTime(); let _add_time_str = fnUtil.timeFormat(date, "yyyy-MM-dd hh:mm:ss"); let res = await db.collection(dbNamePayOrders).add({ _add_time, _add_time_str, ...dataJson }); // 数据库操作结束----------------------------------------------------------- return res.id ? res.id : null; }; /** * 获取 - 第三方支付订单数据 await payDao.findPayOrdersByOutTradeNo(outTradeNo); */ dao.findPayOrdersByOutTradeNo = async (out_trade_no = "___") => { let res = await db.collection(dbNamePayOrders) .where({ out_trade_no }) .limit(1) .get(); if (res.data && res.data.length > 0) { return res.data[0]; } else { return null; } return res; }; /** * 修改 - 第三方支付订单数据 await payDao.updatePayOrdersById(id, { }); */ dao.updatePayOrdersById = async (id = "___", dataJson) => { // 数据库操作开始----------------------------------------------------------- let res = await db.collection(dbNamePayOrders).doc(id).update(dataJson); // 数据库操作结束----------------------------------------------------------- return res ? res.updated : 0; }; /** * 修改 - 第三方支付订单数据 await payDao.updatePayOrdersByWhereJson({ whereJson:{ status:0, out_trade_no }, dataJson:{ } }); */ dao.updatePayOrdersByWhereJson = async (obj) => { let { whereJson, dataJson } = obj; // 数据库操作开始----------------------------------------------------------- let res = await db.collection(dbNamePayOrders).where(whereJson).update(dataJson); // 数据库操作结束----------------------------------------------------------- return res ? res.updated : 0; }; /** * 删除超过1天还未支付款的订单 await payDao.deleteExpPayOrders(); */ dao.deleteExpPayOrders = async () => { // 数据库操作开始----------------------------------------------------------- let time = new Date().getTime() - 1000 * 3600 * 24; let res = await db.collection(dbNamePayOrders) .where({ status: 0, _add_time: _.lt(time) }) .remove(); // 数据库操作结束----------------------------------------------------------- return res ? res.updated : 0; }; module.exports = dao;