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.
 
 

336 lines
11 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.ProMemberDao">
<resultMap id="resultMap_ProMemberInfo" type="com.ccsens.tall.bean.vo.MemberVo$MemberInfo">
<id column="mId" property="id" />
<result column="mUserId" property="userId" />
<!--<result column="mMemberRoleId" property="memberRoleId" />-->
<result column="mNickName" property="nickname" />
<result column="mAvatarUrl" property="avatarUrl" />
<result column="mNo" property="no" />
<result column="mPhone" property="phone" />
<result column="mDescription" property="description" />
<result column="mJoinTime" property="joinTime" />
</resultMap>
<resultMap id="memberInfos" type="com.ccsens.tall.bean.vo.ProjectVo$MembersByProject">
<id column="memberId" property="memberId"/>
<result column="name" property="name"/>
<result column="account" property="account"/>
<result column="phone" property="phone"/>
<result column="sId" property="sId"/>
<result column="sName" property="sName"/>
<result column="sAccount" property="sAccount"/>
<result column="sPhone" property="sPhone"/>
<collection property="belongRole" ofType="com.ccsens.tall.bean.vo.ProjectVo$MembersByProject$BelongRole">
<id column="roleId" property="roleId"/>
<result column="roleName" property="roleName"/>
</collection>
</resultMap>
<select id="selectByProjectIdAndUserId" parameterType="java.util.Map"
resultMap="resultMap_ProMemberInfo">
select
m.id as mId,
m.user_id as mUserId,
m.nickname as mNickName,
m.avatar_url as mAvatarUrl,
m.no as mNo,
m.phone as mPhone,
m.description as mDescription,
m.join_time as mJoinTime
from
t_pro_member m
where
m.user_id = #{userId}
and
m.project_id = #{projectId}
</select>
<select id="selectById" parameterType="java.util.Map"
resultMap="resultMap_ProMemberInfo">
select
m.id as mId,
m.user_id as mUserId,
m.nickname as mNickName,
m.avatar_url as mAvatarUrl,
m.no as mNo,
m.phone as mPhone,
m.description as mDescription,
m.join_time as mJoinTime
from
t_pro_member m
where
id = #{id}
</select>
<select id="selectByProjectId" parameterType="java.util.Map"
resultMap="resultMap_ProMemberInfo">
select
m.id as mId,
m.user_id as mUserId,
m.nickname as mNickName,
m.avatar_url as mAvatarUrl,
m.no as mNo,
m.phone as mPhone,
m.description as mDescription,
m.join_time as mJoinTime
from
t_pro_member m
where
m.project_id = #{projectId}
</select>
<select id="selectAuthedMemberByProjectId" parameterType="java.util.Map"
resultMap="resultMap_ProMemberInfo">
select
m.id as mId,
m.user_id as mUserId,
m.nickname as mNickName,
m.avatar_url as mAvatarUrl,
m.no as mNo,
m.phone as mPhone,
m.description as mDescription,
m.join_time as mJoinTime
from
t_pro_member m
where
m.user_id is not null
and
m.project_id = #{projectId}
</select>
<select id="selectByRoleId" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.vo.WbsVo$Member">
select
m.id as id,
m.nickname as name
FROM
t_pro_member m join t_pro_member_role mr on m.id = mr.member_id
WHERE
m.rec_status = 0
and
mr.role_id = #{roleId}
</select>
<select id="selectMemberByRoleId" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.po.ProMember">
select
*
FROM
t_pro_member m join t_pro_member_role mr on m.id = mr.member_id
WHERE
m.rec_status = 0
and
mr.role_id = #{roleId}
</select>
<select id="getMemberAndStakeholder" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.vo.WbsVo$MemberAndStakeholder">
SELECT
t.memberName,
t.memberPhone,
pm.nickname as stakeholderName,
pm.phone as stakeholderPhone
from
t_pro_member pm RIGHT JOIN
(
SELECT
m.nickname as memberName,
m.phone as memberPhone,
m.stakeholder_id as stakeholderId
FROM
t_pro_member m join t_pro_member_role mr on m.id = mr.member_id join t_pro_role r on r.id = mr.role_id
WHERE
m.project_id = #{projectId}
and
r.name != 'MoneyStakeholder'
GROUP BY m.nickname
) t
on pm.id = t.stakeholderId
</select>
<select id="queryUserIdsByProjectId" resultType="Long">
(select user_id from t_pro_member where project_id = #{projectId} and rec_status = 0)
except
(select m.user_id from t_pro_member m,t_pro_member_role mr, t_pro_role r
where m.id = mr.member_id and mr.role_id = r.id and r.name = 'MoneyStakeholder'
and m.project_id = #{projectId} and m.rec_status = 0
and mr.rec_status = 0 and r.rec_status = 0)
</select>
<select id="selectMembersByProjectId" parameterType="java.util.Map" resultMap="memberInfos">
SELECT
m.id as memberId,
m.nickname as name,
r.id as roleId,
r.name as roleName,
a.identifier as account,
m.phone as phone,
t.sId as sId,
t.sNickname as sName,
t.sAccount as sAccount,
t.sPhone as sPhone
FROM
t_pro_member m LEFT JOIN t_pro_member_role mr on mr.member_id = m.id
LEFT JOIN t_pro_role r on r.id = mr.role_id
LEFT JOIN t_sys_auth a on a.user_id = m.user_id and a.identify_type = 3 and a.rec_status = 0
LEFT JOIN
(
SELECT
m.id as sId,
m.nickname as sNickname,
r.id as srId,
a.identifier as sAccount,
m.phone as sPhone
FROM
t_pro_member m LEFT JOIN t_pro_member_role mr on mr.member_id = m.id
LEFT JOIN t_pro_role r on r.id = mr.role_id
LEFT JOIN t_sys_auth a on a.user_id = m.user_id and a.identify_type = 3 and a.rec_status = 0
WHERE
m.rec_status = 0
and
r.rec_status = 0
and
r.name = '奖惩干系人'
) t on t.sId = m.stakeholder_id
WHERE
m.rec_status = 0
and
(r.rec_status = 0 or r.rec_status is null)
and
m.project_id = #{projectId}
</select>
<select id="getMemberInfoByMemberId" parameterType="java.util.Map" resultMap="memberInfos">
SELECT
m.id as memberId,
m.nickname as name,
r.id as roleId,
r.name as roleName,
a.identifier as account,
m.phone as phone,
t.sId as sId,
t.sNickname as sName,
t.sAccount as sAccount,
t.sPhone as sPhone
FROM
t_pro_member m LEFT JOIN t_pro_member_role mr on mr.member_id = m.id
LEFT JOIN t_pro_role r on r.id = mr.role_id
LEFT JOIN t_sys_auth a on a.user_id = m.user_id and a.identify_type = 3 and a.rec_status = 0
LEFT JOIN
(
SELECT
m.id as sId,
m.nickname as sNickname,
r.id as srId,
a.identifier as sAccount,
m.phone as sPhone
FROM
t_pro_member m LEFT JOIN t_pro_member_role mr on mr.member_id = m.id
LEFT JOIN t_pro_role r on r.id = mr.role_id
LEFT JOIN t_sys_auth a on a.user_id = m.user_id and a.identify_type = 3 and a.rec_status = 0
WHERE
m.rec_status = 0
and
r.rec_status = 0
and
r.name = 'MoneyStakeholder'
) t on t.sId = m.stakeholder_id
WHERE
m.rec_status = 0
and
r.rec_status = 0
and
m.id = #{memberId}
</select>
<select id="queryAttention" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.vo.ProjectVo$AttentionInfo">
SELECT
a.id as attentionId,
u.nickname as attentionName,
u.avatar_url as avatarUrl,
sa.identifier as phone
FROM
t_sys_user_attention a LEFT JOIN t_sys_user u on a.user_id = u.id
LEFT JOIN t_sys_auth sa on u.id = sa.user_id and sa.identify_type = 1
LEFT JOIN
(
SELECT
id as mId,
user_id as userId,
nickname as mName
FROM
t_pro_member
WHERE
project_id = #{projectId}
AND
rec_status = 0
) t on t.userId = u.id
WHERE
a.project_id = #{projectId}
AND
a.rec_status = 0
and t.mId is null
GROUP BY a.id
</select>
<select id="getMemberByUserIdAndTaskId" resultType="com.ccsens.tall.bean.vo.MemberVo$MemberInfo">
SELECT
m.id AS id,
m.user_id AS userId,
m.project_id AS projectId,
m.nickname AS nickname,
m.avatar_url AS avatarUrl,
m.NO AS NO,
m.phone AS phone,
m.description AS description,
m.join_time AS joinTime,
m.stakeholder_id AS stakeholderId
FROM
t_pro_task_sub_time t,
t_pro_task_detail d,
t_pro_member m
WHERE
t.task_detail_id = d.id
AND d.project_id = m.project_id
AND t.id = #{taskId}
AND m.user_id = #{userId}
AND t.rec_status = 0
AND d.rec_status = 0
AND m.rec_status = 0
limit 1
</select>
<select id="queryMemberByProjectId" resultType="com.ccsens.tall.bean.vo.PluginVo$ReportMember">
SELECT
m.id as memberId,
m.nickname as memberName
FROM
t_pro_member m LEFT JOIN t_pro_member_role mr on mr.member_id = m.id
LEFT JOIN t_pro_role r on r.id = mr.role_id
WHERE
(SELECT `name` FROM t_pro_role WHERE id = r.parent_id) != 'MoneyStakeholder'
and
m.project_id = #{projectId}
and
m.rec_status = 0
and
r.rec_status = 0
GROUP BY m.id
</select>
<select id="queryMembersByProjectId" resultType="com.ccsens.tall.bean.vo.ProjectVo$MemberList">
SELECT
m.id as memberId,
m.nickname as memberName
FROM
t_pro_member m
LEFT JOIN t_pro_member_role mr on mr.member_id = m.id
LEFT JOIN t_pro_role r on mr.role_id = r.id
WHERE
m.project_id = #{projectId}
and
(r.`name` != '奖惩干系人' or r.`name` is Null)
and
m.rec_status = 0
GROUP BY m.id
</select>
</mapper>