关于上级机构的冲突性测试bug修复
描述:
1.上级机构可以为空。
2.机构添加时,选择了上级机构,在未提交前,另一用户将该机构删除,然后前一用户再提交表单,提示会保存成功,本操作应该保存失败。
思路:在上级机构不为空时,保存前进行查询判断,如果保存前一刻查询该机构存在则可以保存成功,否则保存提示“保存失败,请检查机构是否存在,再重试!”;
@RequiresPermissions("sys:office:edit")
@RequestMapping(value = "save")
public String save(Office office, Model model, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:" + adminPath + "/sys/office/";}
if (!beanValidator(model, office)){
return form(office, model);
}
if("".equals(office.getParent().getName())){
officeService.save(office);
if(office.getChildDeptList()!=null){
Office childOffice = null;
for(String id : office.getChildDeptList()){
childOffice = new Office();
childOffice.setName(DictUtils.getDictLabel(id, "sys_office_common", "未知"));
childOffice.setParent(office);
childOffice.setArea(office.getArea());
childOffice.setType("2");
childOffice.setGrade(String.valueOf(Integer.valueOf(office.getGrade())+1));
childOffice.setUseable(Global.YES);
officeService.save(childOffice);
}
}
addMessage(redirectAttributes, "保存机构'" + office.getName() + "'成功");
}else{
// if(!("".equals(office.getParent().getName()))){//添加下级机构
int m = officeService.findByParentId(office.getParent().getName());
if(m==0){
addMessage(redirectAttributes, "保存失败,请检查机构是否存在,再重试!" );
}else{
officeService.save(office);
if(office.getChildDeptList()!=null){
Office childOffice = null;
for(String id : office.getChildDeptList()){
childOffice = new Office();
childOffice.setName(DictUtils.getDictLabel(id, "sys_office_common", "未知"));
childOffice.setParent(office);
childOffice.setArea(office.getArea());
childOffice.setType("2");
childOffice.setGrade(String.valueOf(Integer.valueOf(office.getGrade())+1));
childOffice.setUseable(Global.YES);
officeService.save(childOffice);
}
}
addMessage(redirectAttributes, "保存机构'" + office.getName() + "'成功");
}
}
String id = "0".equals(office.getParentId()) ? "" : office.getParentId();
return "redirect:" + adminPath + "/sys/office/forlist?id="+id+"&parentIds="+office.getParentIds();
}
关于上级机构的冲突性测试bug修复的更多相关文章
- AChecker + Selenium2对需要登录的页面进行自动化可访问性测试
前言:这段时间还算比较空闲,我准备把过去做过的有些形形色色,甚至有些奇怪的研究总结一下,也许刚好有人用的着也不一定,不枉为之抓耳挠腮的时光和浪费的电力. 名词解释: 网站可访问性测试:国内基本没有 ...
- [工作日志] 2018-12-06 重点: 解决安全测试bug
安全测试bug 业务端提出, 在修改是否给联系人发送短信接口,如果操作人和被操作的联系人不在同一个企业的情况下, 也是可以修改的. 解决办法: 加校验.
- 使用JMeter对网站并发性测试
目录结构: contents structure [+] 1. 下载JMeter 2. 启动JMeter 1) 建立线程. 2) 设置请求服务器.压力链接等信息 3) 查看运行结果 3,分析数据 Ap ...
- JMeter并发性测试
JMeter并发性测试 一.JMeter简介 JMeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jmet ...
- 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)
转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI ...
- cocos2d-x多分辨率和随后的自适应CCListView的bug修复
cocos2d-x多分辨率自适配及因此导致的CCListView的bug修复 cocos2d-x是一款众所周知的跨平台的游戏开发引擎.因为其跨平台的特性.多分辨率支持也自然就有其需求. 因此.在某一次 ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(八)mysql中文查询bug修复
写在前面的话 在测试搜索时出现的问题,mysql通过中文查询条件搜索不出数据,但是英文和数字可以搜索到记录,中文无返回记录.本文就是写一下发现问题的过程及解决方法.此bug在第一个项目中点这里还存在, ...
- 批量打回未报bug修复
半天写完了代码,从此开始了三天的bug修复... 问题背景:从合同系统那边获取数据. 1.开发完后,利用mock模拟合同数据,获取(mock中的合同)数据成功,但是在解析合同数据时出错,原因,mock ...
- IE haslayout的理解与bug修复
要想更好的理解 css, 尤其是 IE 下对 css 的渲染,haslayout 是一个非常有必要彻底弄清楚的概念.大多 IE下的显示错误,就是源于 haslayout 什么是 haslayout ? ...
随机推荐
- HDU 3691 Nubulsa Expo(全局最小割)
Problem DescriptionYou may not hear about Nubulsa, an island country on the Pacific Ocean. Nubulsa i ...
- UVa 122 Trees on the level(二叉树层序遍历)
Trees are fundamental in many branches of computer science. Current state-of-the art parallel comput ...
- 关于vue搭建项目运行出行的错误问题,简直是大坑啊
解决方法简单粗暴,非常简单粗暴 直接在根目录新建一个test文件夹就可以搞定,用来放置配置文件的 折腾了我一上午啊
- [z]protobuf实现c++与java之间的数据传递,beancopy数据到前台
[z]http://blog.csdn.net/xhyzdai/article/details/46684335 定义proto文件 option java_package = "com.w ...
- 编码补充 daty 6
---恢复内容开始--- 1. 用id求内存地址 id 查询内存地址 name = 'alex' print(id(name)) li = [1,2,3] print(id(li)) 结果: 2. ...
- Python使用filetype精确判断文件类型 (文件类型获取)
filetype.py Small and dependency free Python package to infer file type and MIME type checking the m ...
- txt写入时报错出现:正由另一进程使用,原来是多此一举的操作
//if (!File.Exists(newfilepath + "\\" + name + num + ".txt")) //{ // File.Create ...
- 继承 (js原型链)
原型链是实现继承的主要方法.基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法. 1.构造函数.原型.实例的关系: 每个构造函数都有原型属性(Prototype),指向一个原型对象(函数创 ...
- php mysql 丢失更新
php mysql 丢失更新问题,搜索整个互联网,很少有讲到,也许和php程序员出身一般都是非科班出身有关系吧. 另外php程序一般都是简单数据,很少有并发一致性问题,所以大家都没有谁专门提出这个问题 ...
- JSP概述、API、注释
JSP自带的API包含4个包,可通过Tomcat的官网查看,JSP和EL的API是分开的 javax.servlet.jsp // 包含用于Servlet/JSP容器将JSP页面翻译为Servlet的 ...