diff --git a/src/main/java/com/rj/controller/QweiDepartmentController.java b/src/main/java/com/rj/controller/QweiDepartmentController.java index 64ed8d3..0af7602 100644 --- a/src/main/java/com/rj/controller/QweiDepartmentController.java +++ b/src/main/java/com/rj/controller/QweiDepartmentController.java @@ -73,8 +73,9 @@ public class QweiDepartmentController { @PostMapping("/sync") @Operation(summary = "同步企微部门并入库") - public ResponseEntity> sync() { - Map result = qweiDepartmentService.syncFromQiWei(); + public ResponseEntity> sync( + @RequestParam(required = false) String tenantId) { + Map result = qweiDepartmentService.syncFromQiWei(tenantId); Boolean success = (Boolean) result.get("success"); if (success != null && success) { return ResponseEntity.ok(result); diff --git a/src/main/java/com/rj/controller/QweiUserController.java b/src/main/java/com/rj/controller/QweiUserController.java index 268117f..8e4be7e 100644 --- a/src/main/java/com/rj/controller/QweiUserController.java +++ b/src/main/java/com/rj/controller/QweiUserController.java @@ -74,8 +74,9 @@ public class QweiUserController { @PostMapping("/sync") @Operation(summary = "同步企微用户并入库") - public ResponseEntity> sync() { - Map result = qweiUserService.syncFromQiWei(); + public ResponseEntity> sync( + @RequestParam(required = false) String tenantId) { + Map result = qweiUserService.syncFromQiWei(tenantId); Boolean success = (Boolean) result.get("success"); if (success != null && success) { return ResponseEntity.ok(result); diff --git a/src/main/java/com/rj/service/IQweiDepartmentService.java b/src/main/java/com/rj/service/IQweiDepartmentService.java index d268ce1..dcf6485 100644 --- a/src/main/java/com/rj/service/IQweiDepartmentService.java +++ b/src/main/java/com/rj/service/IQweiDepartmentService.java @@ -19,6 +19,10 @@ public interface IQweiDepartmentService extends IService { String deptName, Long parentDeptId); - Map syncFromQiWei(); + default Map syncFromQiWei() { + return syncFromQiWei(null); + } + + Map syncFromQiWei(String tenantId); } diff --git a/src/main/java/com/rj/service/IQweiUserService.java b/src/main/java/com/rj/service/IQweiUserService.java index cbda6da..556898f 100644 --- a/src/main/java/com/rj/service/IQweiUserService.java +++ b/src/main/java/com/rj/service/IQweiUserService.java @@ -20,6 +20,10 @@ public interface IQweiUserService extends IService { Long mainDepartmentId, Integer status); - Map syncFromQiWei(); + default Map syncFromQiWei() { + return syncFromQiWei(null); + } + + Map syncFromQiWei(String tenantId); } diff --git a/src/main/java/com/rj/service/impl/QweiDepartmentServiceImpl.java b/src/main/java/com/rj/service/impl/QweiDepartmentServiceImpl.java index f4c40a9..6e814bd 100644 --- a/src/main/java/com/rj/service/impl/QweiDepartmentServiceImpl.java +++ b/src/main/java/com/rj/service/impl/QweiDepartmentServiceImpl.java @@ -167,11 +167,11 @@ public class QweiDepartmentServiceImpl extends ServiceImpl syncFromQiWei() { + public Map syncFromQiWei(String tenantIdParam) { Map result = new HashMap<>(); try { QiWeiConfig cfg = loadQiWeiConfig(); - String tenantId = resolveTenantId(null); + String tenantId = resolveTenantId(tenantIdParam); // 确保后续对 qwei_department 的查询/写入都带 tenant_id 条件 TenantContextHolder.setTenantId(tenantId); String corpId = requireNonBlank(cfg.getCorpid(), "qiwei_config.corpid不能为空"); diff --git a/src/main/java/com/rj/service/impl/QweiUserServiceImpl.java b/src/main/java/com/rj/service/impl/QweiUserServiceImpl.java index 6f51ad2..aa6a82b 100644 --- a/src/main/java/com/rj/service/impl/QweiUserServiceImpl.java +++ b/src/main/java/com/rj/service/impl/QweiUserServiceImpl.java @@ -173,11 +173,11 @@ public class QweiUserServiceImpl extends ServiceImpl i @Override @Transactional(rollbackFor = Exception.class) - public Map syncFromQiWei() { + public Map syncFromQiWei(String tenantIdParam) { Map result = new HashMap<>(); String tenantId = null; try { - tenantId = resolveTenantId(null); + tenantId = resolveTenantId(tenantIdParam); TenantContextHolder.setTenantId(tenantId); QiWeiConfig cfg = loadQiWeiConfig(); diff --git a/src/test/java/com/rj/controller/QweiDepartmentControllerTest.java b/src/test/java/com/rj/controller/QweiDepartmentControllerTest.java index f958506..ed18e53 100644 --- a/src/test/java/com/rj/controller/QweiDepartmentControllerTest.java +++ b/src/test/java/com/rj/controller/QweiDepartmentControllerTest.java @@ -49,9 +49,10 @@ public class QweiDepartmentControllerTest { serviceResult.put("inserted", 3); serviceResult.put("updated", 5); serviceResult.put("total", 8); - when(qweiDepartmentService.syncFromQiWei()).thenReturn(serviceResult); + when(qweiDepartmentService.syncFromQiWei("TENANT_TEST")).thenReturn(serviceResult); mockMvc.perform(post("/api/qweiDepartment/sync") + .param("tenantId", "TENANT_TEST") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.success").value(true)) @@ -59,7 +60,7 @@ public class QweiDepartmentControllerTest { .andExpect(jsonPath("$.updated").value(5)) .andExpect(jsonPath("$.total").value(8)); - verify(qweiDepartmentService, times(1)).syncFromQiWei(); + verify(qweiDepartmentService, times(1)).syncFromQiWei("TENANT_TEST"); } @Test @@ -67,14 +68,15 @@ public class QweiDepartmentControllerTest { Map serviceResult = new HashMap<>(); serviceResult.put("success", false); serviceResult.put("message", "同步异常:测试错误"); - when(qweiDepartmentService.syncFromQiWei()).thenReturn(serviceResult); + when(qweiDepartmentService.syncFromQiWei("TENANT_TEST")).thenReturn(serviceResult); mockMvc.perform(post("/api/qweiDepartment/sync") + .param("tenantId", "TENANT_TEST") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isBadRequest()) .andExpect(jsonPath("$.success").value(false)); - verify(qweiDepartmentService, times(1)).syncFromQiWei(); + verify(qweiDepartmentService, times(1)).syncFromQiWei("TENANT_TEST"); } }