'use strict'; const Controller = require('../extend/baseController'); class SysDeptController extends Controller { tag() { return this.ctx.service.sysDeptService; } async addDeptAndPerson() { const { ctx } = this; const query = ctx.request.body; delete query._id; const result = await this.tag() .addDeptAndPerson(query); if (result) { ctx.error(result); } else { ctx.success(); } } async updateDeptAndPerson() { const { ctx, service } = this; const query = ctx.request.body; const { id } = query; delete query.id; const result = await service.sysDeptService.updateDeptAndPerson(id, query); if (result) { ctx.error(result); } else { ctx.success(); } } async deleteWithSub() { const { ctx } = this; const query = ctx.query; const { id } = query; const result = await this.tag() .deleteWithSub(id); if (result) { ctx.error(result); } else { ctx.success(); } } async listSortAsc() { const { ctx } = this; ctx.setOrder(); const result = await this.tag() .list(ctx.query); ctx.success(result); } async listSortAscWithUser() { const { ctx } = this; const query = ctx.query; const user = ctx.user; ctx.setOrder(); if (user.role._id != this.app.config.defaultAdminRoleId) { if (user[ 'dept' + query.level ]) { ctx.query._id = this.app.mongoose.Types.ObjectId(user[ 'dept' + query.level ]._id); } } const result = await this.tag() .list(query); ctx.success(result); } async listForPageSortWithUser() { const { ctx, service } = this; const query = ctx.query; const user = ctx.user; query.deptId = user.dept._id; query.level = user.dept.level; query.roleId = user.role._id; ctx.setOrder(); const result = await service.sysDeptService.listForPageSortWithUser(query); ctx.success(result); } async orderChange() { const { ctx, service } = this; const query = ctx.query; const { id, type } = query; const result = await service.sysDeptService.orderChange(id, type); if (result) { ctx.error(result); } else { ctx.success(); } } async findLink() { const { ctx, service } = this; const query = ctx.query; const result = await service.sysDeptService.findLink(query); ctx.logic(result); } } module.exports = SysDeptController;