Browse Source

提交

recovery
wang0018 4 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")
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 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);

60
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<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() {
addCriterion("created_at is null");
return (Criteria) this;

19
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<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
@ApiModel("添加时返回成员信息")
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<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);

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.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<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.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<ProMember> 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<ProMemberRoleShow> 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<ProMemberRole> 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<ProjectVo.RoleInfo> 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<RoleVo.RoleByProjectId> queryRoleByProjectId(Long 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;
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<RoleVo.RoleByProjectId> 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<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 (m.rec_status = 0 or m.rec_status is null)
</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"
resultType="Long">

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

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

Loading…
Cancel
Save