Browse Source

提交

recovery
wang0018 5 years ago
parent
commit
fad010ef88
  1. 7
      tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java
  2. 11
      tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java
  3. 60
      tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java
  4. 19
      tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java
  5. 1
      tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java
  6. 8
      tall/src/main/java/com/ccsens/tall/service/IProRoleService.java
  7. 29
      tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
  8. 16
      tall/src/main/java/com/ccsens/tall/web/RoleController.java
  9. 28
      tall/src/main/resources/mapper_dao/ProRoleDao.xml
  10. 25
      tall/src/main/resources/mapper_raw/ProMemberRoleShowMapper.xml

7
tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java

@ -73,5 +73,10 @@ public class RoleDto {
@ApiModelProperty("角色id") @ApiModelProperty("角色id")
private List<Long> roleIdList; private List<Long> roleIdList;
} }
@Data
@ApiModel("查询该人下的所有的角色信息")
public static class QueryRoleShows {
@ApiModelProperty("项目id")
private Long projectId;
}
} }

11
tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShow.java

@ -10,6 +10,8 @@ public class ProMemberRoleShow implements Serializable {
private Long roleId; private Long roleId;
private Integer sequence;
private Date createdAt; private Date createdAt;
private Date updatedAt; private Date updatedAt;
@ -42,6 +44,14 @@ public class ProMemberRoleShow implements Serializable {
this.roleId = roleId; this.roleId = roleId;
} }
public Integer getSequence() {
return sequence;
}
public void setSequence(Integer sequence) {
this.sequence = sequence;
}
public Date getCreatedAt() { public Date getCreatedAt() {
return createdAt; return createdAt;
} }
@ -75,6 +85,7 @@ public class ProMemberRoleShow implements Serializable {
sb.append(", id=").append(id); sb.append(", id=").append(id);
sb.append(", memberId=").append(memberId); sb.append(", memberId=").append(memberId);
sb.append(", roleId=").append(roleId); sb.append(", roleId=").append(roleId);
sb.append(", sequence=").append(sequence);
sb.append(", createdAt=").append(createdAt); sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt); sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus); sb.append(", recStatus=").append(recStatus);

60
tall/src/main/java/com/ccsens/tall/bean/po/ProMemberRoleShowExample.java

