From e97d6e7bc4da9a62336dd57f1ad689f66b937c9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Tue, 24 Jan 2023 17:31:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=A2=E9=98=9F=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xm/core/ctrl/XmTestCasedbController.java | 104 ++++++++++++------ .../xm/core/ctrl/XmTestPlanController.java | 97 +++++++++------- 2 files changed, 125 insertions(+), 76 deletions(-) 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 7eacdcbf..bad21cea 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 @@ -10,6 +10,7 @@ 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.XmProductQxService; import com.xm.core.service.XmProductService; import com.xm.core.service.XmTestCasedbService; import io.swagger.annotations.*; @@ -47,6 +48,8 @@ public class XmTestCasedbController { @Autowired XmProductService productService; + @Autowired + XmProductQxService productQxService; Map fieldsMap = toMap(new XmTestCasedb()); @@ -106,9 +109,13 @@ public class XmTestCasedbController { } 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","您不是产品团队成员,不能创建测试用例库。"); - }; + boolean isPm=groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()); + if(!isPm){ + tips=productQxService.checkProductQx(null,xmProductDb,1,user,xmTestCasedb.getCuserid(),xmTestCasedb.getCusername(),xmTestCasedb.getCbranchId()); + if(!tips.isOk()){ + return failed(tips); + } + } xmTestCasedb.setCtime(new Date()); xmTestCasedb.setCuserid(user.getUserid()); xmTestCasedb.setCusername(user.getUsername()); @@ -143,13 +150,14 @@ public class XmTestCasedbController { return failed("data-not-exists","数据不存在,无法删除"); } User user=LoginUtils.getCurrentUserInfo(); - 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","您不是产品团队成员,不能删除测试用例库。"); - }; + boolean isPm=groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()); + if(!isPm){ + tips=productQxService.checkProductQx(null,xmProductDb,1,user,xmTestCasedbDb.getCuserid(),xmTestCasedbDb.getCusername(),xmTestCasedbDb.getCbranchId()); + if(!tips.isOk()){ + return failed(tips); + } + } xmTestCasedbService.deleteByPk(xmTestCasedb); }catch (BizException e) { tips=e.getTips(); @@ -180,13 +188,20 @@ public class XmTestCasedbController { } User user=LoginUtils.getCurrentUserInfo(); - 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","您不是产品团队成员,不能修改测试用例库。"); - }; + boolean isPm=groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()); + if(StringUtils.hasText(xmTestCasedb.getCuserid())){ + tips=productQxService.checkProductQx(null,xmProductDb,1,user,xmTestCasedb.getCuserid(),xmTestCasedb.getCusername(),xmTestCasedb.getCbranchId()); + if(!tips.isOk()){ + return failed(tips); + } + } + if(!isPm){ + tips=productQxService.checkProductQx(null,xmProductDb,1,user,xmTestCasedbDb.getCuserid(),xmTestCasedbDb.getCusername(),xmTestCasedbDb.getCbranchId()); + if(!tips.isOk()){ + return failed(tips); + } + } xmTestCasedbService.updateSomeFieldByPk(xmTestCasedb); m.put("data",xmTestCasedb); }catch (BizException e) { @@ -233,22 +248,35 @@ public class XmTestCasedbController { if(xmTestCasedbsDb==null ||xmTestCasedbsDb.size()==0){ return failed("data-0","记录已不存在"); } - List can=new ArrayList<>(); - List no=new ArrayList<>(); + XmTestCasedb xmTestCasedbDb=xmTestCasedbsDb.get(0); + if(xmTestCasedbsDb.stream().filter(k->!k.getProductId().equals(xmTestCasedbDb.getProductId())).findAny().isPresent()){ + return failed("product-0","批量操作只能在同一批产品中进行"); + } + User user = LoginUtils.getCurrentUserInfo(); - for (XmTestCasedb xmTestCasedbDb : xmTestCasedbsDb) { - Tips tips2 = new Tips("检查通过"); - if(!user.getBranchId().equals(xmTestCasedbDb.getCbranchId())){ - return failed("cbranchId-err","该测试库不属于您企业,不能修改"); + XmProduct xmProductDb=productService.getProductFromCache(xmTestCasedbDb.getProductId()); + if(StringUtils.hasText(xmTestCasedb.getCuserid())){ + tips=productQxService.checkProductQx(null,xmProductDb,1,user,xmTestCasedb.getCuserid(),xmTestCasedb.getCusername(),xmTestCasedb.getCbranchId()); + if(!tips.isOk()){ + return failed(tips); } - 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); + } + + boolean isPm=groupService.checkUserIsProductAdm(xmProductDb, user.getUserid()); + List can=new ArrayList<>(); + List no=new ArrayList<>(); + Set noTips=new HashSet<>(); + for (XmTestCasedb data : xmTestCasedbsDb) { + if(isPm){ + can.add(data); }else{ - can.add(xmTestCasedbDb); + tips=productQxService.checkProductQx(null,xmProductDb,1,user,data.getCuserid(),data.getCusername(),data.getCbranchId()); + if(!tips.isOk()){ + no.add(data); + noTips.add(tips.getMsg()); + }else{ + can.add(data); + } } } if(can.size()>0){ @@ -295,17 +323,21 @@ public class XmTestCasedbController { List can=new ArrayList<>(); List no=new ArrayList<>(); - + Set noTips=new HashSet<>(); 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{ - no.add(data); + boolean isPm=groupService.checkUserIsProductAdm(xmProductDb, user.getUserid()); + if(isPm){ + can.add(data); + }else{ + tips=productQxService.checkProductQx(null,xmProductDb,1,user,data.getCuserid(),data.getCusername(),data.getCbranchId()); + if(!tips.isOk()){ + no.add(data); + noTips.add(tips.getMsg()); + }else{ + can.add(data); + } } } List msgs=new ArrayList<>(); 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 4f467cef..0ecd41d7 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 @@ -10,6 +10,7 @@ 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.XmProductQxService; import com.xm.core.service.XmProductService; import com.xm.core.service.XmTestPlanService; import io.swagger.annotations.*; @@ -47,6 +48,9 @@ public class XmTestPlanController { @Autowired XmProductService productService; + + @Autowired + XmProductQxService productQxService; Map fieldsMap = toMap(new XmTestPlan()); @@ -138,9 +142,13 @@ public class XmTestPlanController { } 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","您不是产品团队成员,不能创建测试计划。"); - }; + boolean isPm=groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()); + if(!isPm){ + tips=productQxService.checkProductQx(null,xmProductDb,1,user,xmTestPlan.getCuserid(),xmTestPlan.getCusername(),xmTestPlan.getCbranchId()); + if(!tips.isOk()){ + return failed(tips); + } + } xmTestPlan.setCuserid(user.getUserid()); xmTestPlan.setCusername(user.getUsername()); xmTestPlan.setCtime(new Date()); @@ -177,11 +185,12 @@ public class XmTestPlanController { 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","该计划不属于您的企业创建,无权删除"); + boolean isPm=groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()); + if(!isPm){ + tips=productQxService.checkProductQx(null,xmProductDb,1,user,xmTestPlanDb.getCuserid(),xmTestPlanDb.getCusername(),xmTestPlanDb.getCbranchId()); + if(!tips.isOk()){ + return failed(tips); + } } xmTestPlanService.deleteByPk(xmTestPlan); }catch (BizException e) { @@ -212,13 +221,15 @@ public class XmTestPlanController { return failed("data-not-exists","数据不存在,无法修改"); } + 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","该计划不属于您的企业创建,无权修改"); + boolean isPm=groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()); + if(!isPm){ + tips=productQxService.checkProductQx(null,xmProductDb,1,user,xmTestPlanDb.getCuserid(),xmTestPlanDb.getCusername(),xmTestPlanDb.getCbranchId()); + if(!tips.isOk()){ + return failed(tips); + } } xmTestPlanService.updateSomeFieldByPk(xmTestPlan); m.put("data",xmTestPlan); @@ -272,23 +283,24 @@ public class XmTestPlanController { } 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","您不是产品团队成员,不能删除测试计划。"); - }; + boolean isPm=groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()); List can=new ArrayList<>(); List no=new ArrayList<>(); - + Set noTips=new HashSet<>(); for (XmTestPlan xmTestPlanDb : xmTestPlansDb) { Tips tips2 = new Tips("检查通过"); + if(isPm){ + can.add(xmTestPlanDb); + }else{ + tips2=productQxService.checkProductQx(null,xmProductDb,1,user,xmTestPlanDb.getCuserid(),xmTestPlanDb.getCusername(),xmTestPlanDb.getCbranchId()); + if(!tips2.isOk()){ + no.add(xmTestPlanDb); + noTips.add(tips2.getMsg()); + }else{ + can.add(xmTestPlanDb); + } + } - if(!user.getBranchId().equals(xmTestPlanDb.getCbranchId())){ - return failed("cbranchId-err","该计划不属于您的企业创建,无权修改"); - } - if(!tips2.isOk()){ - no.add(xmTestPlanDb); - }else{ - can.add(xmTestPlanDb); - } } if(can.size()>0){ xmTestPlanMap.put("ids",can.stream().map(i->i.getId()).collect(Collectors.toList())); @@ -299,7 +311,7 @@ public class XmTestPlanController { msgs.add(String.format("成功更新以下%s条数据",can.size())); } if(no.size()>0){ - msgs.add(String.format("以下%s个数据无权限更新",no.size())); + msgs.add(String.format("以下%s个数据无权限更新,原因【%s】",no.size(),noTips.stream().collect(Collectors.joining(";")))); } if(can.size()>0){ tips.setOkMsg(msgs.stream().collect(Collectors.joining())); @@ -337,20 +349,25 @@ public class XmTestPlanController { } 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<>(); - for (XmTestPlan data : datasDb) { - - if(user.getBranchId().equals(data.getCbranchId())){ + boolean isPm=groupService.checkUserIsProductAdm(xmProductDb,user.getUserid()); + List can=new ArrayList<>(); + List no=new ArrayList<>(); + Set noTips=new HashSet<>(); + for (XmTestPlan xmTestPlanDb : datasDb) { + Tips tips2 = new Tips("检查通过"); + if(isPm){ + can.add(xmTestPlanDb); + }else{ + tips2=productQxService.checkProductQx(null,xmProductDb,1,user,xmTestPlanDb.getCuserid(),xmTestPlanDb.getCusername(),xmTestPlanDb.getCbranchId()); + if(!tips2.isOk()){ + no.add(xmTestPlanDb); + noTips.add(tips2.getMsg()); + }else{ + can.add(xmTestPlanDb); + } + } - can.add(data); - }else{ - no.add(data); - } - } + } List msgs=new ArrayList<>(); if(can.size()>0){ xmTestPlanService.batchDelete(can); @@ -358,7 +375,7 @@ public class XmTestPlanController { } if(no.size()>0){ - msgs.add(String.format("以下%s条数据不能删除.【%s】",no.size(),no.stream().map(i-> i.getId() ).collect(Collectors.joining(",")))); + msgs.add(String.format("有%s条数据无权限删除.原因【%s】",no.size(), noTips.stream().collect(Collectors.joining(";")))); } if(can.size()>0){ tips.setOkMsg(msgs.stream().collect(Collectors.joining()));