| | |
| | | tbu.user_name, |
| | | tbu.phone, |
| | | tbu.create_time, |
| | | tbu.balance, |
| | | ifnull(tbu.balance,0.00) as balance, |
| | | tbu.status, |
| | | ifnull(bingding.num , 0) as bingDingUser, |
| | | ifnull(buy.num , 0) as buyNum, |
| | | ifnull(sell.num , 0) as sellNum |
| | | from tb_user tbu |
| | | LEFT JOIN tb_user u2 ON u1.id = u2.invite_id |
| | | left join (select user_id, count(1) as num from tb_order where status = 6 group by user_id) buy on tbu.id=buy.user_id |
| | | LEFT JOIN (select u.id,count(iu.id) as num from tb_user u LEFT JOIN tb_user iu ON u.id = iu.invite_id group by u.id) bingding ON tbu.id = bingding.id |
| | | left join (select user_id, count(1) as num from tb_order where status = 6 group by user_id) buy on tbu.id = buy.user_id |
| | | left join (select c.user_id,count(o.company_id) as num from tb_company c left join tb_order o on c.id=o.company_id and o.status=6 group by c.user_id) sell on tbu.id = sell.user_id |
| | | where tbu.is_delete =0 |
| | | <if test="null != dto.username and dto.username != '' "> |
| | | and tbu.user_name like concat('%',#{dto.username},'%') |
| | | </if> |
| | | <if test="null != dto.phone and dto.phone != '' "> |
| | | and tbu.phone like concat('%',#{dto.phone},'%') |
| | | </if> |
| | | <if test="null != dto.startTime and null != dto.endTime"> |
| | | and tbu.create_time between #{dto.startTime} and #{dto.endTime} |
| | | </if> |
| | | <if test="null != dto.status"> |
| | | and tbu.status =#{dto.status} |
| | | </if> |
| | | |
| | | </select> |
| | | <select id="getDetailInfoById" resultType="com.ruoyi.system.pojo.vo.AppUserVO"> |
| | | select |
| | | tbu.user_name as userName, |
| | | tbu.phone as phone, |
| | | tbu.create_time as createTime, |
| | | ifnull(tbu.balance,0.00) as balance, |
| | | IFNULL(tbu.invite_num, 0) AS inviteNum, |
| | | invite.user_name as bindUserName, |
| | | IFNULL(money.audit, 0) AS audit, |
| | | IFNULL(money.withdraw, 0) AS withdraw, |
| | | IFNULL(publised.publish_num, 0) AS publishNum, |
| | | IFNULL(publised.publish_finish_num, 0) AS publishFinishNum, |
| | | IFNULL(buy.buy_num, 0) AS buyNum, |
| | | IFNULL(buy.buy_total_money, 0) AS buyTotalMoney, |
| | | IFNULL(buy.buy_finish_num, 0) AS buyFinishNum |
| | | from tb_user tbu |
| | | left join tb_user invite on invite.id = tbu.invite_id |
| | | left join (SELECT |
| | | user_id, |
| | | SUM(CASE WHEN status = 0 THEN money ELSE 0 END) AS audit, -- 待审核金额 |
| | | SUM(CASE WHEN status = 1 THEN money ELSE 0 END) AS withdraw -- 已提现金额 |
| | | FROM tb_withdrawal WHERE status IN (0, 1) group by user_id ) money on tbu.id = money.user_id |
| | | left join (select |
| | | user_id, |
| | | COUNT(*) AS publish_num,-- 发布次数 |
| | | SUM(CASE WHEN status = 3 THEN 1 ELSE 0 END) AS publish_finish_num -- 发布完成次数 |
| | | from tb_company GROUP BY user_id ) publised ON tbu.id = publised.user_id |
| | | left join (select |
| | | user_id, |
| | | count(*) as buy_num,-- 购买次数 |
| | | sum( price )as buy_total_money,-- 购买总金额 |
| | | SUM(case when status=6 THEN 1 ELSE 0 end) as buy_finish_num -- 购买订单完成次数 |
| | | from tb_order GROUP BY user_id ) buy ON tbu.id = buy.user_id |
| | | WHERE |
| | | tbu.id = #{id} |
| | | </select> |
| | | <select id="getInviteUserListByInviteId" resultType="com.ruoyi.system.pojo.vo.InviteUser"> |
| | | |
| | | SELECT |
| | | tbu.id AS user_id, |
| | | tbu.user_name, |
| | | tbu.invite_num, |
| | | COALESCE(commission.total_commission, 0) AS commission_money |
| | | FROM |
| | | tb_user tbu |
| | | LEFT JOIN (SELECT |
| | | share_user_id, |
| | | user_id AS order_user_id, -- 订单关联的用户ID(即被邀请用户) |
| | | SUM(commission_price) AS total_commission |
| | | FROM tb_order WHERE status = 6 -- 已完成 |
| | | AND share_user_id = #{id} |
| | | GROUP BY share_user_id, user_id -- 按分佣用户和订单关联用户分组 |
| | | ) commission ON tbu.id = commission.order_user_id -- 关联被邀请用户ID |
| | | WHERE |
| | | tbu.status != 3 -- 未注销 |
| | | AND tbu.is_delete = 0 -- 未删除 |
| | | AND tbu.invite_id = #{id}; |
| | | </select> |
| | | </mapper> |