ConcatController.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package com.xjrsoft.module.concat.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.github.yulichang.wrapper.MPJLambdaWrapper;
  5. import com.xjrsoft.common.enums.DeleteMark;
  6. import com.xjrsoft.common.model.result.RT;
  7. import com.xjrsoft.common.utils.TreeUtil;
  8. import com.xjrsoft.module.concat.dto.ConcatTreeDto;
  9. import com.xjrsoft.module.concat.service.IXjrUserService;
  10. import com.xjrsoft.module.concat.vo.ConcatTreeVo;
  11. import com.xjrsoft.module.organization.entity.Department;
  12. import com.xjrsoft.module.organization.service.IDepartmentService;
  13. import com.xjrsoft.module.teacher.entity.XjrUser;
  14. import io.swagger.annotations.Api;
  15. import io.swagger.annotations.ApiOperation;
  16. import lombok.AllArgsConstructor;
  17. import org.springframework.web.bind.annotation.GetMapping;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. /**
  23. * @title: 通讯录
  24. * @Author dzx
  25. * @Date: 2024年3月25日
  26. * @Version 1.0
  27. */
  28. @RestController
  29. @RequestMapping("/concat" + "/concat")
  30. @Api(value = "/concat" + "/concat",tags = "通讯录")
  31. @AllArgsConstructor
  32. public class ConcatController {
  33. private final IXjrUserService xjrUserService;
  34. private final IDepartmentService departmentService;
  35. @GetMapping(value = "/list")
  36. @ApiOperation(value="教师通讯录")
  37. @SaCheckPermission("room:detail")
  38. public RT<List<ConcatTreeVo>> list(ConcatTreeDto dto) throws Exception {
  39. Long parentId = 1684107782861680000L;
  40. if(dto.getDeptId() != null){
  41. parentId = dto.getDeptId();
  42. }
  43. List<Department> list = departmentService.list(
  44. new QueryWrapper<Department>().lambda()
  45. .eq(Department::getParentId, parentId)
  46. );
  47. List<ConcatTreeVo> concatList = new ArrayList<>();
  48. for (Department department : list) {
  49. concatList.add(
  50. new ConcatTreeVo(){{
  51. setName(department.getName());
  52. setId(department.getId());
  53. setType(1);
  54. }}
  55. );
  56. }
  57. MPJLambdaWrapper<XjrUser> wrapper = new MPJLambdaWrapper<>();
  58. wrapper.leftJoin("xjr_user_dept_relation t2 on t.id = t2.user_id")
  59. .eq("t2.dept_id", parentId)
  60. .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode());
  61. List<XjrUser> userList = xjrUserService.selectJoinList(XjrUser.class, wrapper);
  62. for (XjrUser user : userList) {
  63. concatList.add(
  64. new ConcatTreeVo(){{
  65. setName(user.getName());
  66. setMobile(user.getMobile());
  67. setType(2);
  68. }}
  69. );
  70. }
  71. return RT.ok(concatList);
  72. }
  73. }