Initial commit
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
/**
|
||||
* 数据库操作
|
||||
*/
|
||||
const dbName = require("./config");
|
||||
|
||||
let db = uniCloud.database();
|
||||
let _ = db.command;
|
||||
let $ = _.aggregate;
|
||||
|
||||
class Dao {
|
||||
async count(whereJson) {
|
||||
let dbRes = await db.collection(dbName.uniIdUsers).where(whereJson).count()
|
||||
return dbRes && dbRes.total ? dbRes.total : 0;
|
||||
}
|
||||
|
||||
async countNewUserOrder(obj) {
|
||||
let {
|
||||
whereJson,
|
||||
status
|
||||
} = obj;
|
||||
let dbRes = await db.collection(dbName.uniIdUsers).aggregate()
|
||||
.match(whereJson)
|
||||
.lookup({
|
||||
from: dbName.uniPayOrders,
|
||||
let: {
|
||||
user_id: '$_id',
|
||||
},
|
||||
pipeline: $.pipeline()
|
||||
.match(_.expr($.and([
|
||||
$.eq(['$user_id', '$$user_id']),
|
||||
$.in(['$status', status])
|
||||
])))
|
||||
.limit(1)
|
||||
.done(),
|
||||
as: 'order',
|
||||
})
|
||||
.unwind({
|
||||
path: '$order',
|
||||
})
|
||||
.group({
|
||||
_id: null,
|
||||
count: {
|
||||
$addToSet: '$_id'
|
||||
},
|
||||
})
|
||||
.addFields({
|
||||
count: {
|
||||
$size: '$count'
|
||||
}
|
||||
})
|
||||
.end()
|
||||
try {
|
||||
return dbRes.data[0].count;
|
||||
} catch (err) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module.exports = new Dao();
|
||||
Reference in New Issue
Block a user