diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java index cdbbe01f..3d35c698 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java @@ -176,6 +176,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { List documentSplitInfos = queryByList(documentSplitInfo); ids = documentSplitInfos.stream().map(DocumentSplitInfo::getId).collect(Collectors.toList()); } + // 校验权限 + checkOut(ids); + updateWrapper.in(SarFileSplitInfoEO::getId, ids); SysUser sysUser = sysUserService.getById(documentSplitInfo.getCreateBy()); updateWrapper.set(SarFileSplitInfoEO::getAuthor, documentSplitInfo.getCreateBy()); @@ -183,6 +186,26 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { sarFileSplitInfoService.update(updateWrapper); } + private void checkOut(List ids) { + // 登陆人信息 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (sysUser.getRoleIds().contains("admin")){ + return; + } + List sarFileSplitInfoEOS = sarFileSplitInfoService.listByIds(ids); + for (SarFileSplitInfoEO sarFileSplitInfoEO : sarFileSplitInfoEOS) { + String createBy = sarFileSplitInfoEO.getCreateBy(); + String author = sarFileSplitInfoEO.getAuthor(); + if (!sysUser.getUsername().equals(createBy) || !sysUser.getId().equals(author)){ + if(LanguageEnum.CN.getValue().equals(MessageUtils.getLanguage().getValue())) { + throw new JeroBootException("只能更改有操作权限的数据!"); + }else{ + throw new JeroBootException("You can change only the data that you have permission to operate!"); + } + } + } + } + @Override public IPage> queryDocumentSplitDetail(Map parameter) { // 查询全部字段列表