DingtalkController.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.xjrsoft.module.organization.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import com.xjrsoft.common.annotation.XjrLog;
  4. import com.xjrsoft.common.constant.GlobalConstant;
  5. import com.xjrsoft.common.model.result.R;
  6. import com.xjrsoft.common.utils.RedisUtil;
  7. import com.xjrsoft.module.organization.dto.WeChatDepartPageDto;
  8. import com.xjrsoft.module.organization.dto.WeChatPageDto;
  9. import com.xjrsoft.module.organization.entity.Department;
  10. import com.xjrsoft.module.organization.entity.User;
  11. import com.xjrsoft.module.organization.service.DingtalkService;
  12. import com.xjrsoft.module.organization.service.IDepartmentService;
  13. import com.xjrsoft.module.organization.service.IUserService;
  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.PutMapping;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.RestController;
  21. import java.util.List;
  22. import java.util.concurrent.CompletableFuture;
  23. @RestController
  24. @RequestMapping(value = GlobalConstant.ORGANIZATION_MODULE_PREFIX + "/ding-talk")
  25. @Api(value = GlobalConstant.ORGANIZATION_MODULE_PREFIX + "/ding-talk", tags = "钉钉信息")
  26. @AllArgsConstructor
  27. public class DingtalkController {
  28. private final IUserService userService;
  29. private final IDepartmentService departmentService;
  30. private DingtalkService dingtalkService;
  31. private RedisUtil redisUtil;
  32. @PutMapping("/sync-user")
  33. @ApiOperation(value = "钉钉信息更新")
  34. @SaCheckPermission("dingtalk:syncuser")
  35. @XjrLog(value = "钉钉用户部门同步更新")
  36. public R updateInfo() throws Exception {
  37. dingtalkService.updateInfo();
  38. CompletableFuture.runAsync(() -> {
  39. List<Department> depList = departmentService.list();
  40. redisUtil.set(GlobalConstant.DEP_CACHE_KEY, depList);
  41. List<User> userList = userService.list();
  42. redisUtil.set(GlobalConstant.USER_CACHE_KEY, userList);
  43. });
  44. return R.ok(true);
  45. }
  46. @GetMapping(value = "/page")
  47. @ApiOperation(value = "获取员工分页信息")
  48. @SaCheckPermission("dingtalk:page")
  49. @XjrLog(value = "获取员工分页信息")
  50. public R page(WeChatPageDto dto) {
  51. return R.ok(userService.getPage(dto));
  52. }
  53. @GetMapping(value = "/departpage")
  54. @ApiOperation(value = "获取部门分页信息")
  55. @SaCheckPermission("dingtalk:departpage")
  56. @XjrLog(value = "获取部门分页信息")
  57. public R page(WeChatDepartPageDto dto) {
  58. return R.ok(departmentService.Ipage(dto));
  59. }
  60. }