cshenfu
2024-05-21 09d8c671d5e6e6045677bfb5218a5fb78c26aa0f
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
'use strict';
var vk; // 全局vk实例
// 涉及的表名
const dbName = {
    role: "uce-vip-role", // 测试表
};
 
var db = uniCloud.database(); // 全局数据库引用
var _ = db.command; // 数据库操作符
var $ = _.aggregate; // 聚合查询操作符
/**
 * 权限注意:访问以下链接查看
 * 文档地址:https://vkdoc.fsq.pub/client/uniCloud/cloudfunctions/cloudObject.html#内置权限
 */
var cloudObject = {
    isCloudObject: true, // 标记为云对象模式
    /**
     * 请求前处理,主要用于调用方法之前进行预处理,一般用于拦截器、统一的身份验证、参数校验、定义全局对象等。
     * 文档地址:https://vkdoc.fsq.pub/client/uniCloud/cloudfunctions/cloudObject.html#before-预处理
     */
    _before: async function() {
        vk = this.vk; // 将vk定义为全局对象
        // let { customUtil, uniID, config, pubFun } = this.getUtil(); // 获取工具包
    },
    /**
     * 请求后处理,主要用于处理本次调用方法的返回结果或者抛出的错误
     * 文档地址:https://vkdoc.fsq.pub/client/uniCloud/cloudfunctions/cloudObject.html#after-后处理
     */
    _after: async function(options) {
        let { err, res } = options;
        if (err) {
            return; // 如果方法抛出错误,直接return;不处理
        }
        return res;
    },
    /**
     * 模板函数
     * @url admin/vip_roles/sys/roles.getInfo 前端调用的url参数地址
     */
    getInfo: async function(data) {
        let { uid } = this.getClientInfo(); // 获取客户端信息
        let userInfo = await this.getUserInfo(); // 获取当前登录的用户信息
        let res = { code: 0, msg: '' };
        // 业务逻辑开始-----------------------------------------------------------
        console.log("请求参数", data);
        res.userInfo = userInfo; // 返回前端当前登录的用户信息
 
        // 业务逻辑结束-----------------------------------------------------------
        return res;
    },
    /**
     * 模板函数
     * @url admin/vip_roles/sys/roles.getList 前端调用的url参数地址
     */
    getList: async function(data) {
        let { uid, filterResponse, originalParam } = this.getClientInfo(); // 获取客户端信息
        let res = { code: 0, msg: '' };
        // 业务逻辑开始-----------------------------------------------------------
        res = await vk.baseDao.getTableData({
            dbName: dbName.role,
            data,
            sortArr: [
                { "name": "weight", "type": "desc" }
            ]
        });
 
 
        // 业务逻辑结束-----------------------------------------------------------
        return res;
    },
 
    /**
     * 模板函数
     * @url admin/vip_roles/sys/roles.add 前端调用的url参数地址
     */
    add: async function(data) {
        let { uid, filterResponse, originalParam } = this.getClientInfo(); // 获取客户端信息
        let res = { code: 0, msg: '' };
        // 业务逻辑开始-----------------------------------------------------------
        let {
            name,
            role_type,
            charge,
            expire_days,
            weight,
            description,
            status
        } = data;
 
        res.id = await vk.baseDao.add({
            dbName: dbName.role,
            dataJson: {
                name,
                role_type,
                charge,
                expire_days,
                weight,
                description,
                status
            }
        });
        // 业务逻辑结束-----------------------------------------------------------
        return res;
    },
 
    /**
     * 模板函数
     * @url admin/vip_roles/sys/roles.update 前端调用的url参数地址
     */
    update: async function(data) {
        let { uid, filterResponse, originalParam } = this.getClientInfo(); // 获取客户端信息
        let res = { code: 0, msg: '' };
        // 业务逻辑开始-----------------------------------------------------------
        let {
            _id,
            name,
            role_type,
            charge,
            expire_days,
            weight,
            description,
            status
        } = data;
 
        await vk.baseDao.updateById({
            dbName: dbName.role,
            id: _id,
            dataJson: {
                name,
                role_type,
                charge,
                expire_days,
                weight,
                description,
                status
            }
        });
        // 业务逻辑结束-----------------------------------------------------------
        return res;
    },
 
    /**
     * 模板函数
     * @url admin/vip_roles/sys/roles.delete 前端调用的url参数地址
     */
    delete: async function(data) {
        let { uid, filterResponse, originalParam } = this.getClientInfo(); // 获取客户端信息
        let res = { code: 0, msg: '' };
        // 业务逻辑开始-----------------------------------------------------------
        let { _id } = data;
        if (vk.pubfn.isNull(_id)) {
            return { code: -1, msg: 'id不能为空' };
        }
 
        await vk.baseDao.deleteById({
            dbName: dbName.role,
            id: _id
        });
        // 业务逻辑结束-----------------------------------------------------------
        return res;
    },
};
 
module.exports = cloudObject;