数据权限隔离修改调整
This commit is contained in:
+4
-4
@@ -120,8 +120,8 @@ public class LeaseApplicationService {
|
||||
leaseDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
} else {
|
||||
// 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId
|
||||
leaseDO.setTopOrganizationId(null);
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
leaseDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -352,8 +352,8 @@ public class LeaseApplicationService {
|
||||
shipperLeaseDetailsDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
} else {
|
||||
// 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId
|
||||
shipperLeaseDetailsDO.setTopOrganizationId(null);
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
shipperLeaseDetailsDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -82,8 +82,8 @@ public class BatchApplicationService {
|
||||
batchDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
} else {
|
||||
// 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId
|
||||
batchDO.setTopOrganizationId(null);
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
batchDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -80,8 +80,8 @@ public class BrandApplicationService {
|
||||
brandDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
} else {
|
||||
// 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId
|
||||
brandDO.setTopOrganizationId(null);
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
brandDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+34
-4
@@ -72,10 +72,40 @@ public class ContractManageApplicationService {
|
||||
|
||||
public List<ContractManagePO> queryList(ContractManageDO contractManageDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
contractManageDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
if (loginUser != null && loginUser.getUserPo() != null) {
|
||||
Long userOrganizationId = loginUser.getUserPo().getOrganizationId();
|
||||
Long frontendOrganizationId = contractManageDO.getOrganizationId(); // 前端传递的 organizationId
|
||||
|
||||
// 当前登录用户的 organizationId 为 2827 时,可查全部组织数据;其他组织只能查自己且 topOrganizationId=2827
|
||||
if (userOrganizationId != null && userOrganizationId == 2827L) {
|
||||
// 南光组织(organizationId=2827):可以查询所有组织的数据
|
||||
if (frontendOrganizationId != null) {
|
||||
// 前端传递了 organizationId(包括2827或其他组织),使用前端传递的值进行过滤
|
||||
contractManageDO.setOrganizationId(frontendOrganizationId);
|
||||
contractManageDO.setTopOrganizationId(null); // 明确设置为 null,避免使用 topOrganizationId 条件
|
||||
} else {
|
||||
// 前端没有传递 organizationId,清空组织过滤条件,查询所有组织的数据
|
||||
contractManageDO.setOrganizationId(null);
|
||||
contractManageDO.setTopOrganizationId(null);
|
||||
}
|
||||
} else {
|
||||
// 其他组织:设置organizationId为当前组织ID,并且设置topOrganizationId=2827
|
||||
// 如果前端传递了 organizationId,验证是否与当前登录用户的组织ID一致
|
||||
if (frontendOrganizationId != null && userOrganizationId != null) {
|
||||
// 前端传递了 organizationId,验证是否与当前登录用户的组织ID一致
|
||||
if (!frontendOrganizationId.equals(userOrganizationId)) {
|
||||
// 前端传递了其他组织的 organizationId,强制使用当前登录用户的组织ID,防止越权查询
|
||||
contractManageDO.setOrganizationId(userOrganizationId);
|
||||
}
|
||||
// 如果前端传递的 organizationId 与当前登录用户的组织ID一致,使用前端传递的值
|
||||
} else {
|
||||
// 前端没有传递 organizationId,使用当前登录用户的组织ID
|
||||
if (userOrganizationId != null) {
|
||||
contractManageDO.setOrganizationId(userOrganizationId);
|
||||
}
|
||||
}
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
contractManageDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
return contractManageDomainService.queryList(contractManageDO);
|
||||
|
||||
+2
-2
@@ -86,8 +86,8 @@ public class MaterialBaseInfoApplicationService {
|
||||
materialBaseInfoDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
} else {
|
||||
// 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId
|
||||
materialBaseInfoDO.setTopOrganizationId(null);
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
materialBaseInfoDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -81,8 +81,8 @@ public class PackApplicationService {
|
||||
packDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
} else {
|
||||
// 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId
|
||||
packDO.setTopOrganizationId(null);
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
packDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+14
-7
@@ -76,15 +76,22 @@ public class ShipperLeaseDetailsApplicationService {
|
||||
shipperLeaseDetailsDO.setTopOrganizationId(null);
|
||||
}
|
||||
} else {
|
||||
// 其他组织:设置organizationId,只查询当前组织的数据
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
shipperLeaseDetailsDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
// 其他组织:设置organizationId为当前组织ID,并且设置topOrganizationId=2827
|
||||
// 如果前端传递了organizationId,验证是否与当前登录用户的组织ID一致
|
||||
if (shipperLeaseDetailsDO.getOrganizationId() != null && !shipperLeaseDetailsDO.getOrganizationId().equals(loginUserOrganizationId)) {
|
||||
// 前端传递了其他组织的organizationId,强制使用当前登录用户的组织ID,防止越权查询
|
||||
shipperLeaseDetailsDO.setOrganizationId(loginUserOrganizationId);
|
||||
Long frontendOrganizationId = shipperLeaseDetailsDO.getOrganizationId();
|
||||
if (frontendOrganizationId != null && loginUserOrganizationId != null) {
|
||||
if (!frontendOrganizationId.equals(loginUserOrganizationId)) {
|
||||
// 前端传递了其他组织的organizationId,强制使用当前登录用户的组织ID,防止越权查询
|
||||
shipperLeaseDetailsDO.setOrganizationId(loginUserOrganizationId);
|
||||
}
|
||||
} else {
|
||||
// 前端没有传递 organizationId,使用当前登录用户的组织ID
|
||||
if (loginUserOrganizationId != null) {
|
||||
shipperLeaseDetailsDO.setOrganizationId(loginUserOrganizationId);
|
||||
}
|
||||
}
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
shipperLeaseDetailsDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
return shipperLeaseDetailsDomainService.queryList(shipperLeaseDetailsDO);
|
||||
|
||||
+2
-2
@@ -87,8 +87,8 @@ public class StorageLocationApplicationService {
|
||||
storageLocationDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
} else {
|
||||
// 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId
|
||||
storageLocationDO.setTopOrganizationId(null);
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
storageLocationDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -71,8 +71,8 @@ public class StorageLocationGroupApplicationService {
|
||||
storageLocationGroupDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
} else {
|
||||
// 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId
|
||||
storageLocationGroupDO.setTopOrganizationId(null);
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
storageLocationGroupDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -86,8 +86,8 @@ public class StorageSectionApplicationService {
|
||||
storageSectionDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
} else {
|
||||
// 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId
|
||||
storageSectionDO.setTopOrganizationId(null);
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
storageSectionDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -85,8 +85,8 @@ public class WarehouseApplicationService {
|
||||
warehouseDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
} else {
|
||||
// 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId
|
||||
warehouseDO.setTopOrganizationId(null);
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
warehouseDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,6 +187,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
AND date_format(effective_date,'%Y-%m-%d') <![CDATA[<=]]> #{contractManageDO.nowDateString}
|
||||
)
|
||||
</if>
|
||||
<if test="contractManageDO.organizationId != null">
|
||||
and organization_id = #{contractManageDO.organizationId}
|
||||
</if>
|
||||
<if test="contractManageDO.topOrganizationId != null">
|
||||
and top_organization_id = #{contractManageDO.topOrganizationId}
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user