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
const formRules = require("../util/formRules.js");
module.exports = {
  /**
   * 新增
   * @url admin/system/menu/sys/add 前端调用的url参数地址
   * data 请求参数 说明
     * @param {String} menu_id                     菜单Id,唯一标识
     * @param {String} name                             菜单名称
     * @param {String} comment                     备注
     * @param {String} url                             页面路径
     * @param {String} icon                             菜单图标
     * @param {Number} sort                             排序(越大越在前面)
     * @param {String} parent_id                 父级id
     * @param {Boolean} enable                     是否启用
   * res 返回参数说明
   * @param {Number} code 错误码,0表示成功
   * @param {String} msg 详细信息
   */
  main: async (event) => {
        let { data = {}, userInfo, util, filterResponse, originalParam } = event;
        let { customUtil, uniID, config, pubFun, vk , db, _ } = util;
        let { uid } = data;
        let res = { code : 0, msg : '' };
    // 业务逻辑开始-----------------------------------------------------------
        let {
            menu_id,
            name,
            comment,
            url,
            icon,
            sort = 0,
            parent_id,
            enable = true,
            hidden_menu
        } = data;
 
        // 参数合法校验开始-----------------------------------------------------------
        let formRulesRes = await formRules.add(event);
        if(formRulesRes.code !== 0){
            return formRulesRes;
        }
        // 参数合法校验结束-----------------------------------------------------------
        let dbName = "opendb-admin-menus";
        // 检测menu_id是否存在
        let num = await vk.baseDao.count({
            dbName,
            whereJson:{
                menu_id
            }
        });
        if(num > 0){
            return { code : -1, msg : `标识【${menu_id}】不能重复!` };
        }
        let dataJson = {
            menu_id,
            name,
            comment,
            url,
            icon,
            sort,
            parent_id,
            enable,
            hidden_menu
        };
        // 检测parent_id是否不存在
        if(vk.pubfn.isNotNull(parent_id)){
            let num = await vk.baseDao.count({
                dbName,
                whereJson:{
                    menu_id : parent_id
                }
            });
            if(num <= 0){
                return { code : -1, msg : `父标识【${parent_id}】不存在!` };
            }
        }else{
            delete dataJson.parent_id;
        }
        // 执行数据库API请求
        res.id = await vk.baseDao.add({
            dbName,
            dataJson
        });
    return res;
  }
 
}