diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupUserController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupUserController.java index ba6319a4..b192b6e3 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupUserController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupUserController.java @@ -198,11 +198,56 @@ public class XmProjectGroupUserController { @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}") }) @RequestMapping(value="/del",method=RequestMethod.POST) - public Map delXmProjectGroupUser(@RequestBody XmProjectGroupUser xmProjectGroupUser){ + public Map delXmProjectGroupUser(@RequestBody XmProjectGroupUserVo gu){ Map m = new HashMap<>(); Tips tips=new Tips("成功删除一条数据"); try{ - xmProjectGroupUserService.deleteByPk(xmProjectGroupUser); + if(!StringUtils.hasText(gu.getGroupId())||!StringUtils.hasText(gu.getUserid())){ + return ResponseHelper.failed("pk-0","请上送小组编号,用户编号groupId,userid"); + } + gu=this.xmProjectGroupUserService.selectOneObject(gu); + + User user=LoginUtils.getCurrentUserInfo(); + if("1".equals(pgClass)){ + + if(!StringUtils.hasText(gu.getProductId())){ + return ResponseHelper.failed("productId-0","请上送小组归属产品编号"); + } + XmProduct xmProduct=this.xmProductService.getProductFromCache(gu.getProductId()); + if(xmProduct==null){ + return ResponseHelper.failed("product-0","产品已不存在"); + } + if(!xmProjectGroupService.checkUserIsProductAdm(xmProduct, user.getUserid())){ + XmProjectGroupVo xmProjectGroupVo=this.xmProjectGroupService.getProductGroupFromCache(xmProduct.getId(),gu.getGroupId()); + if(xmProjectGroupVo==null){ + return ResponseHelper.failed("group-0","小组已不存在"); + } + boolean isHead=xmProjectGroupService.checkUserIsTeamHeadOrAss(xmProjectGroupVo,user.getUserid()); + if(isHead==false){ + return ResponseHelper.failed("not-leader-ass","组长、副组长、组长助理以上人员可以添加小组成员。"); + } + } + }else{ + if(!StringUtils.hasText(gu.getProjectId())){ + return ResponseHelper.failed("projectId-0","请上送小组归属项目编号"); + } + + XmProject xmProject=this.xmProjectService.getProjectFromCache(gu.getProjectId()); + if(xmProject==null){ + return ResponseHelper.failed("product-0","产品已不存在"); + } + if(!xmProjectGroupService.checkUserIsProjectAdm(xmProject, user.getUserid())){ + XmProjectGroupVo xmProjectGroupVo=this.xmProjectGroupService.getProductGroupFromCache(xmProject.getId(),gu.getGroupId()); + if(xmProjectGroupVo==null){ + return ResponseHelper.failed("group-0","小组已不存在"); + } + boolean isHead=xmProjectGroupService.checkUserIsTeamHeadOrAss(xmProjectGroupVo,user.getUserid()); + if(isHead==false){ + return ResponseHelper.failed("not-leader-ass","组长、副组长、组长助理以上人员可以添加小组成员。"); + } + } + } + xmProjectGroupUserService.deleteByPk(gu); }catch (BizException e) { tips=e.getTips(); logger.error("",e); diff --git a/xm-core/src/main/java/com/xm/core/entity/XmProjectGroupUser.java b/xm-core/src/main/java/com/xm/core/entity/XmProjectGroupUser.java index 51f2ac54..d1f2bc86 100644 --- a/xm-core/src/main/java/com/xm/core/entity/XmProjectGroupUser.java +++ b/xm-core/src/main/java/com/xm/core/entity/XmProjectGroupUser.java @@ -7,9 +7,9 @@ import java.util.Date; /** * 组织 com 顶级模块 xm 大模块 core 小模块
* 实体 XmProjectGroupUser所有属性名:
- * joinTime,groupId,userid,username,outTime,status,obranchId,isPri,seqNo,projectId,productId;
+ * joinTime,groupId,userid,username,outTime,status,obranchId,isPri,seqNo,projectId,productId,pgClass;
* 表 xm_project_group_user xm_project_group_user的所有字段名:
- * join_time,group_id,userid,username,out_time,status,obranch_id,is_pri,seq_no,project_id,product_id;
+ * join_time,group_id,userid,username,out_time,status,obranch_id,is_pri,seq_no,project_id,product_id,pg_class;
* 当前主键(包括多主键):
* group_id,userid;
*/ @@ -51,6 +51,9 @@ public class XmProjectGroupUser implements java.io.Serializable { @ApiModelProperty(notes="产品编号",allowEmptyValue=true,example="",allowableValues="") String productId; + + @ApiModelProperty(notes="0-项目,1-产品",allowEmptyValue=true,example="",allowableValues="") + String pgClass; /**团队编号,团队成员编号**/ public XmProjectGroupUser(String groupId,String userid) { @@ -128,6 +131,12 @@ public class XmProjectGroupUser implements java.io.Serializable { public void setProductId(String productId) { this.productId = productId; } + /** + * 0-项目,1-产品 + **/ + public void setPgClass(String pgClass) { + this.pgClass = pgClass; + } /** * 加入时间 @@ -195,5 +204,11 @@ public class XmProjectGroupUser implements java.io.Serializable { public String getProductId() { return this.productId; } + /** + * 0-项目,1-产品 + **/ + public String getPgClass() { + return this.pgClass; + } } \ No newline at end of file diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml index b5271143..39a60a74 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectGroupUserMapper.xml @@ -88,7 +88,7 @@ insert into xm_project_group_user( ) values ( - #{joinTime},#{groupId},#{userid},#{username},#{outTime},#{status},#{obranchId},#{isPri},#{seqNo},#{projectId},#{productId} + #{joinTime},#{groupId},#{userid},#{username},#{outTime},#{status},#{obranchId},#{isPri},#{seqNo},#{projectId},#{productId},#{pgClass} ) @@ -151,7 +151,7 @@ - join_time,group_id,userid,username,out_time,status,obranch_id,is_pri,seq_no,project_id,product_id + join_time,group_id,userid,username,out_time,status,obranch_id,is_pri,seq_no,project_id,product_id,pg_class @@ -167,6 +167,7 @@ and res.seq_no = #{seqNo} and res.project_id = #{projectId} and res.product_id = #{productId} + and res.pg_class = #{pgClass} @@ -178,7 +179,8 @@ is_pri = #{isPri}, seq_no = #{seqNo}, project_id = #{projectId}, - product_id = #{productId} + product_id = #{productId}, + pg_class = #{pgClass} join_time = #{joinTime}, @@ -190,6 +192,7 @@ seq_no = #{seqNo}, project_id = #{projectId}, product_id = #{productId}, + pg_class = #{pgClass}, @@ -201,6 +204,7 @@ is_pri = #{item.isPri}, seq_no = #{item.seqNo}, project_id = #{item.projectId}, - product_id = #{item.productId} + product_id = #{item.productId}, + pg_class = #{item.pgClass} \ No newline at end of file