You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

129 lines
4.3 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.tall.persist.dao.ProRoleDao">
<resultMap id="resultMap_ProRole" type="com.ccsens.tall.bean.po.ProRole">
<id column="rId" property="id" />
<result column="rName" property="name" />
<result column="rDescription" property="description" />
<result column="rSequence" property="sequence" />
</resultMap>
<resultMap id="resultMap_ProRoleInfo" type="com.ccsens.tall.bean.vo.ProjectVo$RoleInfo">
<id column="rId" property="id"/>
<result column="rName" property="name"/>
<result column="parentId" property="parentId"/>
<collection property="members" ofType="com.ccsens.tall.bean.vo.ProjectVo$ProMemberVo">
<id column="mId" property="mId"/>
<result column="mName" property="mName"/>
<result column="mPhone" property="mPhone"/>
<result column="mUserId" property="mUserId"/>
<result column="stakeholderId" property="stakeholderId"/>
</collection>
</resultMap>
<resultMap id="roleMVP" type="com.ccsens.tall.bean.vo.TaskVo$RoleCheckList">
<id column="rId" property="id" />
<result column="rName" property="name" />
</resultMap>
<select id="selectFirstRoleByProjectIdAndUserId" parameterType="java.util.Map"
resultMap="resultMap_ProRole">
select
id as rId,
project_id as projectId,
name as rName,
description as rDescription,
sequence as rSequence
from
t_pro_role
where
id in (
SELECT
pr.parent_id
FROM
t_pro_member m join t_pro_member_role mr on m.id = mr.member_id
join t_pro_role pr on mr.role_id = pr.id
where
(m.user_id = #{userId})
and
(pr.project_id = #{projectId})
)
</select>
<select id="selectSecondRolesByProjectId" 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
from
t_pro_role pr LEFT JOIN t_pro_member_role 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')
AND
pr.name not IN ('全体成员','观众')
</select>
<select id="selectCareLessRoleByProjectIdAndUserId" parameterType="java.util.Map"
resultType="Long">
select
per.role_id
from
t_pro_member m join t_pro_member_role mr on mr.member_id = m.id
join t_pro_role pr on mr.role_id = pr.id join
t_pro_role_execlude per on pr.id = per.other_role_id
where
(m.user_id = #{userId})
and
(pr.project_id = #{projectId})
</select>
<select id="selectRolesByProjectIdAndUserId" parameterType="java.util.Map"
resultMap="resultMap_ProRole">
select
r.id as rId,
r.name as rName,
r.description as rDescription,
r.sequence as rSequence
from
t_pro_role r JOIN t_pro_member_role mr on mr.role_id = r.id JOIN
t_pro_member m on mr.member_id = m.id
where
(m.user_id = #{userId})
and
(r.project_id = #{projectId})
</select>
<select id="selectPowerByRoleName" parameterType="java.util.Map"
resultType="int">
select
power
FROM
t_pro_role_power
WHERE
description = #{roleName}
</select>
<select id="findAll" parameterType="java.util.Map" resultMap="roleMVP">
SELECT
r.id as rId,
r.name as rName
FROM
t_pro_role r
WHERE
r.project_id = #{projectId}
AND
(SELECT name FROM t_pro_role pr WHERE r.parent_id = pr.id) in ('PM','Member')
AND
r.name not IN ('全体成员','观众','MVP')
</select>
</mapper>