<?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.sinata.modular.member.dao.MemUserRelationMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.sinata.modular.member.model.MemUserRelation">
|
<id column="id" property="id"/>
|
<result column="invite_code" property="inviteCode"/>
|
<result column="parent_id" property="parentId"/>
|
<result column="relation_path" property="relationPath"/>
|
<result column="create_time" property="createTime"/>
|
<result column="invite_count" property="inviteCount"/>
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, invite_code, parent_id, relation_path, create_time, invite_count
|
</sql>
|
|
<!-- 按条件查询指定人员团队人数 -->
|
<select id="countTeamMemberBy" resultType="int">
|
SELECT count(*) FROM mem_user
|
LEFT JOIN mem_user_relation ON mem_user_relation.id = mem_user.id
|
WHERE mem_user_relation.relation_path LIKE CONCAT('%/', #{memberId},'/%')
|
<if test="gradeId != null">
|
AND mem_user.member_grade_id = #{gradeId}
|
</if>
|
<if test="aboveId != null">
|
AND mem_user.member_grade_id >= #{aboveId}
|
</if>
|
</select>
|
|
<!-- 获取用户上级推荐人信息 -->
|
<select id="getParentUserById" resultType="com.sinata.modular.member.model.MemUser">
|
SELECT u.nick_name nickName,u.phone,u.show_id showId,u.real_name,u.city_code FROM mem_user u
|
LEFT JOIN mem_user_relation ur ON u.id = ur.parent_id
|
WHERE 1=1
|
<if test="userId != null">
|
AND ur.id = #{userId}
|
</if>
|
</select>
|
|
<!-- 获取直推有效人数 -->
|
<select id="getListParentGradeIdCount" resultType="java.util.Map">
|
SELECT parent_id, count(1) count FROM mem_user_relation ur LEFT JOIN mem_user u ON ur.id = u.id
|
WHERE 1=1
|
<if test="idArray != null">
|
AND ur.parent_id in
|
<foreach collection="idArray" open="(" separator="," close=")" item="ids">
|
#{ids}
|
</foreach>
|
</if>
|
<if test="memberGradeId != null">
|
AND u.member_grade_id <![CDATA[ >= ]]> #{memberGradeId}
|
</if>
|
GROUP BY parent_id
|
</select>
|
|
<!-- 获取团队用户列表 -->
|
<select id="myTeam" resultType="java.util.Map">
|
SELECT * <include refid="myTeamWhereSql" />
|
</select>
|
<select id="myTeamCount" resultType="java.lang.Integer">
|
SELECT COUNT(*) <include refid="myTeamWhereSql" />
|
</select>
|
<sql id="myTeamWhereSql">
|
FROM mem_user u
|
RIGHT JOIN (
|
SELECT id, relation_path FROM mem_user_relation
|
WHERE relation_path LIKE CONCAT(( SELECT relation_path FROM mem_user_relation WHERE id = #{userId} ),'/%')
|
) ur ON u.id = ur.id
|
<where>
|
<if test="gradeList != null and gradeList.size != 0">
|
AND member_grade_id IN
|
<foreach item="item" collection="gradeList" separator="," open="(" close=")" index="">
|
#{item}
|
</foreach>
|
</if>
|
<if test="showId != null and showId != ''">
|
AND u.show_id LIKE CONCAT('%', #{showId}, '%')
|
</if>
|
<if test="beginTime != null and beginTime != ''">
|
AND audit_time <![CDATA[ >= ]]> #{beginTime}
|
</if>
|
<if test="endTime != null and endTime != ''">
|
AND audit_time <![CDATA[ <= ]]> #{endTime}
|
</if>
|
</where>
|
</sql>
|
|
<select id="getMemUserRelationByUserIds" resultType="java.util.Map">
|
SELECT mur.id,mur.parent_id parentId,mu.nick_name nickName FROM mem_user_relation mur
|
LEFT JOIN mem_user mu ON mur.parent_id = mu.id
|
<where>
|
<if test="userIds != null">
|
AND mur.id IN
|
<foreach collection="userIds" open="(" separator="," close=")" item="ids">
|
#{ids}
|
</foreach>
|
</if>
|
</where>
|
</select>
|
|
</mapper>
|