@ -285,6 +285,66 @@ public class ProMemberRoleShowExample {
return (Criteria) this; 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<Integer> values) {
addCriterion("sequence in", values, "sequence");
return (Criteria) this;
}
public Criteria andSequenceNotIn(List<Integer> 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() { public Criteria andCreatedAtIsNull() {
addCriterion("created_at is null"); addCriterion("created_at is null");
return (Criteria) this; return (Criteria) this;

19
tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java

@ -19,7 +19,24 @@ public class RoleVo {
@ApiModelProperty("角色名") @ApiModelProperty("角色名")
private String roleName; private String roleName;
} }
@Data
@ApiModel("通过项目id查询该人下的所有的角色,包含不属于他的角色集合")
public static class JueSeByProIdLists{
@ApiModelProperty("已添加的角色信息")
private List<JueSeByProId> listBefore;
@ApiModelProperty("未添加的角色信息")
private List<JueSeByProId> listAfter;
}
@Data
@ApiModel("通过项目id查询该人下的所有的角色,包含不属于他的角色")
public static class JueSeByProId{
@ApiModelProperty("角色id")
private Long id;
@ApiModelProperty("角色名称")
private String name;
@ApiModelProperty("角色排序")
private Integer sequence;
}
@Data @Data
@ApiModel("添加时返回成员信息") @ApiModel("添加时返回成员信息")
public static class MemberInfo{ public static class MemberInfo{

1
tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java

@ -17,6 +17,7 @@ public interface ProRoleDao extends ProRoleMapper{
List<ProRole> selectFirstRoleByProjectIdAndUserId(@Param("projectId") Long projectId, @Param("userId") Long userId); List<ProRole> selectFirstRoleByProjectIdAndUserId(@Param("projectId") Long projectId, @Param("userId") Long userId);
List<ProjectVo.RoleInfo> selectSecondRolesByProjectId(@Param("projectId") Long projectId); List<ProjectVo.RoleInfo> selectSecondRolesByProjectId(@Param("projectId") Long projectId);
List<ProjectVo.RoleInfo> selectSecondRolesShowByProjectId(@Param("projectId") Long projectId);
List<Long> selectCareLessRoleByProjectIdAndUserId(@Param("projectId") Long projectId, @Param("userId") Long currentUserId); List<Long> selectCareLessRoleByProjectIdAndUserId(@Param("projectId") Long projectId, @Param("userId") Long currentUserId);

8
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.ProjectVo;
import com.ccsens.tall.bean.vo.RoleVo; import com.ccsens.tall.bean.vo.RoleVo;
import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.util.bean.dto.QueryDto;
import java.util.List; import java.util.List;
@ -58,4 +59,11 @@ public interface IProRoleService {
* @return * @return
*/ */
List<RoleVo.RoleByProjectId> queryRoleByProjectId(Long projectId); List<RoleVo.RoleByProjectId> queryRoleByProjectId(Long projectId);
/**
* 查询该人下的所有的角色信息
* @param param
* @return
*/
RoleVo.JueSeByProIdLists queryRoleShows(QueryDto<RoleDto.QueryRoleShows> param);
} }

29
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.tall.persist.mapper.ProUserAttentionRoleMapper;
import com.ccsens.util.CodeEnum; import com.ccsens.util.CodeEnum;
import com.ccsens.util.WebConstant; import com.ccsens.util.WebConstant;
import com.ccsens.util.bean.dto.QueryDto;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
@ -252,7 +254,7 @@ public class ProRoleService implements IProRoleService {
proMemberExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(projectId).andRecStatusEqualTo((byte)0); proMemberExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(projectId).andRecStatusEqualTo((byte)0);
List<ProMember> proMembers = proMemberMapper.selectByExample(proMemberExample); List<ProMember> proMembers = proMemberMapper.selectByExample(proMemberExample);
Long memberId=0L; Long memberId=0L;
if(proMembers.size()==1){ if(CollectionUtil.isNotEmpty(proMembers)&&proMembers.size()==1){
memberId=proMembers.get(0).getId(); memberId=proMembers.get(0).getId();
}else { }else {
throw new BaseException(CodeEnum.CHONGFU); throw new BaseException(CodeEnum.CHONGFU);
@ -261,22 +263,27 @@ public class ProRoleService implements IProRoleService {
ProMemberRoleShowExample proMemberRoleShowExample=new ProMemberRoleShowExample(); ProMemberRoleShowExample proMemberRoleShowExample=new ProMemberRoleShowExample();
proMemberRoleShowExample.createCriteria().andMemberIdEqualTo(memberId).andRecStatusEqualTo((byte)0); proMemberRoleShowExample.createCriteria().andMemberIdEqualTo(memberId).andRecStatusEqualTo((byte)0);
List<ProMemberRoleShow> proMemberRoleShows = proMemberRoleShowMapper.selectByExample(proMemberRoleShowExample); List<ProMemberRoleShow> proMemberRoleShows = proMemberRoleShowMapper.selectByExample(proMemberRoleShowExample);
if(proMemberRoleShows.size()>0){ if(CollectionUtil.isEmpty(proMemberRoleShows)){
//则不需要从原表中导入数据
}else {
//需要从原表中导入数据 //需要从原表中导入数据
ProMemberRoleExample proMemberRoleExample=new ProMemberRoleExample(); ProMemberRoleExample proMemberRoleExample=new ProMemberRoleExample();
proMemberRoleExample.createCriteria().andMemberIdEqualTo(memberId).andRecStatusEqualTo((byte)0); proMemberRoleExample.createCriteria().andMemberIdEqualTo(memberId).andRecStatusEqualTo((byte)0);
List<ProMemberRole> proMemberRoles = proMemberRoleMapper.selectByExample(proMemberRoleExample); List<ProMemberRole> proMemberRoles = proMemberRoleMapper.selectByExample(proMemberRoleExample);
if(CollectionUtil.isNotEmpty(proMemberRoles)){ 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<ProjectVo.RoleInfo> memberRoleList; List<ProjectVo.RoleInfo> memberRoleList;
memberRoleList = proRoleDao.selectSecondRolesByProjectId(projectId); memberRoleList = proRoleDao.selectSecondRolesShowByProjectId(projectId);
//TODO 查询项目配置, //TODO 查询项目配置,
if(CollectionUtil.isEmpty(memberRoleList)){ if(CollectionUtil.isEmpty(memberRoleList)){
@ -635,4 +642,10 @@ public class ProRoleService implements IProRoleService {
public List<RoleVo.RoleByProjectId> queryRoleByProjectId(Long projectId) { public List<RoleVo.RoleByProjectId> queryRoleByProjectId(Long projectId) {
return proRoleDao.queryRoleByProjectId(projectId); return proRoleDao.queryRoleByProjectId(projectId);
} }
@Override
public RoleVo.JueSeByProIdLists queryRoleShows(QueryDto<RoleDto.QueryRoleShows> param) {
return null;
}
} }

16
tall/src/main/java/com/ccsens/tall/web/RoleController.java

@ -1,15 +1,21 @@
package com.ccsens.tall.web; 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.ProjectDto;
import com.ccsens.tall.bean.dto.RoleDto; 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.ProjectVo;
import com.ccsens.tall.bean.vo.RoleVo; import com.ccsens.tall.bean.vo.RoleVo;
import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.service.IProRoleService; import com.ccsens.tall.service.IProRoleService;
import com.ccsens.util.JsonResponse; import com.ccsens.util.JsonResponse;
import com.ccsens.util.WebConstant; import com.ccsens.util.WebConstant;
import com.ccsens.util.bean.dto.QueryDto;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -20,6 +26,7 @@ import java.util.List;
/** /**
* @author * @author
*/ */
@Slf4j
@Api(tags = "角色操作相关api" ) @Api(tags = "角色操作相关api" )
@RestController @RestController
@RequestMapping("/roles") @RequestMapping("/roles")
@ -113,5 +120,12 @@ public class RoleController {
List<RoleVo.RoleByProjectId> roleByProjectIdList = proRoleService.queryRoleByProjectId(projectIdDto.getProjectId()); List<RoleVo.RoleByProjectId> roleByProjectIdList = proRoleService.queryRoleByProjectId(projectIdDto.getProjectId());
return JsonResponse.newInstance().ok(roleByProjectIdList); return JsonResponse.newInstance().ok(roleByProjectIdList);
} }
@MustLoginTall
@ApiOperation(value = "获取该成员的角色信息和未添加的角色信息",notes = "")
@RequestMapping(value = "/queryRoleShows", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<RoleVo.JueSeByProIdLists> queryRoleShows(@ApiParam @Validated @RequestBody QueryDto<RoleDto.QueryRoleShows> param){
log.info("传入参数:{}", param);
RoleVo.JueSeByProIdLists jueSeByProIdLists=proRoleService.queryRoleShows(param);
return JsonResponse.newInstance().ok(jueSeByProIdLists);
}
} }

28
tall/src/main/resources/mapper_dao/ProRoleDao.xml

@ -95,6 +95,34 @@
AND (mr.rec_status = 0 or mr.rec_status is null) AND (mr.rec_status = 0 or mr.rec_status is null)
AND (m.rec_status = 0 or m.rec_status is null) AND (m.rec_status = 0 or m.rec_status is null)
</select> </select>
<select id="selectSecondRolesShowByProjectId" parameterType="java.util.Map"
resultMap="resultMap_ProRoleInfo">
select
pr.id as rId,
pr.name as rName,
pr.parent_id as parentId,
m.id as mId,
m.nickname as mName,
m.phone as mPhone,
m.user_id as mUserId,
m.stakeholder_id as stakeholderId,
if((SELECT `name` FROM t_pro_role WHERE id = pr.parent_id) = 'ProjectVirtualRole',1,0) as projectRole,
pr.relevance_project_id as relevanceProjectId,
(SELECT `name` FROM t_sys_project WHERE id = pr.relevance_project_id) as relevanceProjectName
from
t_pro_role pr LEFT JOIN t_pro_member_role_show mr ON mr.role_id = pr.id
LEFT JOIN t_pro_member m ON mr.member_id = m.id
where
pr.project_id = #{projectId}
and
(SELECT name FROM t_pro_role r WHERE pr.parent_id = r.id) in ('PM','Member','ProjectVirtualRole')
AND
pr.name not IN ('全体成员','观众','MVP')
AND
pr.rec_status = 0
AND (mr.rec_status = 0 or mr.rec_status is null)
AND (m.rec_status = 0 or m.rec_status is null)
</select>
<select id="selectCareLessRoleByProjectIdAndUserId" parameterType="java.util.Map" <select id="selectCareLessRoleByProjectIdAndUserId" parameterType="java.util.Map"
resultType="Long"> resultType="Long">

25
tall/src/main/resources/mapper_raw/ProMemberRoleShowMapper.xml

@ -5,6 +5,7 @@
<id column="id" jdbcType="BIGINT" property="id" /> <id column="id" jdbcType="BIGINT" property="id" />
<result column="member_id" jdbcType="BIGINT" property="memberId" /> <result column="member_id" jdbcType="BIGINT" property="memberId" />
<result column="role_id" jdbcType="BIGINT" property="roleId" /> <result column="role_id" jdbcType="BIGINT" property="roleId" />
<result column="sequence" jdbcType="INTEGER" property="sequence" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" /> <result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" /> <result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" /> <result column="rec_status" jdbcType="TINYINT" property="recStatus" />
@ -68,7 +69,7 @@
</where> </where>
</sql> </sql>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, member_id, role_id, created_at, updated_at, rec_status id, member_id, role_id, sequence, created_at, updated_at, rec_status
</sql> </sql>
<select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProMemberRoleShowExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProMemberRoleShowExample" resultMap="BaseResultMap">
select select
@ -102,11 +103,11 @@
</delete> </delete>
<insert id="insert" parameterType="com.ccsens.tall.bean.po.ProMemberRoleShow"> <insert id="insert" parameterType="com.ccsens.tall.bean.po.ProMemberRoleShow">
insert into t_pro_member_role_show (id, member_id, role_id, 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}, 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> </insert>
<insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProMemberRoleShow"> <insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProMemberRoleShow">
insert into t_pro_member_role_show insert into t_pro_member_role_show
@ -120,6 +121,9 @@
<if test="roleId != null"> <if test="roleId != null">
role_id, role_id,
</if> </if>
<if test="sequence != null">
sequence,
</if>
<if test="createdAt != null"> <if test="createdAt != null">
created_at, created_at,
</if> </if>
@ -140,6 +144,9 @@
<if test="roleId != null"> <if test="roleId != null">
#{roleId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT},
</if> </if>
<if test="sequence != null">
#{sequence,jdbcType=INTEGER},
</if>
<if test="createdAt != null"> <if test="createdAt != null">
#{createdAt,jdbcType=TIMESTAMP}, #{createdAt,jdbcType=TIMESTAMP},
</if> </if>
@ -169,6 +176,9 @@
<if test="record.roleId != null"> <if test="record.roleId != null">
role_id = #{record.roleId,jdbcType=BIGINT}, role_id = #{record.roleId,jdbcType=BIGINT},
</if> </if>
<if test="record.sequence != null">
sequence = #{record.sequence,jdbcType=INTEGER},
</if>
<if test="record.createdAt != null"> <if test="record.createdAt != null">
created_at = #{record.createdAt,jdbcType=TIMESTAMP}, created_at = #{record.createdAt,jdbcType=TIMESTAMP},
</if> </if>
@ -188,6 +198,7 @@
set id = #{record.id,jdbcType=BIGINT}, set id = #{record.id,jdbcType=BIGINT},
member_id = #{record.memberId,jdbcType=BIGINT}, member_id = #{record.memberId,jdbcType=BIGINT},
role_id = #{record.roleId,jdbcType=BIGINT}, role_id = #{record.roleId,jdbcType=BIGINT},
sequence = #{record.sequence,jdbcType=INTEGER},
created_at = #{record.createdAt,jdbcType=TIMESTAMP}, created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT} rec_status = #{record.recStatus,jdbcType=TINYINT}
@ -204,6 +215,9 @@
<if test="roleId != null"> <if test="roleId != null">
role_id = #{roleId,jdbcType=BIGINT}, role_id = #{roleId,jdbcType=BIGINT},
</if> </if>
<if test="sequence != null">
sequence = #{sequence,jdbcType=INTEGER},
</if>
<if test="createdAt != null"> <if test="createdAt != null">
created_at = #{createdAt,jdbcType=TIMESTAMP}, created_at = #{createdAt,jdbcType=TIMESTAMP},
</if> </if>
@ -220,6 +234,7 @@
update t_pro_member_role_show update t_pro_member_role_show
set member_id = #{memberId,jdbcType=BIGINT}, set member_id = #{memberId,jdbcType=BIGINT},
role_id = #{roleId,jdbcType=BIGINT}, role_id = #{roleId,jdbcType=BIGINT},
sequence = #{sequence,jdbcType=INTEGER},
created_at = #{createdAt,jdbcType=TIMESTAMP}, created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT} rec_status = #{recStatus,jdbcType=TINYINT}

Loading…
Cancel
Save