diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTestCaseController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTestCaseController.java index 48306943..3fc0edb4 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTestCaseController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTestCaseController.java @@ -7,7 +7,10 @@ import com.mdp.mybatis.PageUtils; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.mdp.swagger.ApiEntityParams; +import com.xm.core.entity.XmProduct; import com.xm.core.entity.XmTestCase; +import com.xm.core.service.XmGroupService; +import com.xm.core.service.XmProductService; import com.xm.core.service.XmTestCaseService; import io.swagger.annotations.*; import org.slf4j.Logger; @@ -38,6 +41,12 @@ public class XmTestCaseController { @Autowired private XmTestCaseService xmTestCaseService; + + @Autowired + XmGroupService groupService; + + @Autowired + XmProductService productService; Map fieldsMap = toMap(new XmTestCase()); @@ -101,7 +110,15 @@ public class XmTestCaseController { return failed("pk-exists","编号重复,请修改编号再提交"); } } + if(StringUtils.isEmpty(xmTestCase.getProductId())){ + return failed("productId-0","产品编号不能为空"); + } User user=LoginUtils.getCurrentUserInfo(); + XmProduct xmProductDb=productService.getProductFromCache(xmTestCase.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能创建测试用例。"); + }; + xmTestCase.setCuserid(user.getUserid()); xmTestCase.setLuserid(user.getUserid()); xmTestCase.setLusername(user.getUsername()); @@ -138,6 +155,11 @@ public class XmTestCaseController { if( xmTestCaseDb == null ){ return failed("data-not-exists","数据不存在,无法删除"); } + User user=LoginUtils.getCurrentUserInfo(); + XmProduct xmProductDb=productService.getProductFromCache(xmTestCaseDb.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能删除测试用例。"); + }; xmTestCaseService.deleteByPk(xmTestCase); }catch (BizException e) { tips=e.getTips(); @@ -167,6 +189,10 @@ public class XmTestCaseController { return failed("data-not-exists","数据不存在,无法修改"); } User user=LoginUtils.getCurrentUserInfo(); + XmProduct xmProductDb=productService.getProductFromCache(xmTestCaseDb.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能修改测试用例。"); + }; xmTestCase.setLuserid(user.getUserid()); xmTestCase.setLusername(user.getUsername()); xmTestCase.setLtime(new Date()); @@ -219,8 +245,17 @@ public class XmTestCaseController { List can=new ArrayList<>(); List no=new ArrayList<>(); User user = LoginUtils.getCurrentUserInfo(); + XmTestCase xmTestCaseDb2=xmTestCasesDb.get(0); + if(xmTestCasesDb.stream().filter(k->!k.getProductId().equals(xmTestCaseDb2.getProductId())).findAny().isPresent()){ + return failed("product-no-same","批量操作所有测试用例必须都在同一个产品下。"); + } + XmProduct xmProductDb=productService.getProductFromCache(xmTestCaseDb2.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能修改测试用例。"); + }; for (XmTestCase xmTestCaseDb : xmTestCasesDb) { - Tips tips2 = new Tips("检查通过"); + Tips tips2 = new Tips("检查通过"); + if(!tips2.isOk()){ no.add(xmTestCaseDb); }else{ @@ -268,7 +303,15 @@ public class XmTestCaseController { return failed("data-0","请上送待删除数据列表"); } List datasDb=xmTestCaseService.selectListByIds(xmTestCases.stream().map(i-> i.getId() ).collect(Collectors.toList())); - + User user = LoginUtils.getCurrentUserInfo(); + XmTestCase xmTestCaseDb2=datasDb.get(0); + if(datasDb.stream().filter(k->!k.getProductId().equals(xmTestCaseDb2.getProductId())).findAny().isPresent()){ + return failed("product-no-same","批量操作所有测试用例必须都在同一个产品下。"); + } + XmProduct xmProductDb=productService.getProductFromCache(xmTestCaseDb2.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能修改测试用例。"); + }; List can=new ArrayList<>(); List no=new ArrayList<>(); for (XmTestCase data : datasDb) { diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTestCasedbController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTestCasedbController.java index deac0717..7eacdcbf 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTestCasedbController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTestCasedbController.java @@ -7,7 +7,10 @@ import com.mdp.mybatis.PageUtils; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.mdp.swagger.ApiEntityParams; +import com.xm.core.entity.XmProduct; import com.xm.core.entity.XmTestCasedb; +import com.xm.core.service.XmGroupService; +import com.xm.core.service.XmProductService; import com.xm.core.service.XmTestCasedbService; import io.swagger.annotations.*; import org.slf4j.Logger; @@ -38,6 +41,12 @@ public class XmTestCasedbController { @Autowired private XmTestCasedbService xmTestCasedbService; + + @Autowired + XmGroupService groupService; + + @Autowired + XmProductService productService; Map fieldsMap = toMap(new XmTestCasedb()); @@ -96,6 +105,10 @@ public class XmTestCasedbController { return failed("productId-0","产品编号不能为空"); } User user=LoginUtils.getCurrentUserInfo(); + XmProduct xmProductDb=productService.getProductFromCache(xmTestCasedb.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能创建测试用例库。"); + }; xmTestCasedb.setCtime(new Date()); xmTestCasedb.setCuserid(user.getUserid()); xmTestCasedb.setCusername(user.getUsername()); @@ -133,6 +146,10 @@ public class XmTestCasedbController { if(!user.getBranchId().equals(xmTestCasedbDb.getCbranchId())){ return failed("cbranchId-err","该测试库不属于您企业,不能删除"); } + XmProduct xmProductDb=productService.getProductFromCache(xmTestCasedbDb.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能删除测试用例库。"); + }; xmTestCasedbService.deleteByPk(xmTestCasedb); }catch (BizException e) { tips=e.getTips(); @@ -166,6 +183,10 @@ public class XmTestCasedbController { if(!user.getBranchId().equals(xmTestCasedbDb.getCbranchId())){ return failed("cbranchId-err","该测试库不属于您企业,不能修改"); } + XmProduct xmProductDb=productService.getProductFromCache(xmTestCasedbDb.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能修改测试用例库。"); + }; xmTestCasedbService.updateSomeFieldByPk(xmTestCasedb); m.put("data",xmTestCasedb); }catch (BizException e) { @@ -220,6 +241,10 @@ public class XmTestCasedbController { if(!user.getBranchId().equals(xmTestCasedbDb.getCbranchId())){ return failed("cbranchId-err","该测试库不属于您企业,不能修改"); } + XmProduct xmProductDb=productService.getProductFromCache(xmTestCasedbDb.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能修改测试用例库。"); + }; if(!tips2.isOk()){ no.add(xmTestCasedbDb); }else{ @@ -273,6 +298,10 @@ public class XmTestCasedbController { User user=LoginUtils.getCurrentUserInfo(); for (XmTestCasedb data : datasDb) { + XmProduct xmProductDb=productService.getProductFromCache(data.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能删除测试用例库。"); + }; if(user.getBranchId().equals(data.getCbranchId())){ can.add(data); }else{ diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTestPlanCaseController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTestPlanCaseController.java index aac6f01f..eda3b44a 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTestPlanCaseController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTestPlanCaseController.java @@ -8,13 +8,8 @@ import com.mdp.mybatis.PageUtils; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.mdp.swagger.ApiEntityParams; -import com.xm.core.entity.ImportFromTestCaseVo; -import com.xm.core.entity.XmTestCase; -import com.xm.core.entity.XmTestPlan; -import com.xm.core.entity.XmTestPlanCase; -import com.xm.core.service.XmTestCaseService; -import com.xm.core.service.XmTestPlanCaseService; -import com.xm.core.service.XmTestPlanService; +import com.xm.core.entity.*; +import com.xm.core.service.*; import io.swagger.annotations.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,6 +46,12 @@ public class XmTestPlanCaseController { @Autowired XmTestCaseService xmTestCaseService; + + @Autowired + XmGroupService groupService; + + @Autowired + XmProductService productService; Map fieldsMap = toMap(new XmTestPlanCase()); @@ -201,15 +202,18 @@ public class XmTestPlanCaseController { if("2".equals(xmTestPlanDb.getStatus())){ return ResponseHelper.failed("status-2","测试计划已结束"); } - + User user=LoginUtils.getCurrentUserInfo(); + XmProduct xmProductDb=productService.getProductFromCache(xmTestPlanDb.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能操作。"); + }; //过滤掉已存在的测试用例 同一个用例不能重复添加到同一个计划中 List planCasesDb=this.xmTestPlanCaseService.selectListByCaseIdsAndPlanId(importFromTestCaseVo.getPlanId(),importFromTestCaseVo.getCaseIds() ); if(planCasesDb!=null && planCasesDb.size()>0){ casesDb=casesDb.stream().filter(k->!planCasesDb.stream().filter(i->i.getCaseId().equals(k.getId())).findAny().isPresent()).collect(Collectors.toList()); } if(casesDb.size()>0){ - User user=LoginUtils.getCurrentUserInfo(); - List planCases=new ArrayList<>(); + List planCases=new ArrayList<>(); for (XmTestCase xmTestCase : casesDb) { XmTestPlanCase xmTestPlanCase=new XmTestPlanCase(); BeanUtils.copyProperties(xmTestCase,xmTestPlanCase); diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTestPlanController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTestPlanController.java index 219e0c41..f224562b 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTestPlanController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTestPlanController.java @@ -7,7 +7,10 @@ import com.mdp.mybatis.PageUtils; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.mdp.swagger.ApiEntityParams; +import com.xm.core.entity.XmProduct; import com.xm.core.entity.XmTestPlan; +import com.xm.core.service.XmGroupService; +import com.xm.core.service.XmProductService; import com.xm.core.service.XmTestPlanService; import io.swagger.annotations.*; import org.slf4j.Logger; @@ -38,6 +41,12 @@ public class XmTestPlanController { @Autowired private XmTestPlanService xmTestPlanService; + + @Autowired + XmGroupService groupService; + + @Autowired + XmProductService productService; Map fieldsMap = toMap(new XmTestPlan()); @@ -104,6 +113,10 @@ public class XmTestPlanController { return failed("casedbId-0","测试用例库编号不能为空"); } User user=LoginUtils.getCurrentUserInfo(); + XmProduct xmProductDb=productService.getProductFromCache(xmTestPlan.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmTestPlan.getProductId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能创建测试计划。"); + }; xmTestPlan.setCuserid(user.getUserid()); xmTestPlan.setCusername(user.getUsername()); xmTestPlan.setCtime(new Date()); @@ -137,9 +150,14 @@ public class XmTestPlanController { if( xmTestPlanDb == null ){ return failed("data-not-exists","数据不存在,无法删除"); } - User user=LoginUtils.getCurrentUserInfo(); - if(!user.getBranchId().equals(xmTestPlanDb.getCbranchId())){ - return failed("cbranchId-err","该计划不属于您的企业创建,无权删除"); + + User user=LoginUtils.getCurrentUserInfo(); + XmProduct xmProductDb=productService.getProductFromCache(xmTestPlanDb.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能删除测试计划。"); + }; + if(!user.getBranchId().equals(xmTestPlanDb.getCbranchId())){ + return failed("cbranchId-err","该计划不属于您的企业创建,无权删除"); } xmTestPlanService.deleteByPk(xmTestPlan); }catch (BizException e) { @@ -169,8 +187,13 @@ public class XmTestPlanController { if( xmTestPlanDb == null ){ return failed("data-not-exists","数据不存在,无法修改"); } + User user=LoginUtils.getCurrentUserInfo(); - if(!user.getBranchId().equals(xmTestPlanDb.getCbranchId())){ + XmProduct xmProductDb=productService.getProductFromCache(xmTestPlanDb.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能删除测试计划。"); + }; + if(!user.getBranchId().equals(xmTestPlanDb.getCbranchId())){ return failed("cbranchId-err","该计划不属于您的企业创建,无权修改"); } xmTestPlanService.updateSomeFieldByPk(xmTestPlan); @@ -219,9 +242,18 @@ public class XmTestPlanController { if(xmTestPlansDb==null ||xmTestPlansDb.size()==0){ return failed("data-0","记录已不存在"); } + XmTestPlan xmTestPlanDb2=xmTestPlansDb.get(0); + if(xmTestPlansDb.stream().filter(k->!k.getProductId().equals(xmTestPlanDb2.getProductId())).findAny().isPresent()){ + return failed("product-no-same","批量操作只能操作同一个产品下的测试计划。"); + } + User user = LoginUtils.getCurrentUserInfo(); + XmProduct xmProductDb=productService.getProductFromCache(xmTestPlanDb2.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能删除测试计划。"); + }; List can=new ArrayList<>(); List no=new ArrayList<>(); - User user = LoginUtils.getCurrentUserInfo(); + for (XmTestPlan xmTestPlanDb : xmTestPlansDb) { Tips tips2 = new Tips("检查通过"); @@ -275,12 +307,21 @@ public class XmTestPlanController { return failed("data-0","请上送待删除数据列表"); } List datasDb=xmTestPlanService.selectListByIds(xmTestPlans.stream().map(i-> i.getId() ).collect(Collectors.toList())); - + XmTestPlan xmTestPlanDb2=datasDb.get(0); + if(datasDb.stream().filter(k->!k.getProductId().equals(xmTestPlanDb2.getProductId())).findAny().isPresent()){ + return failed("product-no-same","批量操作只能操作同一个产品下的测试计划。"); + } + User user = LoginUtils.getCurrentUserInfo(); + XmProduct xmProductDb=productService.getProductFromCache(xmTestPlanDb2.getProductId()); + if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()) && !groupService.checkUserExistsProductGroup(xmProductDb.getId(),user.getUserid())){ + return failed("no-in-pteam","您不是产品团队成员,不能删除测试计划。"); + }; List can=new ArrayList<>(); List no=new ArrayList<>(); - User user=LoginUtils.getCurrentUserInfo(); for (XmTestPlan data : datasDb) { - if(user.getBranchId().equals(data.getCbranchId())){ + + if(user.getBranchId().equals(data.getCbranchId())){ + can.add(data); }else{ no.add(data);