| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083 |
- <?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.ydtech.modules.partner.dao.PartnerUserMapper">
- <select id="queryPage" resultType="com.ydtech.modules.partner.model.vo.PartnerUserVo">
- SELECT
- t.id,
- t.NAME AS userName,
- t.mobile,
- t.user_id,
- t.dept_id,
- d.`name` deptName,
- (SELECT sys_user.`name` FROM sys_user WHERE sys_user.id = t.referrer_id ) referrerName,
- t.commission_rate,
- t.referrer_id,
- t.create_by,
- t.create_time,
- t.update_by,
- t.update_time,
- u.`status`,
- t.grade,
- ( SELECT r.grade_name FROM partner_rule r WHERE r.grade = t.grade ) gradeName
- FROM
- partner_user t
- LEFT JOIN sys_dept d ON t.dept_id = d.id
- LEFT JOIN sys_user u ON u.id = t.user_id
- <where>
- u.status in (1,3) and t.grade in (1,2,3,4)
- <if test="queryVo.name != null and queryVo.name != ''">
- and t.name like concat('%', #{queryVo.name}, '%')
- </if>
- <if test="queryVo.mobile != null and queryVo.mobile != ''">
- and t.mobile like concat('%', #{queryVo.mobile}, '%')
- </if>
- <if test="queryVo.userId != null and queryVo.userId != ''">
- and t.user_id like concat('%', #{queryVo.userId}, '%')
- </if>
- <if test="queryVo.deptId != null and queryVo.deptId != ''">
- and t.dept_id like concat('%', #{queryVo.deptId}, '%')
- </if>
- <if test="queryVo.deptName != null and queryVo.deptName != ''">
- and t.dept_name like concat('%', #{queryVo.deptName}, '%')
- </if>
- <if test="queryVo.grade != null and queryVo.grade != ''">
- and t.grade like concat('%', #{queryVo.grade}, '%')
- </if>
- <if test="queryVo.commissionRate != null and queryVo.commissionRate != ''">
- and t.commission_rate like concat('%', #{queryVo.commissionRate}, '%')
- </if>
- <if test="queryVo.referrerId != null and queryVo.referrerId != ''">
- and t.referrer_id like concat('%', #{queryVo.referrerId}, '%')
- </if>
- </where>
- order by t.create_time desc
- </select>
- <select id="selectRecommender" resultType="java.util.Map">
- SELECT
- user_id userId,
- `name`
- FROM
- partner_user
- WHERE grade = #{level}
- </select>
- <select id="selectByUserId" resultType="com.ydtech.modules.partner.model.vo.RelationalVo">
- SELECT
- p.id,
- p.NAME AS userName,
- p.mobile,
- p.user_id,
- p.dept_id,
- (SELECT `name` FROM sys_dept d WHERE d.id = p.dept_id) AS deptName,
- (SELECT `name` FROM sys_user u WHERE u.id = p.referrer_id) AS suggestName,
- p.grade AS type,
- p.referrer_id,
- p.create_time
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE u.`status` = 1 AND user_id = #{id} AND grade = #{grade}
- </select>
- <select id="selectTodayOverview" resultType="com.ydtech.modules.partner.model.vo.TodayOverview">
- SELECT
- ifnull((
- SELECT COUNT(DISTINCT company_id) FROM partner_premium_details WHERE user_id IN
- <foreach collection="params.relatedPerList" item="item" index="index" separator="," open="(" close=")">
- #{item}
- </foreach>
- <if test="params.startTime != null and params.endTime != null">
- AND create_time BETWEEN #{params.startTime} AND #{params.endTime}
- </if>
- ),0) numberOrders,
- ifnull(
- (SELECT count(id) FROM partner_user WHERE user_id IN
- <foreach collection="params.relatedPerList" item="item" index="index" separator="," open="(" close=")">
- #{item}
- </foreach>
- <if test="params.startTime != null and params.endTime != null">
- AND create_time BETWEEN #{params.startTime} AND #{params.endTime}
- </if> ),0
- ) addPerNumber,
- ifnull((
- SELECT SUM(db.sumpremium) FROM (SELECT DISTINCT company_id,sumpremium FROM partner_premium_details
- WHERE user_id IN
- <foreach collection="params.relatedPerList" item="item" index="index" separator="," open="(" close=")">
- #{item}
- </foreach>
- <if test="params.startTime != null and params.endTime != null">
- AND create_time BETWEEN #{params.startTime} AND #{params.endTime}
- </if>
- ) db
- ),0
- ) premium,
- ifnull(
- (SELECT SUM(extract_fee) FROM partner_premium_details where user_id = #{params.userId}
- <if test="params.startTime != null and params.endTime != null">
- AND create_time BETWEEN #{params.startTime} AND #{params.endTime}
- </if> ),0
- ) commission
- </select>
- <resultMap id="homeVo" type="com.ydtech.modules.partner.model.vo.TeamOverviewVo">
- <result property="grade" column="grade"/>
- <result property="gradeName" column="grade_name"/>
- </resultMap>
- <!--
- SELECT
- r.grade,
- r.grade_name
- FROM
- partner_user u
- LEFT JOIN partner_rule r ON u.grade = r.grade
- WHERE
- user_id = #{params.userId}
- -->
- <select id="selectTeamOverview" resultMap="homeVo">
- SELECT
- grade,
- grade_name
- FROM
- partner_rule where grade != 5
- </select>
- <select id="selectStatisticsMap" resultType="java.util.Map">
- SELECT
- ifnull(
- (
- SELECT COUNT( p.id) FROM partner_user p LEFT JOIN sys_user u ON u.id = p.user_id WHERE u.STATUS = 1 AND p.referrer_id = #{params.userId} AND p.grade = (#{grade} + 1)
- <if test="params.startTime != null and params.endTime != null">
- and DATE(p.create_time) BETWEEN #{params.startTime} AND #{params.endTime}
- </if>
- ),0
- ) v1,
- ifnull(
- ( SELECT COUNT(p.id) FROM partner_user p LEFT JOIN sys_user u ON u.id = p.user_id WHERE u.`status` = 1 AND grade = (#{grade} + 2 )
- AND p.referrer_id IN( SELECT user_id FROM partner_user WHERE referrer_id = #{params.userId} AND grade = (#{grade} + 1) )
- <if test="params.startTime != null and params.endTime != null">
- and DATE(p.create_time) BETWEEN #{params.startTime} AND #{params.endTime}
- </if>
- ),0
- ) v2,
- ifnull(
- ( SELECT
- COUNT( p.id )
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- u.STATUS = 1
- AND p.referrer_id = #{params.userId}
- AND p.grade = (#{grade} + 1)
- AND to_days(p.create_time) = to_days(now()) ),0
- ) v3,
- ifnull(
- (SELECT
- COUNT(u1.id)
- FROM
- partner_user u1
- LEFT JOIN sys_user u ON u.id = u1.user_id
- WHERE
- u.`status` = 1 and u1.grade = (#{grade} + 2) AND to_days(u1.create_time) = to_days(now()) AND
- u1.referrer_id IN (
- SELECT
- u.user_id
- FROM
- partner_user u
- LEFT JOIN sys_user t ON t.id = u.user_id
- WHERE
- t.`status` = 1 AND
- u.grade = (#{grade} + 1)
- AND u.referrer_id = #{params.userId}
- )),0
- ) v4,
- ifnull((SELECT sum(sumpremium) FROM partner_premium_details WHERE to_days(create_time) = to_days(now()) AND user_id = #{params.userId} and source = #{grade}),0
- ) v5,
- ifnull(
- (SELECT SUM(extract_fee) FROM partner_premium_details WHERE source = #{grade} AND to_days(create_time) = to_days(now()) AND user_id = #{params.userId}),0
- ) v6
- </select>
- <select id="selectStatistics" resultType="java.util.Map">
- <if test="grade == 1">
- SELECT
- ifnull(
- (SELECT
- COUNT( p.id )
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- u.STATUS = 1
- AND p.referrer_id = #{params.userId}
- AND p.grade = 2),0
- ) v1,
- ifnull(
- ( SELECT
- COUNT(u1.id)
- FROM
- partner_user u1
- LEFT JOIN sys_user u ON u.id = u1.user_id
- WHERE
- u.`status` = 1 AND u1.grade = 3 AND
- u1.referrer_id IN (
- SELECT
- p.user_id
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- u.STATUS = 1
- AND p.referrer_id = #{params.userId}
- AND p.grade = 2
- ) ),0
- ) v2,
- ifnull(
- ( SELECT
- COUNT( p.id )
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- u.STATUS = 1
- AND p.referrer_id = #{params.userId}
- AND p.grade = 2
- AND to_days(p.create_time) = to_days(now()) ),0
- ) v3,
- ifnull(
- (SELECT
- COUNT(u1.id)
- FROM
- partner_user u1
- LEFT JOIN sys_user u ON u.id = u1.user_id
- WHERE
- u.`status` = 1 and u1.grade = 3 AND to_days(u1.create_time) = to_days(now()) AND
- u1.referrer_id IN (
- SELECT
- u.user_id
- FROM
- partner_user u
- LEFT JOIN sys_user t ON t.id = u.user_id
- WHERE
- t.`status` = 1 AND
- u.grade = 2
- AND u.referrer_id = #{params.userId}
- )),0
- ) v4
- </if>
- <if test="grade == 2">
- SELECT
- ifnull(
- ( SELECT count(1) FROM partner_user left join sys_user on sys_user.id = partner_user.user_id WHERE partner_user.grade = 3 and partner_user.referrer_id = #{params.userId}),0
- ) v1,
- -- 合伙人的工作室
- ifnull(
- (
- SELECT count(1) FROM partner_user
- LEFT JOIN sys_user ON sys_user.id = partner_user.user_id
- WHERE partner_user.referrer_id IN (
- SELECT
- user_id
- FROM
- partner_user
- LEFT JOIN sys_user ON sys_user.id = partner_user.user_id
- WHERE sys_user.`status` = 1 AND
- partner_user.referrer_id = #{params.userId}
- AND grade = 3
- ) AND grade = 4 AND sys_user.`status` = 1
- ),0
- ) v2,
- -- 我今日新增的合伙人
- ifnull(
- (
- SELECT
- count( 1 )
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- p.grade = 3
- AND p.referrer_id = #{params.userId}
- AND to_days( p.create_time ) = to_days(
- now())
- ),0
- ) v3,
- ifnull( (SELECT
- count( 1 )
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- p.grade = 4 and to_days(p.create_time) = to_days(now())
- AND p.referrer_id IN (
- SELECT
- user_id
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- p.grade = 3
- AND p.referrer_id = #{params.userId}
- )),0) v4,
- ifnull((SELECT sum(sumpremium) FROM partner_premium_details WHERE to_days(create_time) = to_days(now()) AND user_id = #{params.userId} and source = #{grade}),0
- ) v5,
- ifnull(
- (SELECT SUM(extract_fee) FROM partner_premium_details WHERE source = #{grade} AND to_days(create_time) = to_days(now()) AND user_id = #{params.userId}),0
- ) v6
- </if>
- <if test="grade == 3">
- SELECT
- ifnull((SELECT count(1) FROM partner_user left join sys_user on sys_user.id = partner_user.user_id WHERE partner_user.grade = 4 and partner_user.referrer_id = #{params.userId}),0) v1,
- ifnull((
- SELECT count(1) FROM partner_user
- LEFT JOIN sys_user ON sys_user.id = partner_user.user_id
- WHERE partner_user.referrer_id IN (
- SELECT
- user_id
- FROM
- partner_user
- LEFT JOIN sys_user ON sys_user.id = partner_user.user_id
- WHERE sys_user.`status` = 1 AND
- partner_user.referrer_id = #{params.userId}
- AND grade = 4
- ) AND grade = 5 AND sys_user.`status` = 1
- ),0) v2,
- ifnull( (
- SELECT
- count( 1 )
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- p.grade = 4
- AND p.referrer_id = #{params.userId}
- AND to_days( p.create_time ) = to_days(
- now())
- ),0
- ) v3,
- ifnull( (SELECT
- count( 1 )
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- p.grade = 5 and to_days(p.create_time) = to_days(now())
- AND p.referrer_id IN (
- SELECT
- user_id
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- p.grade = 4
- AND p.referrer_id = #{params.userId}
- )),0
- ) v4,
- ifnull((SELECT sum(sumpremium) FROM partner_premium_details WHERE to_days(create_time) = to_days(now()) AND user_id = #{params.userId} and source = #{grade} ),0
- ) v5,
- ifnull(
- (SELECT SUM(extract_fee) FROM partner_premium_details WHERE source = #{grade} and to_days(create_time) = to_days(now()) AND user_id = #{params.userId}),0
- ) v6
- </if>
- <if test="grade == 4">
- SELECT
- ifnull((SELECT count(1) FROM partner_user left join sys_user on sys_user.id = partner_user.user_id WHERE partner_user.grade = 5 and partner_user.referrer_id = #{params.userId}),0) v1,
- ifnull(
- (
- SELECT count(1) FROM partner_user
- LEFT JOIN sys_user ON sys_user.id = partner_user.user_id
- WHERE partner_user.referrer_id IN (
- SELECT
- user_id
- FROM
- partner_user
- LEFT JOIN sys_user ON sys_user.id = partner_user.user_id
- WHERE sys_user.`status` = 1 AND
- partner_user.referrer_id = #{params.userId}
- AND grade = 5
- ) AND grade = 6 AND sys_user.`status` = 1
- ),0
- ) v2,
- ifnull( (
- SELECT
- count( 1 )
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- p.grade = 5
- AND p.referrer_id = #{params.userId}
- AND to_days( p.create_time ) = to_days(
- now())
- ),0
- ) v3,
- ifnull( (SELECT
- count( 1 )
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- p.grade = 6 and to_days(p.create_time) = to_days(now())
- AND p.referrer_id IN (
- SELECT
- user_id
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE
- p.grade = 5
- AND p.referrer_id = #{params.userId}
- )),0
- ) v4,
- ifnull( (SELECT SUM(sumpremium) FROM partner_premium_details WHERE source = #{grade} and user_id = #{params.userId} AND to_days(create_time) = to_days(now())),0 ) v5,
- ifnull( (SELECT SUM(extract_fee) FROM partner_premium_details WHERE source = #{grade} and user_id = #{params.userId} AND to_days(create_time) = to_days(now())),0 ) v6
- </if>
- </select>
- <resultMap id="SelectUserVo" type="com.ydtech.modules.partner.model.vo.SelectUserVo">
- <result property="grade" column="grade"/>
- <result property="gradeName" column="grade_name"/>
- <result property="userId" column="userId"/>
- <collection property="userVoList" column="{userId = userId,grade = grade}" select="userVoList" />
- </resultMap>
- <resultMap id="UserVoListVo" type="com.ydtech.modules.partner.model.vo.MyUserVo">
- <result property="userName" column="userName"/>
- <result property="userId" column="userId"/>
- <result property="grade" column="grade"/>
- <association property="partnerTotal" column="{userId = userId}" select="selectPartnerTotal" />
- </resultMap>
- <select id="userVoList" resultMap="UserVoListVo" >
- SELECT
- p.`name` userName,
- p.user_id userId,
- #{grade} as grade,
- t.approve_time as AuditTime
- FROM
- partner_user p
- LEFT JOIN sys_user_track t ON t.user_id = p.user_id
- WHERE
- grade = #{grade} AND t.`status` = 1 AND p.referrer_id = #{userId}
- </select>
- <select id="selectUser" resultMap="SelectUserVo">
- select grade,grade_name,#{userId} as userId from partner_rule where grade = #{grade}
- </select>
- <select id="selectPartnerTotal" resultType="java.util.Map">
- SELECT (
- SELECT
- COUNT(p1.user_id)
- FROM
- partner_user p1
- LEFT JOIN sys_user u ON u.id = p1.user_id
- WHERE
- u.STATUS = 1
- AND p1.referrer_id = #{userId}
- ) partnerSum,
- (
- SELECT
- (
- COALESCE ( SUM( jq_premium ), 0 ) + COALESCE ( SUM( sy_premium ), 0 ) + COALESCE ( SUM( no_premium ), 0 )) AS total_sum
- FROM
- ins_fee_order_new
- WHERE
- user_id IN (
- SELECT
- p1.user_id AS userId
- FROM
- partner_user p1
- LEFT JOIN sys_user u ON u.id = p1.user_id
- WHERE
- u.STATUS = 1
- AND p1.referrer_id = #{userId}
- )
- ) premium,
- (
- SELECT COUNT(1) FROM partner_user
- ) commission
- </select>
- <!--
- WITH RECURSIVE sub_partners AS (
- SELECT p1.id, p1.user_id
- FROM partner_user p1
- LEFT JOIN sys_user u ON u.id = p1.user_id
- WHERE u.STATUS = 1 AND p1.referrer_id = #{userId}
- <if test="params != null">
- <if test="params.timeFrame != null and params.timeFrame.length > 0">
- AND p1.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
- </if>
- <if test="params.countCycle != null">
- <if test="params.countCycle == 'Day'">
- AND DATE(p1.create_time) = CURDATE()
- </if>
- <if test="params.countCycle == 'Week'">
- AND YEARWEEK(p1.create_time, 1) = YEARWEEK(CURDATE(), 1)
- </if>
- <if test="params.countCycle == 'Month'">
- AND YEAR(p1.create_time) = YEAR(CURDATE()) AND MONTH(p1.create_time) = MONTH(CURDATE())
- </if>
- </if>
- </if>
- UNION ALL
- SELECT p.id, p.user_id
- FROM partner_user p
- LEFT JOIN sys_user u1 ON u1.id = p.user_id
- INNER JOIN sub_partners sp ON p.referrer_id = sp.user_id
- WHERE u1.STATUS = 1
- <if test="params != null">
- <if test="params.timeFrame != null and params.timeFrame.length > 0">
- AND p.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
- </if>
- <if test="params.countCycle != null">
- <if test="params.countCycle == 'Day'">
- AND DATE(p.create_time) = CURDATE()
- </if>
- <if test="params.countCycle == 'Week'">
- AND YEARWEEK(p.create_time, 1) = YEARWEEK(CURDATE(), 1)
- </if>
- <if test="params.countCycle == 'Month'">
- AND YEAR(p.create_time) = YEAR(CURDATE()) AND MONTH(p.create_time) = MONTH(CURDATE())
- </if>
- </if>
- </if>
- )
- SELECT count(1) AS total FROM sub_partners
- -->
- <select id="userCountIdsVo" resultType="java.lang.Integer">
- SELECT count(p1.id)
- FROM partner_user p1
- LEFT JOIN sys_user u ON u.id = p1.user_id
- <where>
- u.STATUS = 1
- <if test="params != null">
- <if test="params.timeFrame != null and params.timeFrame.length > 0">
- AND p1.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
- </if>
- <if test="params.countCycle != null">
- <if test="params.countCycle == 'Day'">
- AND DATE(p1.create_time) = CURDATE()
- </if>
- <if test="params.countCycle == 'Week'">
- AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(p1.create_time)
- </if>
- <if test="params.countCycle == 'Month'">
- AND YEAR(p1.create_time) = YEAR(CURDATE()) AND MONTH(p1.create_time) = MONTH(CURDATE())
- </if>
- </if>
- </if>
- <if test="ids != null and ids.size() > 0">
- AND p1.user_id in
- <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
- #{item}
- </foreach>
- </if>
- </where>
- </select>
- <select id="userCountVo" resultType="java.lang.Integer">
- WITH RECURSIVE sub_partners AS (
- SELECT p1.id, p1.user_id,p1.grade
- FROM partner_user p1
- LEFT JOIN sys_user u ON u.id = p1.user_id
- WHERE u.STATUS = 1 AND p1.referrer_id = #{userId} and p1.grade = #{grade}
- <if test="params != null">
- <if test="params.timeFrame != null and params.timeFrame.length > 0">
- AND p1.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
- </if>
- <if test="params.countCycle != null">
- <if test="params.countCycle == 'Day'">
- AND DATE(p1.create_time) = CURDATE()
- </if>
- <if test="params.countCycle == 'Week'">
- AND YEARWEEK(p1.create_time, 1) = YEARWEEK(CURDATE(), 1)
- </if>
- <if test="params.countCycle == 'Month'">
- AND YEAR(p1.create_time) = YEAR(CURDATE()) AND MONTH(p1.create_time) = MONTH(CURDATE())
- </if>
- </if>
- </if>
- UNION ALL
- SELECT p.id, p.user_id,p.grade
- FROM partner_user p
- LEFT JOIN sys_user u1 ON u1.id = p.user_id
- INNER JOIN sub_partners sp ON p.referrer_id = sp.user_id
- WHERE u1.STATUS = 1 AND p.grade = (sp.grade + 1)
- <if test="params != null">
- <if test="params.timeFrame != null and params.timeFrame.length > 0">
- AND p.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
- </if>
- <if test="params.countCycle != null">
- <if test="params.countCycle == 'Day'">
- AND DATE(p.create_time) = CURDATE()
- </if>
- <if test="params.countCycle == 'Week'">
- AND YEARWEEK(p.create_time, 1) = YEARWEEK(CURDATE(), 1)
- </if>
- <if test="params.countCycle == 'Month'">
- AND YEAR(p.create_time) = YEAR(CURDATE()) AND MONTH(p.create_time) = MONTH(CURDATE())
- </if>
- </if>
- </if>
- )
- SELECT count(1) AS total FROM sub_partners
- </select>
- <select id="selectJuniorList" resultType="java.lang.String">
- SELECT
- p.user_id
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE u.`status` = 1 AND p.grade = #{grade} AND p.referrer_id in
- <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
- #{item}
- </foreach>
- <if test="params != null">
- <if test="params.timeFrame != null and params.timeFrame.length > 0">
- AND p.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
- </if>
- <if test="params.countCycle != null">
- <if test="params.countCycle == 'Day'">
- AND DATE(p.create_time) = CURDATE()
- </if>
- <if test="params.countCycle == 'Week'">
- AND YEARWEEK(p.create_time, 1) = YEARWEEK(CURDATE(), 1)
- </if>
- <if test="params.countCycle == 'Month'">
- AND DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(p.create_time)
- </if>
- </if>
- </if>
- </select>
- <select id="userCountVo2" resultType="java.util.Map">
- SELECT
- DATE_FORMAT( p.create_time, '%Y-%m-%d' ) AS createTime,
- count( p.id ) AS total
- FROM
- partner_user p
- WHERE p.user_id in
- <foreach collection="userId" item="item" index="index" separator="," open="(" close=")">
- #{item}
- </foreach>
- <if test="params != null">
- <if test="params.timeFrame != null and params.timeFrame.length > 0">
- AND p.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
- </if>
- <if test="params.countCycle != null">
- <if test="params.countCycle == 'Day'">
- AND DATE(p.create_time) = CURDATE()
- </if>
- <if test="params.countCycle == 'Week'">
- AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(p.create_time)
- </if>
- <if test="params.countCycle == 'Month'">
- AND YEAR(p.create_time) = YEAR(CURDATE()) AND MONTH(p.create_time) = MONTH(CURDATE())
- </if>
- </if>
- </if>
- GROUP BY
- createTime
- </select>
- <select id="selectJuniorListUser" resultType="com.ydtech.modules.partner.model.PartnerUser">
- select id,user_id,`name`,grade from partner_user where grade = #{grade} AND referrer_id in
- <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
- #{item}
- </foreach>
- <if test="params != null">
- <if test="params.timeFrame != null and params.timeFrame.length > 0">
- AND create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
- </if>
- <if test="params.countCycle != null">
- <if test="params.countCycle == 'Day'">
- AND DATE(create_time) = CURDATE()
- </if>
- <if test="params.countCycle == 'Week'">
- AND YEARWEEK(create_time, 1) = YEARWEEK(CURDATE(), 1)
- </if>
- <if test="params.countCycle == 'Month'">
- AND YEAR(create_time) = YEAR(CURDATE()) AND MONTH(create_time) = MONTH(CURDATE())
- </if>
- </if>
- </if>
- </select>
- <select id="selectByReferrerId" resultType="com.ydtech.modules.partner.model.vo.RelationalVo">
- SELECT
- p.id,
- p.NAME AS userName,
- p.mobile,
- p.user_id,
- p.dept_id,
- (SELECT `name` FROM sys_dept d WHERE d.id = p.dept_id) AS deptName,
- (SELECT `name` FROM sys_user u WHERE u.id = p.referrer_id) AS suggestName,
- p.grade AS type,
- p.referrer_id,
- p.create_time
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE u.`status` = 1 AND p.referrer_id = #{userId} AND p.grade = #{grade}
- </select>
- <select id="selectQuerySuperiors" resultType="com.ydtech.modules.partner.model.vo.RelationalVo">
- SELECT
- p.id,
- p.NAME AS userName,
- p.mobile,
- p.user_id,
- p.dept_id,
- (SELECT `name` FROM sys_dept d WHERE d.id = p.dept_id) AS deptName,
- (SELECT `name` FROM sys_user u WHERE u.id = p.referrer_id) AS suggestName,
- p.grade AS type,
- p.referrer_id,
- p.create_time
- FROM
- partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE u.`status` = 1 AND p.user_id = #{userId} AND p.grade = #{grade}
- </select>
- <select id="myPerformanceTotal" resultType="com.alibaba.fastjson.JSONObject">
- select
- (select count(DISTINCT company_id) from partner_premium_details WHERE user_id in
- <foreach collection="list" item="item" index="index" separator="," open="(" close=")">
- #{item}
- </foreach>
- <if test="map.startTime != '' and map.startTime != null">
- and DATE(create_time) BETWEEN #{map.startTime} AND #{map.endTime}
- </if>
- ) numberOrders,
- IFNULL((
- SELECT SUM(db.sumpremium) FROM (
- SELECT sumpremium FROM partner_premium_details WHERE user_id in
- <foreach collection="list" item="item" index="index" separator="," open="(" close=")">
- #{item}
- </foreach>
- <if test="map.startTime != '' and map.startTime != null">
- and DATE(create_time) BETWEEN #{map.startTime} AND #{map.endTime}
- </if>
- GROUP BY issuer_id,sumpremium ) db
- ),0
- ) totalPremium,
- IFNULL((
- SELECT SUM(extract_fee) FROM partner_premium_details WHERE user_id = #{map.userId}
- <if test="map.startTime != '' and map.startTime != null">
- and DATE(create_time) BETWEEN #{map.startTime} AND #{map.endTime}
- </if>
- ),0
- ) commission
- </select>
- <select id="queryDataList" resultType="com.alibaba.fastjson.JSONObject">
- SELECT
- orderno ordersNo,
- licenseno carId,
- issuer_name agent,
- sumpremium premium,
- extract_fee commission,
- create_time issuanceTime,
- source,
- user_id userId,
- app_status appStatus
- FROM
- partner_premium_details
- WHERE
- user_id = #{map.userId} and source = #{map.grade}
- <if test="map.startTime != '' and map.startTime != null">
- and DATE(create_time) BETWEEN #{map.startTime} AND #{map.endTime}
- </if>
- <if test="map.appStatus != null">
- and app_status = #{map.appStatus}
- </if>
- </select>
- <select id="selectNumber" resultType="java.lang.Integer">
- SELECT COUNT(1) FROM (
- SELECT
- p.user_id,
- p.grade,
- p.referrer_id,
- u.`status`,
- (SELECT t.approve_time FROM sys_user_track t WHERE t.user_id = p.user_id ORDER BY t.approve_time LIMIT 1) approve_time
- FROM partner_user p
- LEFT JOIN sys_user u ON u.id = p.user_id
- WHERE p.referrer_id = #{userId} AND p.grade = #{number}
- ) db
- <where>
- <if test="period.startDate != null and period.endDate != null">
- db.approve_time BETWEEN #{period.startDate} AND #{period.endDate}
- </if>
- </where>
- </select>
- <select id="selectNumber4" resultType="java.lang.Integer">
- SELECT
- COUNT( p.user_id )
- FROM
- partner_user p
- LEFT JOIN sys_user_track t ON t.user_id = p.user_id
- WHERE
- t.`status` = 1 AND grade = #{number}
- <if test="period.startDate != null and period.endDate != null">
- AND t.approve_time BETWEEN #{period.startDate} AND #{period.endDate}
- </if>
- AND p.referrer_id = #{userId}
- </select>
- <select id="selectByUserIdNumber" resultType="java.lang.Integer">
- SELECT
- COUNT( p.user_id )
- FROM
- partner_user p
- LEFT JOIN sys_user_track t ON t.user_id = p.user_id
- WHERE
- t.`status` = 1 AND grade = #{number}
- <if test="period.startDate != null and period.endDate != null">
- AND t.approve_time BETWEEN #{period.startDate} AND #{period.endDate}
- </if>
- AND p.referrer_id = #{userId}
- </select>
- <select id="queryUser" resultType="com.ydtech.modules.partner.model.PartnerUser">
- SELECT * from partner_user where user_id = #{referrerId} and grade = #{grade}
- </select>
- <select id="queryByUserId" resultType="com.ydtech.modules.partner.model.PartnerUser">
- SELECT * from partner_user where user_id = #{referrerId} order by grade desc
- </select>
- <select id="assessment" resultType="java.lang.Integer">
- SELECT
- COUNT(DISTINCT u.id)
- FROM
- partner_user u
- LEFT JOIN sys_user_track t ON u.user_id = t.user_id
- WHERE u.referrer_id = #{userId} and u.grade = #{grade}
- <if test="period.startDate != null and period.endDate != null">
- AND t.approve_time BETWEEN #{period.startDate} AND #{period.endDate}
- </if>
- </select>
- <select id="querySuperiors" resultType="java.lang.String">
- WITH RECURSIVE cte_name AS (
- SELECT
- user_id,
- referrer_id,
- grade
- FROM
- partner_user
- WHERE
- user_id = #{userId} and grade = #{original}
- UNION ALL
- SELECT
- t.user_id,
- t.referrer_id,
- t.grade
- FROM
- partner_user t
- INNER JOIN cte_name ON t.user_id = cte_name.referrer_id
- WHERE
- t.grade = (cte_name.grade - 1)
- )
- SELECT user_id FROM cte_name where grade = #{grade};
- </select>
- <select id="querySubordinateUserId" resultType="java.lang.String">
- WITH RECURSIVE cte_name AS (
- SELECT
- user_id,
- referrer_id,
- grade
- FROM partner_user
- WHERE referrer_id = #{levelUserId} AND grade = '5'
- UNION ALL
- SELECT
- t.user_id,
- t.referrer_id,
- t.grade
- FROM partner_user t INNER JOIN cte_name ON t.referrer_id = cte_name.user_id
- WHERE t.grade = (cte_name.grade + 1)
- )
- SELECT user_id FROM cte_name
- </select>
- <select id="querySubordinate" resultType="java.lang.String">
- WITH RECURSIVE cte_name AS (
- SELECT
- user_id,
- referrer_id,
- grade
- FROM partner_user
- WHERE referrer_id IN(SELECT user_id FROM partner_user WHERE referrer_id = #{levelUserId} AND grade = '4') AND grade = '5'
- UNION ALL
- SELECT
- t.user_id,
- t.referrer_id,
- t.grade
- FROM partner_user t INNER JOIN cte_name ON t.referrer_id = cte_name.user_id
- WHERE t.grade = (cte_name.grade + 1)
- )
- SELECT user_id FROM cte_name
- </select>
- <select id="getLevelAllUserId" resultType="java.lang.String">
- WITH RECURSIVE cte_name AS (
- SELECT
- user_id,
- referrer_id,
- grade
- FROM partner_user
- WHERE user_id = #{userId} AND grade = (SELECT min(grade) FROM partner_user WHERE user_id = #{userId})
- UNION ALL
- SELECT
- t.user_id,
- t.referrer_id,
- t.grade
- FROM partner_user t INNER JOIN cte_name ON t.referrer_id = cte_name.user_id
- WHERE t.grade = (cte_name.grade + 1)
- )
- SELECT user_id FROM cte_name WHERE grade < 5
- </select>
- <select id="queryUserRuleVo" resultType="com.ydtech.modules.partner.model.vo.UserRuleVo">
- SELECT (
- SELECT COUNT(1) FROM partner_user WHERE referrer_id = '99140105M36001' AND grade = '4'
- ) AS invitationsNumber,
- (
- SELECT SUM(db.sumpremium) FROM (
- SELECT DISTINCT orderno,sumpremium FROM partner_premium_details WHERE (user_id,source) IN (
- WITH RECURSIVE cte_name AS (
- SELECT
- user_id,
- referrer_id,
- grade,
- CAST(user_id AS CHAR(1000)) AS path
- FROM
- partner_user
- WHERE
- user_id = '99140105M36001' and grade = 1
- UNION ALL
- SELECT
- t.user_id,
- t.referrer_id,
- t.grade,
- CONCAT(cte_name.path, ',', t.user_id) AS path
- FROM
- partner_user t
- INNER JOIN cte_name ON t.referrer_id = cte_name.user_id AND t.grade = (cte_name.grade + 1)
- WHERE
- FIND_IN_SET(t.user_id, cte_name.path) = 0
- )
- SELECT user_id,grade FROM cte_name
- )
- ) db
- ) AS memberPremium,
- (
- SELECT SUM(da.sumpremium) FROM (
- SELECT DISTINCT orderno,sumpremium FROM partner_premium_details WHERE user_id = '99140105M36001'
- ) da
- ) AS yourPremium
- </select>
- <select id="selectOwnSumPremium" resultType="java.math.BigDecimal">
- SELECT SUM(db.sumpremium) AS premium FROM (
- SELECT DISTINCT orderno,sumpremium FROM partner_premium_details WHERE user_id IN(
- SELECT user_id FROM partner_user WHERE user_id IN(
- SELECT id FROM sys_user WHERE identity = (SELECT identity FROM sys_user WHERE id = #{userId})
- ) AND grade > 4
- )
- <if test="period.startDate != null and period.endDate != null">
- AND create_time BETWEEN #{period.startDate} AND #{period.endDate}
- </if>
- ) db
- </select>
- <select id="subordinateMembersInsurancePremiums" resultType="java.math.BigDecimal">
- SELECT SUM(db.sumpremium) FROM (
- SELECT DISTINCT orderno,sumpremium FROM partner_premium_details WHERE user_id IN(
- WITH RECURSIVE cte_name AS (
- SELECT user_id,referrer_id, grade FROM partner_user
- WHERE user_id = #{userId} AND grade = #{grade}
- UNION ALL
- SELECT t.user_id, t.referrer_id, t.grade FROM partner_user t
- INNER JOIN cte_name ON t.referrer_id = cte_name.user_id
- WHERE t.grade = (cte_name.grade + 1)
- ) SELECT DISTINCT user_id FROM cte_name WHERE user_id != #{userId} )
- <if test="period.startDate != null and period.endDate != null">
- AND create_time BETWEEN #{period.startDate} AND #{period.endDate}
- </if>
- ) db
- </select>
- </mapper>
|