diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java index 173ca66a..7a14081d 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java @@ -73,5 +73,10 @@ public class RoleDto { @ApiModelProperty("角色id") private List roleIdList; } - + @Data + @ApiModel("查询该人下的所有的角色信息") + public static class QueryRoleShows { + @ApiModelProperty("项目id") + private Long projectId; + } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java index a8e4510a..97950217 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java @@ -10,6 +10,8 @@ public class ProMemberRoleShow implements Serializable { private Long roleId; + private Integer sequence; + private Date createdAt; private Date updatedAt; @@ -42,6 +44,14 @@ public class ProMemberRoleShow implements Serializable { this.roleId = roleId; } + public Integer getSequence() { + return sequence; + } + + public void setSequence(Integer sequence) { + this.sequence = sequence; + } + public Date getCreatedAt() { return createdAt; } @@ -75,6 +85,7 @@ public class ProMemberRoleShow implements Serializable { sb.append(", id=").append(id); sb.append(", memberId=").append(memberId); sb.append(", roleId=").append(roleId); + sb.append(", sequence=").append(sequence); sb.append(", createdAt=").append(createdAt); sb.append(", updatedAt=").append(updatedAt); sb.append(", recStatus=").append(recStatus); diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java index 12b571f9..af0c3e13 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java @@ -285,6 +285,66 @@ public class ProMemberRoleShowExample { return (Criteria) this; } + public Criteria andSequenceIsNull() { + addCriterion("sequence is null"); + return (Criteria) this; + } + + public Criteria andSequenceIsNotNull() { + addCriterion("sequence is not null"); + return (Criteria) this; + } + + public Criteria andSequenceEqualTo(Integer value) { + addCriterion("sequence =", value, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceNotEqualTo(Integer value) { + addCriterion("sequence <>", value, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceGreaterThan(Integer value) { + addCriterion("sequence >", value, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceGreaterThanOrEqualTo(Integer value) { + addCriterion("sequence >=", value, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceLessThan(Integer value) { + addCriterion("sequence <", value, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceLessThanOrEqualTo(Integer value) { + addCriterion("sequence <=", value, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceIn(List values) { + addCriterion("sequence in", values, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceNotIn(List values) { + addCriterion("sequence not in", values, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceBetween(Integer value1, Integer value2) { + addCriterion("sequence between", value1, value2, "sequence"); + return (Criteria) this; + } + + public Criteria andSequenceNotBetween(Integer value1, Integer value2) { + addCriterion("sequence not between", value1, value2, "sequence"); + return (Criteria) this; + } + public Criteria andCreatedAtIsNull() { addCriterion("created_at is null"); return (Criteria) this; diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java index be62e06f..f92d163a 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java @@ -19,7 +19,24 @@ public class RoleVo { @ApiModelProperty("角色名") private String roleName; } - + @Data + @ApiModel("通过项目id查询该人下的所有的角色,包含不属于他的角色集合") + public static class JueSeByProIdLists{ + @ApiModelProperty("已添加的角色信息") + private List listBefore; + @ApiModelProperty("未添加的角色信息") + private List listAfter; + } + @Data + @ApiModel("通过项目id查询该人下的所有的角色,包含不属于他的角色") + public static class JueSeByProId{ + @ApiModelProperty("角色id") + private Long id; + @ApiModelProperty("角色名称") + private String name; + @ApiModelProperty("角色排序") + private Integer sequence; + } @Data @ApiModel("添加时返回成员信息") public static class MemberInfo{ diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java index 440eb3af..3344ec6c 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java @@ -17,6 +17,7 @@ public interface ProRoleDao extends ProRoleMapper{ List selectFirstRoleByProjectIdAndUserId(@Param("projectId") Long projectId, @Param("userId") Long userId); List selectSecondRolesByProjectId(@Param("projectId") Long projectId); + List selectSecondRolesShowByProjectId(@Param("projectId") Long projectId); List selectCareLessRoleByProjectIdAndUserId(@Param("projectId") Long projectId, @Param("userId") Long currentUserId); diff --git a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java index 1faaf820..18d1299a 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java @@ -5,6 +5,7 @@ import com.ccsens.tall.bean.po.ProRole; import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.RoleVo; import com.ccsens.tall.bean.vo.TaskVo; +import com.ccsens.util.bean.dto.QueryDto; import java.util.List; @@ -58,4 +59,11 @@ public interface IProRoleService { * @return */ List queryRoleByProjectId(Long projectId); + + /** + * 查询该人下的所有的角色信息 + * @param param + * @return + */ + RoleVo.JueSeByProIdLists queryRoleShows(QueryDto param); } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java index 4903f44b..9865253a 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -18,7 +18,9 @@ import com.ccsens.tall.persist.mapper.ProMemberRoleShowMapper; import com.ccsens.tall.persist.mapper.ProUserAttentionRoleMapper; import com.ccsens.util.CodeEnum; import com.ccsens.util.WebConstant; +import com.ccsens.util.bean.dto.QueryDto; import com.ccsens.util.exception.BaseException; +import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -252,7 +254,7 @@ public class ProRoleService implements IProRoleService { proMemberExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(projectId).andRecStatusEqualTo((byte)0); List proMembers = proMemberMapper.selectByExample(proMemberExample); Long memberId=0L; - if(proMembers.size()==1){ + if(CollectionUtil.isNotEmpty(proMembers)&&proMembers.size()==1){ memberId=proMembers.get(0).getId(); }else { throw new BaseException(CodeEnum.CHONGFU); @@ -261,22 +263,27 @@ public class ProRoleService implements IProRoleService { ProMemberRoleShowExample proMemberRoleShowExample=new ProMemberRoleShowExample(); proMemberRoleShowExample.createCriteria().andMemberIdEqualTo(memberId).andRecStatusEqualTo((byte)0); List proMemberRoleShows = proMemberRoleShowMapper.selectByExample(proMemberRoleShowExample); - if(proMemberRoleShows.size()>0){ - //则不需要从原表中导入数据 - - - }else { + if(CollectionUtil.isEmpty(proMemberRoleShows)){ //需要从原表中导入数据 ProMemberRoleExample proMemberRoleExample=new ProMemberRoleExample(); proMemberRoleExample.createCriteria().andMemberIdEqualTo(memberId).andRecStatusEqualTo((byte)0); List proMemberRoles = proMemberRoleMapper.selectByExample(proMemberRoleExample); if(CollectionUtil.isNotEmpty(proMemberRoles)){ - + ProMemberRoleShow proMemberRoleShow=new ProMemberRoleShow(); + Long finalMemberId = memberId; + Integer[] seq=new Integer[]{0}; + proMemberRoles.forEach(action->{ + proMemberRoleShow.setId(action.getId()); + proMemberRoleShow.setMemberId(finalMemberId); + proMemberRoleShow.setRoleId(action.getRoleId()); + proMemberRoleShow.setSequence(++seq[0]); + proMemberRoleShowMapper.insertSelective(proMemberRoleShow); + }); } } //查询二级角色 List memberRoleList; - memberRoleList = proRoleDao.selectSecondRolesByProjectId(projectId); + memberRoleList = proRoleDao.selectSecondRolesShowByProjectId(projectId); //TODO 查询项目配置, if(CollectionUtil.isEmpty(memberRoleList)){ @@ -635,4 +642,10 @@ public class ProRoleService implements IProRoleService { public List queryRoleByProjectId(Long projectId) { return proRoleDao.queryRoleByProjectId(projectId); } + + @Override + public RoleVo.JueSeByProIdLists queryRoleShows(QueryDto param) { + + return null; + } } diff --git a/tall/src/main/java/com/ccsens/tall/web/RoleController.java b/tall/src/main/java/com/ccsens/tall/web/RoleController.java index 41f21f80..426d55d9 100644 --- a/tall/src/main/java/com/ccsens/tall/web/RoleController.java +++ b/tall/src/main/java/com/ccsens/tall/web/RoleController.java @@ -1,15 +1,21 @@ package com.ccsens.tall.web; +import com.ccsens.cloudutil.annotation.MustLogin; +import com.ccsens.tall.annotation.MustLoginTall; import com.ccsens.tall.bean.dto.ProjectDto; import com.ccsens.tall.bean.dto.RoleDto; +import com.ccsens.tall.bean.dto.WeekMeetingDto; +import com.ccsens.tall.bean.vo.PluginVo; import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.RoleVo; import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.service.IProRoleService; import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; +import com.ccsens.util.bean.dto.QueryDto; import io.jsonwebtoken.Claims; import io.swagger.annotations.*; +import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -20,6 +26,7 @@ import java.util.List; /** * @author 逗 */ +@Slf4j @Api(tags = "角色操作相关api" ) @RestController @RequestMapping("/roles") @@ -113,5 +120,12 @@ public class RoleController { List roleByProjectIdList = proRoleService.queryRoleByProjectId(projectIdDto.getProjectId()); return JsonResponse.newInstance().ok(roleByProjectIdList); } - + @MustLoginTall + @ApiOperation(value = "获取该成员的角色信息和未添加的角色信息",notes = "") + @RequestMapping(value = "/queryRoleShows", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse queryRoleShows(@ApiParam @Validated @RequestBody QueryDto param){ + log.info("传入参数:{}", param); + RoleVo.JueSeByProIdLists jueSeByProIdLists=proRoleService.queryRoleShows(param); + return JsonResponse.newInstance().ok(jueSeByProIdLists); + } } diff --git a/tall/src/main/resources/mapper_dao/ProRoleDao.xml b/tall/src/main/resources/mapper_dao/ProRoleDao.xml index dedf8d4c..12454576 100644 --- a/tall/src/main/resources/mapper_dao/ProRoleDao.xml +++ b/tall/src/main/resources/mapper_dao/ProRoleDao.xml @@ -95,6 +95,34 @@ AND (mr.rec_status = 0 or mr.rec_status is null) AND (m.rec_status = 0 or m.rec_status is null) + select @@ -102,11 +103,11 @@ insert into t_pro_member_role_show (id, member_id, role_id, - created_at, updated_at, rec_status - ) + sequence, created_at, updated_at, + rec_status) values (#{id,jdbcType=BIGINT}, #{memberId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}, - #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT} - ) + #{sequence,jdbcType=INTEGER}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, + #{recStatus,jdbcType=TINYINT}) insert into t_pro_member_role_show @@ -120,6 +121,9 @@ role_id, + + sequence, + created_at, @@ -140,6 +144,9 @@ #{roleId,jdbcType=BIGINT}, + + #{sequence,jdbcType=INTEGER}, + #{createdAt,jdbcType=TIMESTAMP}, @@ -169,6 +176,9 @@ role_id = #{record.roleId,jdbcType=BIGINT}, + + sequence = #{record.sequence,jdbcType=INTEGER}, + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, @@ -188,6 +198,7 @@ set id = #{record.id,jdbcType=BIGINT}, member_id = #{record.memberId,jdbcType=BIGINT}, role_id = #{record.roleId,jdbcType=BIGINT}, + sequence = #{record.sequence,jdbcType=INTEGER}, created_at = #{record.createdAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, rec_status = #{record.recStatus,jdbcType=TINYINT} @@ -204,6 +215,9 @@ role_id = #{roleId,jdbcType=BIGINT}, + + sequence = #{sequence,jdbcType=INTEGER}, + created_at = #{createdAt,jdbcType=TIMESTAMP}, @@ -220,6 +234,7 @@ update t_pro_member_role_show set member_id = #{memberId,jdbcType=BIGINT}, role_id = #{roleId,jdbcType=BIGINT}, + sequence = #{sequence,jdbcType=INTEGER}, created_at = #{createdAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP}, rec_status = #{recStatus,jdbcType=TINYINT}