Initial commit
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
/**
|
||||
* 数据库操作
|
||||
*/
|
||||
const BaseMod = require('../../base');
|
||||
const dbName = require("./config");
|
||||
|
||||
class Dao extends BaseMod {
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
this.tablePrefix = false; // 不使用表前缀
|
||||
}
|
||||
|
||||
async group(data) {
|
||||
let {
|
||||
start_time,
|
||||
end_time,
|
||||
status: status_str
|
||||
} = data;
|
||||
let status;
|
||||
if (status_str === "已下单") {
|
||||
|
||||
} else if (status_str === "已付款") {
|
||||
status = {
|
||||
$gt: 0
|
||||
}
|
||||
} else if (status_str === "已退款") {
|
||||
status = {
|
||||
$in: [2, 3]
|
||||
}
|
||||
}
|
||||
const dbRes = await this.aggregate(dbName.uniPayOrders, {
|
||||
match: {
|
||||
create_date: {
|
||||
$gte: start_time,
|
||||
$lte: end_time
|
||||
},
|
||||
status
|
||||
},
|
||||
group: {
|
||||
_id: {
|
||||
appid: '$appid',
|
||||
version: '$stat_data.app_version',
|
||||
platform: '$stat_data.platform',
|
||||
channel: '$stat_data.channel',
|
||||
},
|
||||
status: {
|
||||
$first: '$status'
|
||||
},
|
||||
// 支付金额
|
||||
total_fee: {
|
||||
$sum: '$total_fee'
|
||||
},
|
||||
// 退款金额
|
||||
refund_fee: {
|
||||
$sum: '$refund_fee'
|
||||
},
|
||||
// 支付笔数
|
||||
order_count: {
|
||||
$sum: 1
|
||||
},
|
||||
// 支付人数(去重复)
|
||||
user_count: {
|
||||
$addToSet: '$user_id'
|
||||
},
|
||||
// 支付设备数(去重复)
|
||||
device_count: {
|
||||
$addToSet: '$device_id'
|
||||
},
|
||||
|
||||
create_date: {
|
||||
$min: '$create_date'
|
||||
}
|
||||
},
|
||||
addFields: {
|
||||
user_count: {
|
||||
$size: '$user_count'
|
||||
},
|
||||
device_count: {
|
||||
$size: '$device_count'
|
||||
}
|
||||
},
|
||||
// 按创建时间排序
|
||||
sort: {
|
||||
create_date: 1
|
||||
},
|
||||
getAll: true
|
||||
});
|
||||
|
||||
let list = dbRes.data;
|
||||
list.map((item) => {
|
||||
item.status_str = status_str;
|
||||
});
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module.exports = new Dao();
|
||||
Reference in New Issue
Block a user