From 5952d2383571c3fcd96dc0eaad5347b21fce415d Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期一, 02 六月 2025 19:11:15 +0800 Subject: [PATCH] 用户管理 --- ruoyi-system/src/main/resources/mapper/system/AppUserMapper.xml | 79 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 76 insertions(+), 3 deletions(-) diff --git a/ruoyi-system/src/main/resources/mapper/system/AppUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/AppUserMapper.xml index be3036d..b2eb90f 100644 --- a/ruoyi-system/src/main/resources/mapper/system/AppUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/AppUserMapper.xml @@ -9,13 +9,86 @@ 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> \ No newline at end of file -- Gitblit v1.7.1