mirror of https://gitee.com/stylefeng/roses
【7.4.0】【org】更新当前用户信息的组织机构id
parent
1af33de150
commit
cec3d45217
|
@ -24,13 +24,23 @@
|
|||
*/
|
||||
package cn.stylefeng.roses.kernel.system.modular.user.controller;
|
||||
|
||||
import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.ResBizTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.organization.HrOrganizationDTO;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.enums.SysUserOrgExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.pojo.request.SysUserOrgRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserOrgService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
@ -49,6 +59,9 @@ public class SysUserOrgController {
|
|||
@Resource
|
||||
private SysUserOrgService sysUserOrgService;
|
||||
|
||||
@Resource
|
||||
private SessionManagerApi sessionManagerApi;
|
||||
|
||||
/**
|
||||
* 获取当前登录用户所在组织机构列表
|
||||
*
|
||||
|
@ -61,4 +74,35 @@ public class SysUserOrgController {
|
|||
return new SuccessResponseData<>(userCompanyList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新当前用户信息的组织机构id
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/4/17 17:08
|
||||
*/
|
||||
@PostResource(name = "更新当前用户信息的组织机构id", path = "/sysUserOrg/updateUserOrg", requiredPermission = false)
|
||||
public ResponseData<?> updateUserOrg(@RequestBody @Validated(BaseRequest.edit.class) SysUserOrgRequest sysUserOrgRequest) {
|
||||
|
||||
LoginUser loginUser = LoginContext.me().getLoginUser();
|
||||
loginUser.setOrganizationId(sysUserOrgRequest.getOrgId());
|
||||
|
||||
// 判断当前用户是否有对应组织机构对的id
|
||||
boolean orgIdRightFlag = false;
|
||||
List<HrOrganizationDTO> userCompanyList = sysUserOrgService.getUserCompanyList();
|
||||
for (HrOrganizationDTO hrOrganizationDTO : userCompanyList) {
|
||||
if (sysUserOrgRequest.getOrgId().equals(hrOrganizationDTO.getOrgId())) {
|
||||
orgIdRightFlag = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!orgIdRightFlag) {
|
||||
throw new ServiceException(SysUserOrgExceptionEnum.CANT_CHANGE_ORG_ID);
|
||||
}
|
||||
|
||||
// 更新会话信息
|
||||
sessionManagerApi.updateSession(LoginContext.me().getToken(), loginUser);
|
||||
|
||||
return new SuccessResponseData<>();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.user.enums;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 用户机构异常
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/4/17 18:51
|
||||
*/
|
||||
@Getter
|
||||
public enum SysUserOrgExceptionEnum implements AbstractExceptionEnum {
|
||||
|
||||
/**
|
||||
* 无法切换用户组织机构,组织机构id无效
|
||||
*/
|
||||
CANT_CHANGE_ORG_ID(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "无法切换用户组织机构,组织机构id无效");
|
||||
|
||||
/**
|
||||
* 错误编码
|
||||
*/
|
||||
private final String errorCode;
|
||||
|
||||
/**
|
||||
* 提示用户信息
|
||||
*/
|
||||
private final String userTip;
|
||||
|
||||
SysUserOrgExceptionEnum(String errorCode, String userTip) {
|
||||
this.errorCode = errorCode;
|
||||
this.userTip = userTip;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.user.pojo.request;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 用户组织机构修改的封装
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/4/17 18:44
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class SysUserOrgRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 更新用户的组织机构id
|
||||
*/
|
||||
@ChineseDescription("更新用户的组织机构id")
|
||||
@NotNull(message = "组织机构id不能为空", groups = edit.class)
|
||||
private Long orgId;
|
||||
|
||||
}
|
Loading…
Reference in New Issue