| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /**
- * 数据库操作
- */
- 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();
|