diff --git a/src/main/java/com/rj/controller/LbDepartmentUserController.java b/src/main/java/com/rj/controller/LbDepartmentUserController.java index ceaeb8c..a4ccf4e 100644 --- a/src/main/java/com/rj/controller/LbDepartmentUserController.java +++ b/src/main/java/com/rj/controller/LbDepartmentUserController.java @@ -75,4 +75,22 @@ public class LbDepartmentUserController { } return ResponseEntity.internalServerError().body(result); } + + @PostMapping("/bindParentUser") + @Operation(summary = "绑定父子用户关系") + public ResponseEntity> bindParentUser( + @RequestParam String parentUserId, + @RequestParam(required = false) String parentUserName, + @RequestParam String childUserId, + @RequestParam(required = false) String childUserName, + @RequestParam String tenantId) { + Map result = lbDepartmentUserService.bindParentUser( + parentUserId, parentUserName, childUserId, childUserName, tenantId + ); + Boolean success = (Boolean) result.get("success"); + if (success != null && success) { + return ResponseEntity.ok(result); + } + return ResponseEntity.badRequest().body(result); + } } diff --git a/src/main/java/com/rj/service/ILbDepartmentUserService.java b/src/main/java/com/rj/service/ILbDepartmentUserService.java index ceb269c..56d04d8 100644 --- a/src/main/java/com/rj/service/ILbDepartmentUserService.java +++ b/src/main/java/com/rj/service/ILbDepartmentUserService.java @@ -21,4 +21,10 @@ public interface ILbDepartmentUserService extends IService { String name, String phone, String industry); + + Map bindParentUser(String parentUserId, + String parentUserName, + String childUserId, + String childUserName, + String tenantId); } diff --git a/src/main/java/com/rj/service/impl/LbDepartmentUserServiceImpl.java b/src/main/java/com/rj/service/impl/LbDepartmentUserServiceImpl.java index ecd0f16..2b70227 100644 --- a/src/main/java/com/rj/service/impl/LbDepartmentUserServiceImpl.java +++ b/src/main/java/com/rj/service/impl/LbDepartmentUserServiceImpl.java @@ -152,4 +152,72 @@ public class LbDepartmentUserServiceImpl extends ServiceImpl bindParentUser(String parentUserId, + String parentUserName, + String childUserId, + String childUserName, + String tenantId) { + Map result = new HashMap<>(); + try { + if (parentUserId == null || parentUserId.trim().isEmpty()) { + result.put("success", false); + result.put("message", "父用户id不能为空"); + return result; + } + if (childUserId == null || childUserId.trim().isEmpty()) { + result.put("success", false); + result.put("message", "子用户id不能为空"); + return result; + } + if (tenantId == null || tenantId.trim().isEmpty()) { + result.put("success", false); + result.put("message", "租户id不能为空"); + return result; + } + + String parentUserIdTrim = parentUserId.trim(); + String childUserIdTrim = childUserId.trim(); + String tenantIdTrim = tenantId.trim(); + + // 第1步:根据子用户id查询目标记录 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(LbDepartmentUser::getTenantId, tenantIdTrim) + .eq(LbDepartmentUser::getUserId, childUserIdTrim); + if (childUserName != null && !childUserName.trim().isEmpty()) { + queryWrapper.eq(LbDepartmentUser::getName, childUserName.trim()); + } + LbDepartmentUser childUser = this.getOne(queryWrapper, false); + if (childUser == null) { + result.put("success", false); + result.put("message", "未查询到对应子用户"); + return result; + } + + // 第2步:设置父用户id + childUser.setParentId(parentUserIdTrim); + childUser.setUpdateTime(LocalDateTime.now()); + + // 第3步:更新数据库表 + boolean ok = this.updateById(childUser); + result.put("success", ok); + result.put("message", ok ? "绑定父用户成功" : "绑定父用户失败"); + if (ok) { + Map data = new HashMap<>(); + data.put("parentUserId", parentUserIdTrim); + data.put("parentUserName", parentUserName); + data.put("childUserId", childUserIdTrim); + data.put("childUserName", childUser.getName()); + data.put("tenantId", tenantIdTrim); + data.put("record", this.getById(childUser.getId())); + result.put("data", data); + } + return result; + } catch (Exception e) { + result.put("success", false); + result.put("message", "绑定父子用户异常:" + e.getMessage()); + return result; + } + } }