CommonController.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package com.wtkj.controller;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
  4. import com.wtkj.entity.DeptToDept;
  5. import com.wtkj.service.IContactsService;
  6. import com.wtkj.service.IDeptToDeptService;
  7. import com.wtkj.vo.AuthUserInfo;
  8. import com.wtkj.wrapper.UserListWrapper;
  9. import io.swagger.annotations.Api;
  10. import io.swagger.annotations.ApiOperation;
  11. import lombok.AllArgsConstructor;
  12. import org.springblade.core.mp.support.Query;
  13. import org.springblade.core.tool.api.R;
  14. import org.springblade.system.entity.Dept;
  15. import org.springblade.system.feign.ISysClient;
  16. import org.springblade.system.user.entity.User;
  17. import org.springblade.system.user.feign.IUserClient;
  18. import org.springblade.system.vo.DeptVO;
  19. import org.springframework.web.bind.annotation.*;
  20. import javax.validation.Valid;
  21. import java.util.ArrayList;
  22. import java.util.List;
  23. /**
  24. * @author Blizzard
  25. * @create at 2023-09-14 11:13
  26. * @describe
  27. */
  28. @RestController
  29. @AllArgsConstructor
  30. @RequestMapping("/common")
  31. @Api(value = "公共模块", tags = "公共模块")
  32. public class CommonController {
  33. private final IDeptToDeptService deptToDeptService;
  34. private final ISysClient sysClient;
  35. private final IUserClient userClient;
  36. private final IContactsService contactsService;
  37. /**
  38. * 当前登录用户信息
  39. */
  40. @GetMapping("/user-info")
  41. @ApiOperation(value = "当前登录用户信息", notes = "")
  42. @ApiOperationSupport(order = 1)
  43. public R<AuthUserInfo> userInfo() {
  44. return R.data(deptToDeptService.userInfo());
  45. }
  46. /**
  47. * 新建机构
  48. */
  49. @PostMapping("/sava-dept")
  50. @ApiOperation(value = "新建政府机构", notes = "传入DeptToDept")
  51. @ApiOperationSupport(order = 2)
  52. public R<Boolean> createDept(@RequestBody @Valid DeptToDept dept) {
  53. return R.status(deptToDeptService.saveOrUpdate(dept));
  54. }
  55. /**
  56. * 机构搜索
  57. */
  58. @GetMapping("/get-dept")
  59. @ApiOperation(value = "搜索机构", notes = "")
  60. @ApiOperationSupport(order = 3)
  61. public R<List<Dept>> list(Long topDept, String areaCode, String name, Integer category) {
  62. return R.data(deptToDeptService.getDept(topDept, areaCode, name, category));
  63. }
  64. /**
  65. * 本机构下的机构
  66. */
  67. @GetMapping("/dept-by-parentId")
  68. @ApiOperation(value = "内部通讯录or懒加载树形结构", notes = "传入上级机构id")
  69. @ApiOperationSupport(order = 4)
  70. public R<List<DeptVO>> deptList(@RequestParam Long parentId) {
  71. List<DeptVO> res = new ArrayList<>();
  72. R<List<DeptVO>> rpc = sysClient.getDeptLazyList(parentId);
  73. if (rpc.isSuccess()) {
  74. res = rpc.getData();
  75. }
  76. return R.data(res);
  77. }
  78. /**
  79. * 外部联系人
  80. */
  81. @GetMapping("/outer-dept")
  82. @ApiOperation(value = "外部联系人", notes = "传入登录用户的topDept,分页参数")
  83. @ApiOperationSupport(order = 5)
  84. public R address(@RequestParam Long topDept, Query query) {
  85. IPage<DeptVO> page = contactsService.deptPage(topDept, query);
  86. return R.data(page);
  87. }
  88. /**
  89. * 搜索用户
  90. */
  91. @GetMapping("/get-user-list")
  92. @ApiOperationSupport(order = 6)
  93. @ApiOperation(value = "搜索用户", notes = "")
  94. public R getUserList(@RequestParam Long deptId, @RequestParam String name) {
  95. List<User> list = new ArrayList<>();
  96. R<List<User>> rpc = userClient.getDeptUserList(deptId, name);
  97. if (rpc.isSuccess()) {
  98. list = rpc.getData();
  99. }
  100. return R.data(UserListWrapper.build().listVO(list));
  101. }
  102. }