fix: 增加下拉权限问题
This commit is contained in:
parent
0dc94cea5a
commit
7932b8dc7a
@ -1,9 +1,12 @@
|
|||||||
package com.yfd.platform.data.service.impl;
|
package com.yfd.platform.data.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.yfd.platform.data.domain.FishDraftData;
|
import com.yfd.platform.data.domain.FishDraftData;
|
||||||
import com.yfd.platform.data.domain.FishImportRequest;
|
import com.yfd.platform.data.domain.FishImportRequest;
|
||||||
import com.yfd.platform.data.domain.FishImportResult;
|
import com.yfd.platform.data.domain.FishImportResult;
|
||||||
|
import com.yfd.platform.data.domain.SysUserDataScope;
|
||||||
|
import com.yfd.platform.data.mapper.SysUserDataScopeMapper;
|
||||||
import com.yfd.platform.data.service.AttachmentUploadService;
|
import com.yfd.platform.data.service.AttachmentUploadService;
|
||||||
import com.yfd.platform.data.service.IFishImportService;
|
import com.yfd.platform.data.service.IFishImportService;
|
||||||
import com.yfd.platform.data.utils.ZipFileUtil;
|
import com.yfd.platform.data.utils.ZipFileUtil;
|
||||||
@ -11,6 +14,7 @@ import com.yfd.platform.env.domain.*;
|
|||||||
import com.yfd.platform.env.mapper.*;
|
import com.yfd.platform.env.mapper.*;
|
||||||
import com.yfd.platform.system.service.ISysDictionaryItemsService;
|
import com.yfd.platform.system.service.ISysDictionaryItemsService;
|
||||||
import com.yfd.platform.system.service.ISysDictionaryService;
|
import com.yfd.platform.system.service.ISysDictionaryService;
|
||||||
|
import com.yfd.platform.utils.SecurityUtils;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.poi.ss.usermodel.*;
|
import org.apache.poi.ss.usermodel.*;
|
||||||
@ -58,6 +62,9 @@ public class FishImportServiceImpl implements IFishImportService {
|
|||||||
@Resource
|
@Resource
|
||||||
private AttachmentUploadService attachmentUploadService;
|
private AttachmentUploadService attachmentUploadService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SysUserDataScopeMapper userDataScopeMapper;
|
||||||
|
|
||||||
private static final Map<String, String> EXCEL_COLUMN_MAPPING = new LinkedHashMap<>();
|
private static final Map<String, String> EXCEL_COLUMN_MAPPING = new LinkedHashMap<>();
|
||||||
private static final Map<Integer, String> EXCEL_COLUMN_INDEX_MAPPING = new LinkedHashMap<>();
|
private static final Map<Integer, String> EXCEL_COLUMN_INDEX_MAPPING = new LinkedHashMap<>();
|
||||||
|
|
||||||
@ -468,8 +475,63 @@ public class FishImportServiceImpl implements IFishImportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void loadStationAndBaseCache() {
|
private void loadStationAndBaseCache() {
|
||||||
if (STATION_NAME_CACHE.isEmpty()) {
|
String userId = SecurityUtils.getUserId();
|
||||||
List<SdEngInfoBH> stationList = engInfoBHMapper.selectList(null);
|
Set<String> allowedHbrvcdSet = new HashSet<>();
|
||||||
|
Set<String> directStcdSet = new HashSet<>();
|
||||||
|
|
||||||
|
if (userId != null) {
|
||||||
|
List<SysUserDataScope> permissions = userDataScopeMapper.selectValidPermissions(userId);
|
||||||
|
if (permissions != null && !permissions.isEmpty()) {
|
||||||
|
for (SysUserDataScope permission : permissions) {
|
||||||
|
String orgType = permission.getOrgType();
|
||||||
|
String orgId = permission.getOrgId();
|
||||||
|
|
||||||
|
if (orgId == null || orgId.isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("HBRVCD".equals(orgType)) {
|
||||||
|
allowedHbrvcdSet.add(orgId);
|
||||||
|
} else if ("STATION".equals(orgType)) {
|
||||||
|
directStcdSet.add(orgId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<String> allStcdSet = new HashSet<>();
|
||||||
|
|
||||||
|
if (!allowedHbrvcdSet.isEmpty() || !directStcdSet.isEmpty()) {
|
||||||
|
if (!allowedHbrvcdSet.isEmpty()) {
|
||||||
|
List<SdEngInfoBH> stationsFromHbrv = engInfoBHMapper.selectByHbrvcdList(new ArrayList<>(allowedHbrvcdSet));
|
||||||
|
for (SdEngInfoBH station : stationsFromHbrv) {
|
||||||
|
if (station.getStcd() != null) {
|
||||||
|
allStcdSet.add(station.getStcd());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!directStcdSet.isEmpty()) {
|
||||||
|
List<SdEngInfoBH> stationsFromStcd = engInfoBHMapper.selectBatchIds(new ArrayList<>(directStcdSet));
|
||||||
|
for (SdEngInfoBH station : stationsFromStcd) {
|
||||||
|
if (station.getStcd() != null) {
|
||||||
|
allStcdSet.add(station.getStcd());
|
||||||
|
}
|
||||||
|
if (station.getHbrvcd() != null) {
|
||||||
|
allowedHbrvcdSet.add(station.getHbrvcd());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (STATION_NAME_CACHE.isEmpty()&&!allStcdSet.isEmpty()) {
|
||||||
|
List<SdEngInfoBH> stationList;
|
||||||
|
if (!allStcdSet.isEmpty()) {
|
||||||
|
stationList = engInfoBHMapper.selectBatchIds(new ArrayList<>(allStcdSet));
|
||||||
|
} else {
|
||||||
|
stationList = engInfoBHMapper.selectList(null);
|
||||||
|
}
|
||||||
|
|
||||||
for (SdEngInfoBH station : stationList) {
|
for (SdEngInfoBH station : stationList) {
|
||||||
if (StringUtils.hasText(station.getEnnm())) {
|
if (StringUtils.hasText(station.getEnnm())) {
|
||||||
STATION_NAME_CACHE.put(station.getEnnm().trim().toLowerCase(), station.getStcd());
|
STATION_NAME_CACHE.put(station.getEnnm().trim().toLowerCase(), station.getStcd());
|
||||||
@ -478,7 +540,7 @@ public class FishImportServiceImpl implements IFishImportService {
|
|||||||
if (StringUtils.hasText(station.getEnnm())) {
|
if (StringUtils.hasText(station.getEnnm())) {
|
||||||
STATION_CODE_TO_NAME_CACHE.put(station.getStcd().trim().toLowerCase(), station.getEnnm().trim().toLowerCase());
|
STATION_CODE_TO_NAME_CACHE.put(station.getStcd().trim().toLowerCase(), station.getEnnm().trim().toLowerCase());
|
||||||
}
|
}
|
||||||
if (StringUtils.hasText(station.getBaseId())) {
|
if (StringUtils.hasText(station.getHbrvcd())) {
|
||||||
STATION_TO_BASE_CACHE.put(station.getStcd().trim().toLowerCase(), station.getHbrvcd());
|
STATION_TO_BASE_CACHE.put(station.getStcd().trim().toLowerCase(), station.getHbrvcd());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -513,8 +575,11 @@ public class FishImportServiceImpl implements IFishImportService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HBRVCD_NAME_CACHE.isEmpty()) {
|
if (HBRVCD_NAME_CACHE.isEmpty()&&!allowedHbrvcdSet.isEmpty()) {
|
||||||
List<SdHbrvDic> riverList = sdHbrvDicMapper.selectList(null);
|
List<SdHbrvDic> riverList;
|
||||||
|
LambdaQueryWrapper<SdHbrvDic> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.in(SdHbrvDic::getHbrvcd, allowedHbrvcdSet);
|
||||||
|
riverList = sdHbrvDicMapper.selectList(wrapper);
|
||||||
for (SdHbrvDic river : riverList) {
|
for (SdHbrvDic river : riverList) {
|
||||||
if (StringUtils.hasText(river.getHbrvnm())) {
|
if (StringUtils.hasText(river.getHbrvnm())) {
|
||||||
HBRVCD_NAME_CACHE.put(river.getHbrvnm().trim().toLowerCase(), river.getHbrvcd());
|
HBRVCD_NAME_CACHE.put(river.getHbrvnm().trim().toLowerCase(), river.getHbrvcd());
|
||||||
@ -541,8 +606,8 @@ public class FishImportServiceImpl implements IFishImportService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FPSS_BH_CACHE.isEmpty()) {
|
if (FPSS_BH_CACHE.isEmpty()&&!directStcdSet.isEmpty()) {
|
||||||
List<SdFpssBH> sdFpssBHS = fpssBHMapper.selectList(null);
|
List<SdFpssBH> sdFpssBHS = fpssBHMapper.selectList(new LambdaQueryWrapper<SdFpssBH>().in(SdFpssBH::getStcd, directStcdSet));
|
||||||
for (SdFpssBH sdFpssBH : sdFpssBHS) {
|
for (SdFpssBH sdFpssBH : sdFpssBHS) {
|
||||||
if (StringUtils.hasText(sdFpssBH.getStnm())) {
|
if (StringUtils.hasText(sdFpssBH.getStnm())) {
|
||||||
FPSS_BH_CACHE.put(sdFpssBH.getStnm().trim().toLowerCase(), sdFpssBH.getStcd());
|
FPSS_BH_CACHE.put(sdFpssBH.getStnm().trim().toLowerCase(), sdFpssBH.getStcd());
|
||||||
|
|||||||
@ -46,6 +46,8 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
|||||||
Set<String> authorizedStations = getUserAuthorizedStationCodes();
|
Set<String> authorizedStations = getUserAuthorizedStationCodes();
|
||||||
if (authorizedStations != null && !authorizedStations.isEmpty()) {
|
if (authorizedStations != null && !authorizedStations.isEmpty()) {
|
||||||
wrapper.in(SdEngInfoBH::getStcd, authorizedStations);
|
wrapper.in(SdEngInfoBH::getStcd, authorizedStations);
|
||||||
|
}else if (!"admin".equals(SecurityUtils.getCurrentUsername())){
|
||||||
|
return page;
|
||||||
}
|
}
|
||||||
return this.page(page, wrapper);
|
return this.page(page, wrapper);
|
||||||
}
|
}
|
||||||
@ -82,10 +84,9 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
|||||||
Set<String> authorizedStations = getUserAuthorizedStationCodes();
|
Set<String> authorizedStations = getUserAuthorizedStationCodes();
|
||||||
if (authorizedStations != null && !authorizedStations.isEmpty()) {
|
if (authorizedStations != null && !authorizedStations.isEmpty()) {
|
||||||
wrapper.in(SdEngInfoBH::getStcd, authorizedStations);
|
wrapper.in(SdEngInfoBH::getStcd, authorizedStations);
|
||||||
|
} else if (!"admin".equals(SecurityUtils.getCurrentUsername())){
|
||||||
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
// else {
|
|
||||||
// return new ArrayList<>();
|
|
||||||
// }
|
|
||||||
|
|
||||||
return this.list(wrapper);
|
return this.list(wrapper);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -50,6 +50,8 @@ public class SdFpssBHServiceImpl extends ServiceImpl<SdFpssBHMapper, SdFpssBH> i
|
|||||||
Set<String> authorizedStations = getUserAuthorizedStationCodes();
|
Set<String> authorizedStations = getUserAuthorizedStationCodes();
|
||||||
if (authorizedStations != null && !authorizedStations.isEmpty()) {
|
if (authorizedStations != null && !authorizedStations.isEmpty()) {
|
||||||
wrapper.in(SdFpssBH::getRstcd, authorizedStations);
|
wrapper.in(SdFpssBH::getRstcd, authorizedStations);
|
||||||
|
}else if (!"admin".equals(SecurityUtils.getCurrentUsername())){
|
||||||
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
wrapper.orderByDesc(SdFpssBH::getOrderIndex);
|
wrapper.orderByDesc(SdFpssBH::getOrderIndex);
|
||||||
@ -78,7 +80,7 @@ public class SdFpssBHServiceImpl extends ServiceImpl<SdFpssBHMapper, SdFpssBH> i
|
|||||||
.orderByDesc(SdFpssBH::getOrderIndex);
|
.orderByDesc(SdFpssBH::getOrderIndex);
|
||||||
result = list(wrapper);
|
result = list(wrapper);
|
||||||
}
|
}
|
||||||
if (authorizedStations.isEmpty()) {
|
if (authorizedStations.isEmpty()&&"admin".equals(SecurityUtils.getCurrentUsername())) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -109,6 +109,8 @@ public class SdHbrvDicServiceImpl extends ServiceImpl<SdHbrvDicMapper, SdHbrvDic
|
|||||||
} else {
|
} else {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
}else if (!"admin".equals(SecurityUtils.getCurrentUsername())){
|
||||||
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
wrapper.like(hbrvnm != null && !hbrvnm.isEmpty(), SdHbrvDic::getHbrvnm, hbrvnm)
|
wrapper.like(hbrvnm != null && !hbrvnm.isEmpty(), SdHbrvDic::getHbrvnm, hbrvnm)
|
||||||
.eq(baseid != null && !baseid.isEmpty(), SdHbrvDic::getBaseid, baseid)
|
.eq(baseid != null && !baseid.isEmpty(), SdHbrvDic::getBaseid, baseid)
|
||||||
|
|||||||
@ -87,6 +87,8 @@ public class SdHydrobaseServiceImpl extends ServiceImpl<SdHydrobaseMapper, SdHyd
|
|||||||
} else {
|
} else {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
}else if (!"admin".equals(SecurityUtils.getCurrentUsername())){
|
||||||
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
// else {
|
// else {
|
||||||
// return new ArrayList<>();
|
// return new ArrayList<>();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user