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.
 
 

378 lines
13 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}
and mr.rec_status = 0
</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>
<select id="getIdByUserIdAndProjectId" resultType="java.lang.Long">
select
*
from
t_pro_member
where
user_id = #{currentUserId}
and project_id in
<foreach collection="projectIdList" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</select>
<select id="queryByProjectId" resultType="com.ccsens.tall.bean.vo.MemberVo$ExportMember">
SELECT
a.id as mId,
a.nickname as mName,
if(a.phone != null,CONCAT('',a.phone),a.phone) as mPhone,
pm.id as sId,
pm.nickname as sName,
if(pm.phone != null,CONCAT('',pm.phone),pm.phone) as sPhone
FROM
(
SELECT
m.id,
m.stakeholder_id,
m.nickname,
m.phone
FROM
t_pro_member m
LEFT JOIN t_pro_member_role mr ON mr.member_id = m.id and mr.rec_status = 0
LEFT JOIN t_pro_role r on mr.role_id = r.id and r.rec_status = 0
WHERE
m.project_id = #{projectId}
and m.rec_status = 0
and r.parent_id not in
(SELECT id FROM t_pro_role WHERE project_id = #{projectId} and parent_id = 0 and `name` = 'MoneyStakeholder' and rec_status = 0)
GROUP BY m.id
) a
LEFT JOIN
t_pro_member pm on pm.id = a.stakeholder_id and pm.rec_status = 0 and pm.nickname != ''
</select>
</mapper>