转出状态2
ci-userbase-service / build-and-push (push) Successful in 46s

This commit is contained in:
chenxing
2026-08-26 12:38:55 +08:00
parent 5627252eab
commit 6675ccc8d5
7 changed files with 210 additions and 9 deletions
@@ -6,13 +6,16 @@ import com.yunhai.platform.utils.model.BoaGroup;
import com.yunhai.platform.utils.model.BoaModule;
import com.yunhai.platform.utils.model.BoaRoleInfo;
import com.yunhai.platform.utils.model.BoaUser;
import com.yunhai.userbase.common.annotation.OapiLog;
import com.yunhai.userbase.common.validation.ValidationGroups;
import com.yunhai.userbase.config.Config;
import com.yunhai.userbase.entity.ApplicationInfo;
import com.yunhai.userbase.model.sysuser.SysUserGroupDeleteItem;
import com.yunhai.userbase.model.sysuser.SysUserGroupStateRequest;
import com.yunhai.userbase.model.sysuser.SysUserMoveRequest;
import com.yunhai.userbase.model.sysuser.SysUserPasswordRequest;
import com.yunhai.userbase.model.sysuser.SysUserRequest;
import com.yunhai.userbase.model.sysuser.SysUserTransferSchoolRequest;
import com.yunhai.userbase.repository.ApplicationInfoRepository;
import com.yunhai.userbase.service.IGroupAuthzService;
import com.yunhai.userbase.service.ISysUserService;
@@ -230,4 +233,43 @@ public class UserController {
public void password(@RequestBody @Validated SysUserPasswordRequest request) {
sysUserService.changePassword(request.getUserId(), request.getOldPassword(), request.getNewPassword());
}
/**
* 设置用户在指定组上的状态(转出/恢复)。<br>
* state=1 转出、state=0 恢复正常;仅作关系标记,不影响成员查询、组织链与下游推送。
* 仅允许在同一学校(组)范围内操作——groupId 必须属于 schoolId 子树且不等于 schoolId。<br>
* 鉴权由过滤器层强制签名;POST 自动记 OapiLog。
*/
@PostMapping("groupState")
public void groupState(@RequestBody @Validated SysUserGroupStateRequest request) {
sysUserService.changeUserGroupState(request.getUserId(), request.getGroupId(),
request.getSchoolId(), request.getState());
}
/**
* 查询用户在指定组上的状态:0=正常,1=转出。<br>
* 边界与设置接口一致(groupId 必须属于 schoolId 子树且不等于 schoolId);
* 用户不在此组时返回业务错误(code=5)。
*/
@OapiLog(value = "查询用户组状态", saveResponse = false)
@GetMapping("groupState")
public Integer groupState(@RequestParam("userId") Integer userId,
@RequestParam("groupId") Integer groupId,
@RequestParam("schoolId") Integer schoolId) {
return sysUserService.getUserGroupState(userId, groupId, schoolId);
}
/**
* 跨校转入(转出后迁移到其他学校)。<br>
* 前置:用户已在原学校(fromSchoolId 子树内)存在至少一条「转出」状态的组关系(先经 groupState 置转出);<br>
* 操作成功后:删除原学校范围内全部组关系(其他学校保留),在目标学校建立目标组关系
* (主归属、状态恢复正常),并推送编辑用户订阅。<br>
* 鉴权由过滤器层强制签名;POST 自动记 OapiLog。
*/
@PostMapping("transferToSchool")
public BoaUser transferToSchool(@RequestBody @Validated SysUserTransferSchoolRequest request) {
sysUserService.transferUserToSchool(request.getUserId(), request.getFromSchoolId(),
request.getSchoolId(), request.getGroupId());
return userCenterService.getUserInfoWithDeptById(request.getUserId());
}
}