虚拟清单增加创建者权限校验

This commit is contained in:
xiejunyu
2022-06-10 11:52:41 +08:00
parent edccaa0b51
commit 7b8707bec5
4 changed files with 66 additions and 8 deletions
@@ -119,8 +119,9 @@ public class DummyInventoryBaseEOController extends JeroController<DummyInventor
@AutoLog(value = "虚拟清单基础表-通过id删除") @AutoLog(value = "虚拟清单基础表-通过id删除")
@ApiOperation(value="虚拟清单基础表-通过id删除", notes="虚拟清单基础表-通过id删除") @ApiOperation(value="虚拟清单基础表-通过id删除", notes="虚拟清单基础表-通过id删除")
@DeleteMapping(value = "/delete") @DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) { public Result<?> delete(@RequestParam(name="id",required=true) String id,
dummyInventoryBaseEOService.deleteById(id); @RequestParam(name="cut",required=true) String cut) {
dummyInventoryBaseEOService.deleteById(id,cut);
return Result.OK("删除成功!"); return Result.OK("删除成功!");
} }
@@ -44,7 +44,7 @@ public interface IDummyInventoryBaseEOService extends IService<DummyInventoryBas
* @param id * @param id
* @return * @return
*/ */
void deleteById(String id); void deleteById(String id,String cut);
/** /**
* 批量删除 * 批量删除
@@ -113,6 +113,26 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
*/ */
@Override @Override
public void editById(DummyInventoryBaseEO dummyInventoryBaseEO) { public void editById(DummyInventoryBaseEO dummyInventoryBaseEO) {
DummyInventoryBaseEO baseEO = queryById(dummyInventoryBaseEO.getId());
List<String> createByNameList =new ArrayList<>();
if (StringUtils.isNotBlank(dummyInventoryBaseEO.getCreateBy())) {
createByNameList = Arrays.asList(dummyInventoryBaseEO.getCreateBy().split(","));
if (CollectionUtils.isNotEmpty(createByNameList)) {
// 增加创建者校验
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String loginUserName = sysUser.getUsername();
if (!baseEO.getCreateBy().contains(loginUserName)) {
if (CutEnum.CN.getValue().equals(dummyInventoryBaseEO.getCut())) {
throw new JeroBootException("当前用户非创建者,无法编辑");
} else {
throw new JeroBootException("The current user is not the creator and cannot be edited.");
}
}
}
}
Date now = new Date(); Date now = new Date();
dummyInventoryBaseEO.setUpdateTime(now); dummyInventoryBaseEO.setUpdateTime(now);
saveOrUpdate(dummyInventoryBaseEO); saveOrUpdate(dummyInventoryBaseEO);
@@ -127,7 +147,25 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
* @return * @return
*/ */
@Override @Override
public void deleteById(String id) { public void deleteById(String id,String cut) {
// 创建者校验
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String loginUserName = sysUser.getUsername();
String createById = queryById(id).getCreateBy();
List<String> creatByIdList = Arrays.asList(createById.split(","));
if (CollectionUtils.isNotEmpty(creatByIdList)) {
for(String createBy : creatByIdList){
if (!loginUserName.equals(createBy)) {
if (CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("当前用户非所有选择的数据的创建者,无法删除");
}else{
throw new JeroBootException("The current user is not the creator of all selected data, and cannot be deleted.");
}
}
}
}
removeById(id); removeById(id);
} }
@@ -247,7 +285,27 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
@Override @Override
@Transactional @Transactional
public void issue(DummyInventoryBaseEO dummyInventoryBaseEO){ public void issue(DummyInventoryBaseEO dummyInventoryBaseEO){
this.updateById(dummyInventoryBaseEO); // 增加创建者校验
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String loginUserName = sysUser.getUsername();
DummyInventoryBaseEO baseEO = queryById(dummyInventoryBaseEO.getId());
List<String> createByNameList =new ArrayList<>();
if (StringUtils.isNotBlank(baseEO.getCreateBy())) {
createByNameList = Arrays.asList(baseEO.getCreateBy().split(","));
if (CollectionUtils.isNotEmpty(createByNameList)){
if (!createByNameList.contains(loginUserName)) {
if (CutEnum.CN.getValue().equals(dummyInventoryBaseEO.getCut())) {
throw new JeroBootException("当前用户非创建者,无法发布");
} else {
throw new JeroBootException("The current user is not the creator and cannot be issued.");
}
}
}
}
// this.updateById(dummyInventoryBaseEO);
//不管有没有维护清单,都返回操作成功 //不管有没有维护清单,都返回操作成功
//发布与撤回均需要发消息(向订阅的人员发消息) //发布与撤回均需要发消息(向订阅的人员发消息)
//首次发布不发消息 //首次发布不发消息
@@ -351,7 +409,6 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
//向订阅该领域管理的人发消息和飞书 //向订阅该领域管理的人发消息和飞书
sendMsg(baseDiff, dummyContentChangeEOBaseList.get(0).getConnectId(), contentLog,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); sendMsg(baseDiff, dummyContentChangeEOBaseList.get(0).getConnectId(), contentLog,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//5.数据对比完成后.更新之前保存的dummy_inventory_info中的content_json数据,重新保存最新的数据 //5.数据对比完成后.更新之前保存的dummy_inventory_info中的content_json数据,重新保存最新的数据
if(MapUtils.isNotEmpty(baseDiff)){//列表有不同字段 if(MapUtils.isNotEmpty(baseDiff)){//列表有不同字段
String base = JSONArray.toJSONString(dummyInventoryBaseEOList); String base = JSONArray.toJSONString(dummyInventoryBaseEOList);
@@ -263,9 +263,9 @@ public class OcrRecordEOController extends JeroController<OcrRecordEO, IOcrRecor
}else { }else {
if (CutEnum.CN.getValue().equals(cut)) { if (CutEnum.CN.getValue().equals(cut)) {
return Result.error("当前用户非创建者,无法下载"); return Result.error("当前用户非创建者,无法删除");
}else{ }else{
return Result.error("The current user is not the creator and cannot be downloaded."); return Result.error("The current user is not the creator and cannot be deleted.");
} }
} }
} }