ConcatController.java 3.3 KB

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