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
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>
|