cshenfu
2024-06-27 58aa6e282bb343503be3cb198948328ea3ed7b79
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
'use strict';
module.exports = {
    /**
     * 获取订单列表
     * @url admin/system/user/sys/getChartsList2 前端调用的url参数地址
     * data 请求参数
     * @param {String} params1  参数1
     */
    main: async (event) => {
        let {
            data = {}, userInfo, util, filterResponse, originalParam
        } = event;
        let {
            customUtil,
            uniID,
            config,
            pubFun,
            vk,
            db,
            _
        } = util;
        let {
            uid,
            type,
            times,
            time,
            sale_id
        } = data;
        let res = {
            code: 0,
            msg: "",
            data: {}
        };
        // 业务逻辑开始-----------------------------------------------------------
        let nowDate = new Date()
        console.log(nowDate)
        const timeObj = vk.pubfn.getCommonTime(new Date())
        let startTimestamp = 0
        let step = 0
        let steps = []
 
        switch (type) {
            case 'custom':
                startTimestamp = time[0]
                nowDate = new Date(time[1])
                step = 24 * 60 * 60 * 1000
                break
            case 'year':
                startTimestamp = timeObj.yearStart
                steps = timeObj.months
                break
            case 'month':
                startTimestamp = timeObj.monthStart
                step = 24 * 60 * 60 * 1000
                break
            case 'week':
                startTimestamp = timeObj.weekStart
                step = 24 * 60 * 60 * 1000
                break
        }
 
        const map1 = {
            register_date: _.gt(startTimestamp)
        }
        
        const obj = await db.collection('uni-id-users').where(map1).field().get()
        const orderList = obj.data
        let arr1 = []
        let arr2 = []
        if (type != 'year') {
            for (let i = startTimestamp; i <= nowDate; i += step) {
                let payArr = orderList.filter(item => {
                    return item.register_date >= i && item.register_date < i + step
                })
                arr1.push({
                    _id: vk.pubfn.timeFormat(i, "MM-dd"),
                    count: payArr.length || 0
                })
            }
        }
        if (type == 'year') {
            let end = nowDate.getMonth() + 2
            for (let i = 1; i < end; i++) {
                let payArr = orderList.filter(item => {
                    return item.register_date >= steps[i].monthStart && item.register_date < steps[i].monthEnd
                })
                arr1.push({
                    _id: vk.pubfn.timeFormat(steps[i].monthStart, "yyyy-MM"),
                    count: payArr.length || 0
                })
            }
        }
 
 
        res.data.arr1 = arr1
        res.data.arr2 = arr2
        // 业务逻辑结束-----------------------------------------------------------
        return res;
    }
}