| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431 | 
							- /**
 
-  * 后台用户管理控制器
 
-  *
 
-  * @author CaiAoLin
 
-  * @date 2017/6/2
 
-  * @version
 
-  */
 
- import BaseController from "../../common/base/base_controller";
 
- import ManagerModel from "../models/manager_model";
 
- import PermissionModel from "../models/permission_model";
 
- import PermissionGroupModel from "../models/permission_group_model";
 
- import Config from "../../../config/config";
 
- let config = require("../../../config/config.js");
 
- import {default as category, List as categoryList} from "../../common/const/category_const.js";
 
- class ManagerController extends BaseController {
 
-     /**
 
-      *  账号管理(管理员列表)
 
-      *
 
-      * @param {object} request
 
-      * @param {object} response
 
-      * @return {void}
 
-      */
 
-     async index(request, response) {
 
-         let pageData = {};
 
-         let managerList = [];
 
-         let permissionGroupList = [];
 
-         let filter = request.query;
 
-         try {
 
-             // 查找管理员用户列表
 
-             let managerModel = new ManagerModel();
 
-             let total = await managerModel.count({super_admin: 0});
 
-             // 分页数据
 
-             let page = request.query.page === undefined ? 1 : request.query.page;
 
-             pageData = {
 
-                 current: page,
 
-                 total: parseInt(total / Config.pageSize),
 
-                 queryData: response.locals.urlQuery
 
-             };
 
-             // 获取管理员列表
 
-             let condition = managerModel.getFilterCondition(request);
 
-             condition.super_admin = 0;
 
-             managerList = JSON.parse(JSON.stringify(await managerModel.getList(condition, page)));
 
-             let permissionGroupModel = new PermissionGroupModel();
 
-             let permissionModel = new PermissionModel();
 
-             // 添加特定数据到filter里
 
-             if (request.query.office !== undefined && request.query.office !== '') {
 
-                 let officeInfo = await categoryList.find(function (item) {
 
-                     return item.id === parseInt(request.query.office);
 
-                 });
 
-                 filter.officeName = officeInfo.name
 
-             }
 
-             if (request.query.permission !== undefined && request.query.permission !== '0') {
 
-                 let permissionGroupInfo = await permissionGroupModel.findDataByCondition({_id: request.query.permission});
 
-                 filter.permissionGroupName = permissionGroupInfo.name;
 
-             }
 
-             // 获取权限组列表
 
-             permissionGroupList = JSON.parse(JSON.stringify(await permissionGroupModel.getList()));
 
-             if (permissionGroupList.length > 0) {
 
-                 for (let tmp in permissionGroupList) {
 
-                     let topPermissionList = [];
 
-                     if (permissionGroupList[tmp].permission !== undefined && permissionGroupList[tmp].permission !== '') {
 
-                         let groupPermissionList = JSON.parse(permissionGroupList[tmp].permission);
 
-                         for (let p in groupPermissionList) {
 
-                             if (p === 'top') {
 
-                                 for (let t of groupPermissionList[p]) {
 
-                                     let topInfo = await permissionModel.findDataByCondition({_id:t});
 
-                                     topPermissionList.push(topInfo.name);
 
-                                 }
 
-                                 break;
 
-                             }
 
-                         }
 
-                     }
 
-                     permissionGroupList[tmp].top_name = topPermissionList.join(',');
 
-                 }
 
-             }
 
-             // 整理数据
 
-             if (managerList.length > 0) {
 
-                 for (let tmp in managerList) {
 
-                     let cate = await categoryList.find(function (item) {
 
-                         return item.id === managerList[tmp].office;
 
-                     });
 
-                     managerList[tmp].officeName = cate !== undefined ? cate.name : '';
 
-                     let groupInfo = managerList[tmp].permission !== '' ? await permissionGroupModel.findDataByCondition({_id:managerList[tmp].permission}) : '';
 
-                     managerList[tmp].permissionName = groupInfo !== undefined && groupInfo !== '' ? groupInfo.name : '';
 
-                 }
 
-             }
 
-         } catch (error) {
 
-             console.log(error);
 
-         }
 
-         let permissionGroupList2 = JSON.stringify(permissionGroupList);
 
-         let renderData = {
 
-             managerList: managerList,
 
-             pages: pageData,
 
-             categoryList: categoryList,
 
-             permissionGroupList: permissionGroupList,
 
-             permissionGroupList2: permissionGroupList2,
 
-             layout: 'users/views/layout/layout',
 
-             title : config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:'养护云版',
 
-             filter: filter,
 
-             LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
 
-         };
 
-         response.render('users/views/manager/index', renderData);
 
-     }
 
-     /**
 
-      * 权限组分配(管理员页面)
 
-      * @param request
 
-      * @param response
 
-      * @return {Promise.<void>}
 
-      */
 
-     async groupSave(request, response) {
 
-         let id = request.body.manager_id;
 
-         let permission = request.body.permission !== '0' ? request.body.permission : '';
 
-         let managerModel = new ManagerModel();
 
-         let result = await managerModel.updateById(id, {permission: permission});
 
-         if (!result) {
 
-             throw '修改失败';
 
-         }
 
-         response.redirect(request.headers.referer);
 
-     }
 
-     /**
 
-      * 保存管理员
 
-      *
 
-      * @param {object} request
 
-      * @param {object} response
 
-      * @return {void}
 
-      */
 
-     // async modify(request, response) {
 
-     //     let permission = request.body.permission;
 
-     //     let canLogin = request.body.login;
 
-     //     let id = request.params.id;
 
-     //
 
-     //     let responseData = {
 
-     //         err: 0,
 
-     //         msg: ""
 
-     //     };
 
-     //     try {
 
-     //         if (id === '' || id === undefined) {
 
-     //             throw 'id有误';
 
-     //         }
 
-     //         let managerModel = new ManagerModel();
 
-     //         let result = await managerModel.updateById(id, {permission: permission, can_login: canLogin});
 
-     //
 
-     //         if (!result) {
 
-     //             throw '修改失败';
 
-     //         }
 
-     //
 
-     //     } catch (error) {
 
-     //         responseData.err = 1;
 
-     //         responseData.msg = error;
 
-     //     }
 
-     //
 
-     //     response.json(responseData);
 
-     // }
 
-     /**
 
-      * 删除管理员
 
-      *
 
-      * @param {object} request
 
-      * @param {object} response
 
-      * @return {void}
 
-      */
 
-     async delete(request, response) {
 
-         let id = request.params.id;
 
-         let managerModel = new ManagerModel();
 
-         let result = await managerModel.deleteById(id, true);
 
-         // 删除成功
 
-         if (result) {
 
-         }
 
-         response.redirect(request.headers.referer);
 
-     }
 
-     /**
 
-      * 操作管理员(启用和停用)
 
-      *
 
-      * @param {object} request
 
-      * @param {object} response
 
-      * @return {void}
 
-      */
 
-     async modify(request, response) {
 
-         let canLogin = request.params.login;
 
-         let id = request.params.id;
 
-         let managerModel = new ManagerModel();
 
-         let result = await managerModel.updateById(id, {can_login: canLogin});
 
-         // 修改成功
 
-         if (!result) {
 
-             throw '修改失败';
 
-         }
 
-         response.redirect(request.headers.referer);
 
-     }
 
-     /**
 
-      * 超级管理员修改
 
-      *
 
-      * @param {object} request
 
-      * @param {object} response
 
-      * @return {void}
 
-      */
 
-     async admin(request, response) {
 
-         let adminData = {};
 
-         try {
 
-             // 查找对应超级管理员数据
 
-             let managerModel = new ManagerModel();
 
-             adminData = await managerModel.findDataByCondition({username: 'admin'});
 
-         } catch (error) {
 
-             console.log(error);
 
-         }
 
-         let renderData = {
 
-             adminData: adminData,
 
-             title : config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:'养护云版',
 
-             layout: 'users/views/layout/layout',
 
-             LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
 
-         };
 
-         response.render('users/views/manager/save', renderData);
 
-     }
 
-     /**
 
-      * 超级管理员修改提交
 
-      *
 
-      * @param {object} request
 
-      * @param {object} response
 
-      * @return
 
-      */
 
-     async adminSubmit(request, response) {
 
-         let newPassword = request.body.newPassword.toString();
 
-         let password = request.body.password.toString();
 
-         let managerModel = new ManagerModel();
 
-         let responseData = {
 
-             err: 0,
 
-             msg: ''
 
-         };
 
-         try {
 
-             if (!newPassword || !password) {
 
-                 throw '内容有误';
 
-             }
 
-             // 更改密码操作
 
-             managerModel.setScene('changPassword');
 
-             let result = await managerModel.changePassword('admin', password, newPassword);
 
-             if (!result) {
 
-                 throw '更新错误';
 
-             }
 
-         } catch (error) {
 
-             console.log(error);
 
-             responseData.err = 40002;
 
-             responseData.msg = error;
 
-         }
 
-         response.json(responseData);
 
-     }
 
-     async create(request, response) {
 
-         let managerModel = new ManagerModel();
 
-         let result = managerModel.changePassword('admin', 'admin123', 'admin123');
 
-         // let result = await managerModel.createManager();
 
-         response.end('success');
 
-     }
 
-     /**
 
-      * 权限组页面
 
-      * @param request
 
-      * @param response
 
-      * @return {Promise.<void>}
 
-      */
 
-     async authority(request, response) {
 
-         let pageData = {};
 
-         let groupList = [];
 
-         let topPermissionList = [];
 
-         let permissionList = [];
 
-         try {
 
-             // 获取最高级权限列表
 
-             let permissionModel = new PermissionModel();
 
-             topPermissionList = await permissionModel.getList({pid:0});
 
-             // 获取所有权限列表,按排序
 
-             permissionList = topPermissionList;
 
-             for (let index in permissionList) {
 
-                 let count = await permissionModel.count({pid:permissionList[index].ID});
 
-                 if (count > 0) {
 
-                     permissionList[index].secondPermissionList = await permissionModel.getList({pid: permissionList[index].ID});
 
-                 } else {
 
-                     permissionList[index].secondPermissionList = [];
 
-                 }
 
-                 permissionList[index].count = count;
 
-             }
 
-             // 获取权限组列表
 
-             let permissionGroupModel = new PermissionGroupModel();
 
-             let total = await permissionGroupModel.count();
 
-             // 分页数据
 
-             let page = request.query.page === undefined ? 1 : request.query.page;
 
-             pageData = {
 
-                 current: page,
 
-                 total: parseInt(total / Config.pageSize),
 
-                 queryData: response.locals.urlQuery
 
-             };
 
-             // 获取管理员列表
 
-             groupList = JSON.parse(JSON.stringify(await permissionGroupModel.getList(null, page)));
 
-             // 整理数据
 
-             if (groupList.length > 0) {
 
-                 let managerModel = new ManagerModel();
 
-                 for (let tmp in groupList) {
 
-                     let managerCount = await managerModel.count({permission: groupList[tmp]._id});
 
-                     groupList[tmp].manager_count = managerCount;
 
-                     let groupPermissionList = JSON.parse(groupList[tmp].permission);
 
-                     for (let p in groupPermissionList) {
 
-                         if (p === 'top') {
 
-                             let topPermissionList = [];
 
-                             for (let t of groupPermissionList[p]) {
 
-                                 let topInfo = await permissionModel.findDataByCondition({_id:t});
 
-                                 topPermissionList.push(topInfo.name);
 
-                             }
 
-                             groupList[tmp].top_name = topPermissionList.join(',');
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-         } catch (error) {
 
-         }
 
-         let renderData = {
 
-             groupList: groupList,
 
-             topPermissionList: topPermissionList,
 
-             permissionList: permissionList,
 
-             pages: pageData,
 
-             title : config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:'养护云版',
 
-             layout: 'users/views/layout/layout',
 
-             LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
 
-         };
 
-         response.render('users/views/manager/authority', renderData);
 
-     }
 
-     /**
 
-      * 权限组添加
 
-      * @param request
 
-      * @param response
 
-      * @return {Promise.<void>}
 
-      */
 
-     async authorityAdd(request, response) {
 
-         let permissionGroupModel = new PermissionGroupModel();
 
-         let result = await permissionGroupModel.createPermissionGroup(request.body);
 
-         if (!result) {
 
-             throw '添加失败';
 
-         }
 
-         response.redirect(request.headers.referer);
 
-     }
 
-     /**
 
-      * 权限组修改保存
 
-      * @param request
 
-      * @param response
 
-      * @return {Promise.<void>}
 
-      */
 
-     async authoritySave(request, response) {
 
-         let permissionGroupModel = new PermissionGroupModel();
 
-         let result = await permissionGroupModel.savePermissionGroup(request.body);
 
-         if (!result) {
 
-             throw '修改失败';
 
-         }
 
-         response.redirect(request.headers.referer);
 
-     }
 
-     /**
 
-      * 权限组删除
 
-      * @param request
 
-      * @param response
 
-      * @return {Promise.<void>}
 
-      */
 
-     async authorityDelete(request, response) {
 
-         let id = request.body.id;
 
-         try {
 
-             let permissionGroupModel = new PermissionGroupModel();
 
-             await permissionGroupModel.deleteById(id, true);
 
-             // 并清空用户所在权限组
 
-             let managerModel = new ManagerModel();
 
-             await managerModel.updateByPermission(id);
 
-         } catch(err) {
 
-             throw err;
 
-         }
 
-         response.redirect(request.headers.referer);
 
-     }
 
-     /**
 
-      * 权限添加接口
 
-      * @param request
 
-      * @param response
 
-      * @return {Promise.<void>}
 
-      */
 
-     async permissionAdd(request, response) {
 
-         let permissionModel = new PermissionModel();
 
-         let responseData = {
 
-             err: 0,
 
-             msg: ''
 
-         };
 
-         try {
 
-             permissionModel.setScene('insert');
 
-             let result = await permissionModel.createPermission(request.body);
 
-             if (!result) {
 
-                 throw '添加失败';
 
-             }
 
-         } catch (error) {
 
-             console.log(error);
 
-             responseData.err = 1;
 
-             responseData.msg = error;
 
-         }
 
-         response.json(responseData);
 
-     }
 
- }
 
- export default ManagerController;
 
 
  |