<?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.rest.modular.member.dao.MemUserRelationMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.sinata.rest.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>
|
|
<select id="directTeam" resultType="com.sinata.rest.modular.mall.controller.vo.VoTeamUser">
|
SELECT * <include refid="directTeamWhereSql" />
|
</select>
|
<select id="directTeamCount" resultType="java.lang.Integer">
|
SELECT COUNT(*) <include refid="directTeamWhereSql" />
|
</select>
|
<sql id="directTeamWhereSql">
|
FROM mem_user u
|
RIGHT JOIN (
|
SELECT id, relation_path FROM mem_user_relation WHERE parent_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="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="getUserGradeParentList" resultType="com.sinata.common.user.VoUserGradeParent">
|
SELECT
|
ur.*,
|
u.member_grade_id,
|
u.is_lock,
|
u.is_buy_grade
|
FROM
|
mem_user_relation ur
|
LEFT JOIN mem_user u ON ur.id = u.id
|
<where>
|
<if test="userId != null">
|
AND ur.relation_path LIKE CONCAT(
|
(SELECT relation_path FROM mem_user_relation WHERE id = #{userId}), '/%'
|
)
|
</if>
|
</where>
|
</select>
|
|
<select id="getDirectUserGradeParentList" resultType="com.sinata.common.user.VoUserGradeParent">
|
SELECT
|
ur.*,
|
u.member_grade_id,
|
u.is_lock,
|
u.is_buy_grade
|
FROM
|
mem_user_relation ur
|
LEFT JOIN mem_user u ON ur.id = u.id
|
<where>
|
<if test="userId != null">
|
AND ur.parent_id = #{userId}
|
</if>
|
<if test="gradeList != null and gradeList.size != 0">
|
AND u.member_grade_id IN
|
<foreach item="item" collection="gradeList" separator="," open="(" close=")" index="">
|
#{item}
|
</foreach>
|
</if>
|
<if test="isBuyGrade != null">
|
AND u.is_buy_grade = #{isBuyGrade}
|
</if>
|
</where>
|
</select>
|
|
</mapper>
|