package com.mindskip.xzs.controller.admin; import com.github.pagehelper.PageInfo; import com.mindskip.xzs.base.BaseApiController; 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 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") @RequestMapping("/api/admin/department") public class DepartmentController extends BaseApiController { private final DepartmentService departmentService; private final UserService userService; private final UserDepartmentMapper userDepartmentMapper; /** * 获取部门下用户列表(下拉) * @param deptId * @return */ @GetMapping("/{id}/user-list") public RestResponse> getDeptUserList(@PathVariable("id") Integer deptId) { List 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, UserService userService, UserDepartmentMapper userDepartmentMapper) { this.departmentService = departmentService; this.userService = userService; this.userDepartmentMapper = userDepartmentMapper; } @RequestMapping(value = "/list", method = RequestMethod.POST) public RestResponse> getAll(){ List res = departmentService.gets(); return RestResponse.ok(res); } @RequestMapping(value = "/page/list", method = RequestMethod.POST) public RestResponse> pageList(@RequestBody DepartmentResponseVM model) { PageInfo pageInfo = departmentService.gets(model); return RestResponse.ok(pageInfo); } @RequestMapping(value = "/add", method = RequestMethod.POST) public RestResponse add(@RequestBody @Valid String name) { return RestResponse.ok(departmentService.add(name)); } @RequestMapping(value = "/update", method = RequestMethod.POST) public RestResponse update(@RequestBody @Valid Department model) { return RestResponse.ok(departmentService.update(model)); } @RequestMapping(value = "/get/{id}", method = RequestMethod.POST) public RestResponse update(@PathVariable Integer id) { return RestResponse.ok(departmentService.getById(id)); } @RequestMapping(value = "/getUserByDepartment/{id}", method = RequestMethod.POST) public RestResponse> getUserByDepartment(@PathVariable Integer id){ return RestResponse.ok(userService.getUserByLevel(id)); } @RequestMapping(value = "/getDepartmentUser", method = RequestMethod.POST) public RestResponse> getUserDepartment(){ List res = departmentService.gets() .stream().map(e->{ DepartmentVO departmentVO = new DepartmentVO(); List userDepartments = userDepartmentMapper.selectByDepartmentId(e.getId()); List 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); } }