xiangpei
2024-03-08 c50e176c4a6b9331d2d1c0520bafb18f54f0dee6
src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java
@@ -5,16 +5,23 @@
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.Department;
import com.mindskip.xzs.domain.User;
import com.mindskip.xzs.domain.UserDepartment;
import com.mindskip.xzs.domain.vo.BaseSelect;
import com.mindskip.xzs.domain.vo.DepartmentVO;
import com.mindskip.xzs.domain.vo.UpdateDeptAdminVO;
import com.mindskip.xzs.domain.vo.UserVO;
import com.mindskip.xzs.repository.UserDepartmentMapper;
import com.mindskip.xzs.service.DepartmentService;
import com.mindskip.xzs.service.UserService;
import com.mindskip.xzs.utility.PageInfoHelper;
import com.mindskip.xzs.viewmodel.admin.department.DepartmentResponseVM;
import com.mindskip.xzs.viewmodel.admin.user.UserPageRequestVM;
import com.mindskip.xzs.viewmodel.admin.user.UserResponseVM;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@RestController("AdminDepartmentController")
@@ -23,10 +30,32 @@
    private final DepartmentService departmentService;
    private final UserService userService;
    private final UserDepartmentMapper userDepartmentMapper;
    /**
     * 获取部门下用户列表(下拉)
     * @param deptId
     * @return
     */
    @GetMapping("/{id}/user-list")
    public RestResponse<List<BaseSelect>> getDeptUserList(@PathVariable("id") Integer deptId) {
        List<BaseSelect> data = departmentService.getDeptUserList(deptId);
        return RestResponse.ok(data);
    }
    @PostMapping("/update-admin")
    public RestResponse updateAdmin(@RequestBody UpdateDeptAdminVO form) {
        departmentService.updateAdmin(form);
        return RestResponse.ok();
    }
    @Autowired
    public DepartmentController(DepartmentService departmentService) {
    public DepartmentController(DepartmentService departmentService, UserService userService, UserDepartmentMapper userDepartmentMapper) {
        this.departmentService = departmentService;
        this.userService = userService;
        this.userDepartmentMapper = userDepartmentMapper;
    }
    @RequestMapping(value = "/list", method = RequestMethod.POST)
@@ -38,12 +67,8 @@
    @RequestMapping(value = "/page/list", method = RequestMethod.POST)
    public RestResponse<PageInfo<DepartmentResponseVM>> pageList(@RequestBody DepartmentResponseVM model) {
        PageInfo<Department> pageInfo = departmentService.gets(model);
        PageInfo<DepartmentResponseVM> page = PageInfoHelper.copyMap(pageInfo, q -> {
            DepartmentResponseVM vm = modelMapper.map(q,DepartmentResponseVM.class);
            return vm;
        });
        return RestResponse.ok(page);
        PageInfo<DepartmentResponseVM> pageInfo = departmentService.gets(model);
        return RestResponse.ok(pageInfo);
    }
    @RequestMapping(value = "/add", method = RequestMethod.POST)
@@ -60,4 +85,26 @@
    public RestResponse update(@PathVariable Integer id) {
        return RestResponse.ok(departmentService.getById(id));
    }
    @RequestMapping(value = "/getUserByDepartment/{id}", method = RequestMethod.POST)
    public RestResponse<List<User>> getUserByDepartment(@PathVariable Integer id){
        return RestResponse.ok(userService.getUserByLevel(id));
    }
    @RequestMapping(value = "/getDepartmentUser", method = RequestMethod.POST)
    public RestResponse<List<DepartmentVO>> getUserDepartment(){
        List<DepartmentVO> res = departmentService.gets()
                .stream().map(e->{
                    DepartmentVO departmentVO = new DepartmentVO();
                    List<UserDepartment> userDepartments = userDepartmentMapper.selectByDepartmentId(e.getId());
                    List<User> list = new ArrayList<>();
                    for (UserDepartment userDepartment : userDepartments) {
                        list.add(userService.getUserById(userDepartment.getUserId()));
                    }
                    departmentVO.setUserList(list);
                    departmentVO.setDepartment(e);
                    return departmentVO;
                }).collect(Collectors.toList());
        return RestResponse.ok(res);
    }
}