From 8bdc5fcc81ae1f17e26848202e4bb79076f22e1e Mon Sep 17 00:00:00 2001 From: FatttSnake Date: Sun, 4 Jun 2023 00:48:24 +0800 Subject: [PATCH] Added department in StaffManagement --- .../controller/DepartmentController.java | 16 +++++++++ .../service/impl/StaffServiceImpl.java | 3 ++ ui/src/pages/info/StaffManagement.vue | 34 ++++++++++++++++++- 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/DepartmentController.java b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/DepartmentController.java index 49ab815..850ca78 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/DepartmentController.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/DepartmentController.java @@ -1,10 +1,12 @@ package com.cfive.pinnacle.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.cfive.pinnacle.entity.Department; import com.cfive.pinnacle.entity.common.ResponseCode; import com.cfive.pinnacle.entity.common.ResponseResult; import com.cfive.pinnacle.service.IDepartmentService; +import com.cfive.pinnacle.utils.WebUtil; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -47,6 +49,20 @@ public class DepartmentController { return ResponseResult.databaseSelectSuccess(departmentService.getAllDepartment(currentPage, pageSize, searchType, searchInput)); } + @GetMapping("list") + @PreAuthorize("hasAnyAuthority('staff:manege:modify', 'staff:admin:modify')") + public ResponseResult> getDepartmentList() { + List departmentList; + if (WebUtil.hasAuthority("staff:admin:modify")) { + departmentList = departmentService.list(); + } else { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Department::getId, WebUtil.getLoginUser().getUser().getDepartmentId()); + departmentList = departmentService.list(wrapper); + } + return ResponseResult.databaseSelectSuccess(departmentList); + } + @PostMapping @PreAuthorize("hasAuthority('department:admin:add')") public ResponseResult addDepartment(@RequestBody Department department) { diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/StaffServiceImpl.java b/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/StaffServiceImpl.java index 6dcd6d2..35614e2 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/StaffServiceImpl.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/StaffServiceImpl.java @@ -53,6 +53,7 @@ public class StaffServiceImpl extends ServiceImpl implements @Override public boolean modifyStaff(User user) { + Long departmentId = user.getDepartmentId(); Staff newStaff = user.getStaff(); user = userMapper.getOneById(user.getId()); Staff oldStaff = user.getStaff(); @@ -68,6 +69,8 @@ public class StaffServiceImpl extends ServiceImpl implements newStaff.setId(oldStaff.getId()); staffMapper.updateById(newStaff); } + user.setDepartmentId(departmentId); + userMapper.updateById(user); return true; } } diff --git a/ui/src/pages/info/StaffManagement.vue b/ui/src/pages/info/StaffManagement.vue index 3dfefbc..9b7d641 100644 --- a/ui/src/pages/info/StaffManagement.vue +++ b/ui/src/pages/info/StaffManagement.vue @@ -120,6 +120,16 @@ + + + + + @@ -202,8 +212,10 @@ export default { } ] }, + departments: [], userForm: { inputUsername: '', + selectedDepartment: null, inputFirstName: '', inputLastName: '', selectedGender: 0, @@ -259,6 +271,7 @@ export default { handleEdit(row) { this.editUserId = row.id this.userForm.inputUsername = row.username + this.userForm.selectedDepartment = row.departmentId this.userForm.inputFirstName = row.staff?.firstName this.userForm.inputLastName = row.staff?.lastName this.userForm.selectedGender = row.staff?.gender || 0 @@ -266,8 +279,9 @@ export default { this.userForm.inputEmail = row.staff?.email this.userForm.inputTel = row.staff?.tel this.userForm.inputAddress = row.staff?.address - this.dialogLoading = false + this.dialogLoading = true this.dialogVisible = true + this.getDepartments() }, async handleSubmit() { await this.$refs.formRef.validate((valid) => { @@ -275,6 +289,7 @@ export default { this.dialogLoading = true const userObject = { id: this.editUserId, + departmentId: this.userForm.selectedDepartment, staff: { firstName: this.userForm.inputFirstName, lastName: this.userForm.inputLastName, @@ -305,6 +320,23 @@ export default { } }) }, + getDepartments() { + request.get('/department/list').then((res) => { + const response = res.data + if (response.code === DATABASE_SELECT_OK) { + this.departments = response.data + this.dialogLoading = false + if (!_.find(this.departments, { id: this.userForm.selectedDepartment })) { + this.userForm.selectedDepartment = null + } + } else { + ElMessage.error({ + dangerouslyUseHTMLString: true, + message: '查询出错: ' + response.msg + }) + } + }) + }, handleCancel() { this.dialogVisible = false },