1. 修复用户只关联一个部门时,无法正常增删改业务数据的bug

(cherry picked from commit d17fa356ba)
This commit is contained in:
chenbowen
2025-07-17 15:04:30 +08:00
committed by chenbowen
parent e23c906e21
commit ac94ec6d2a
3 changed files with 7 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
create table "RUOYI-VUE-PRO".SYSTEM_USER_DEPT (
ID BIGINT primary key, -- 自增主键
ID BIGINT primary key,
USER_ID BIGINT not null,
DEPT_ID BIGINT not null,
TENANT_ID BIGINT default 0 not null,

View File

@@ -15,6 +15,6 @@ public class YudaoBusinessAutoConfiguration implements WebMvcConfigurer {
public void addInterceptors(InterceptorRegistry registry) {
// 只拦截增删改和 set 相关的 url
registry.addInterceptor(new BusinessHeaderInterceptor())
.addPathPatterns("/**/add**", "/**/create**", "/**/update**", "/**/edit**", "/**/delete**", "/**/remove**", "/**/set**");
.addPathPatterns("/**/add**", "/**/create**", "/**/update**", "/**/edit**", "/**/set**");
}
}

View File

@@ -1,6 +1,5 @@
package cn.iocoder.yudao.framework.business.interceptor;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
@@ -8,7 +7,6 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResultCodeEnum;
import cn.iocoder.yudao.framework.common.pojo.CompanyDeptInfo;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.type.TypeReference;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
@@ -17,7 +15,10 @@ import org.springframework.lang.NonNull;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.singleton;
@@ -82,11 +83,8 @@ public class BusinessHeaderInterceptor implements HandlerInterceptor {
// 2. 没有公司信息,尝试唯一性自动推断
// 如果当前用户下只有一个公司和部门的对于关系
if (companyDeptSet.size() == 1) {
CompanyDeptInfo info = new CompanyDeptInfo();
CompanyDeptInfo companyDeptInfo = companyDeptSet.iterator().next();
info.setCompanyId(companyDeptInfo.getCompanyId());
info.setDeptId(companyDeptInfo.getDeptId());
return writeResponse(response, HttpStatus.OK.value(), CommonResult.success(singleton(info)), objectMapper);
return writeResponse(response, HttpStatus.OK.value(), CommonResult.customize(singleton(companyDeptInfo),CommonResultCodeEnum.NEED_ADJUST), objectMapper);
} else {
return writeResponse(response, HttpStatus.OK.value(), CommonResult.customize(companyDeptSet,CommonResultCodeEnum.NEED_ADJUST), objectMapper);
}