From 3156be749dfc93764850b27f7cc2b4514a3ae4d0 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 30 Oct 2023 16:36:54 +0800
Subject: [PATCH] 用户收益列表

---
 src/main/resources/mapper/modules/ChatUserMapper.xml |  301 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 296 insertions(+), 5 deletions(-)

diff --git a/src/main/resources/mapper/modules/ChatUserMapper.xml b/src/main/resources/mapper/modules/ChatUserMapper.xml
index b040b45..db8bda4 100644
--- a/src/main/resources/mapper/modules/ChatUserMapper.xml
+++ b/src/main/resources/mapper/modules/ChatUserMapper.xml
@@ -7,7 +7,12 @@
         a.user_id userId,
         a.nick_name nickName,
         a.chat_no chatNo,
+        a.model_type modelType,
+        a.create_group createGroup,
+        a.phone phone,
         a.status status,
+        a.invite_id inviteId,
+        a.is_robot isRobot,
         date_format(a.create_time, '%Y-%m-%d %H:%m:%s') createTime,
         IFNULL(sum(b.total_amount), 0) totalAmount,
         IFNULL(sum(b.ava_amount), 0) avaAmount
@@ -15,11 +20,14 @@
         left join chat_wallet b on b.user_id = a.user_id and type = 'USDT'
         <where>
             <if test="record != null">
+                <if test="record.phone != null and record.phone != ''">
+                    and a.phone like CONCAT('%', CONCAT(#{record.phone}, '%'))
+                </if>
                 <if test="record.nickName != null and record.nickName != ''">
                     and a.nick_name like CONCAT('%', CONCAT(#{record.nickName}, '%'))
                 </if>
-                <if test="record.chatNo != null and record.chatNo != ''">
-                    and a.chat_no = #{record.chatNo}
+                <if test="record.inviteId != null and record.inviteId != ''">
+                    and a.invite_id = #{record.inviteId}
                 </if>
                 <if test="record.status != null and record.status != ''">
                     and a.status = #{record.status}
@@ -28,6 +36,54 @@
         </where>
         group by a.user_id
         order by a.create_time desc
+    </select>
+
+    <select id="selectUserPerkListInPage" resultType="cc.mrbird.febs.mall.vo.AdminChatUserPerkVo">
+        select
+        a.user_id userId,
+        a.nick_name nickName,
+        a.chat_no chatNo,
+        a.get_boom getBoom,
+        a.phone phone,
+        a.invite_id inviteId,
+        a.is_robot isRobot,
+        date_format(a.create_time, '%Y-%m-%d %H:%m:%s') createTime,
+        IFNULL(sum(b.total_amount), 0) totalAmount,
+        IFNULL(sum(b.ava_amount), 0) avaAmount,
+        (
+            SELECT
+                COUNT(c.id)
+            FROM chat_red_bag c
+            where c.from_user_id = a.user_id
+                AND c.msg_type = 'GROUP'
+        ) groupRedBagNum,
+        (
+            select IFNULL(sum(IFNULL(d.amount,0)),0)
+            from chat_amount_flow d
+            where (d.type = 7 or d.type = 9)
+            and d.user_id = a.user_id
+        ) teamPerkAmount
+        from chat_user a
+        left join chat_wallet b on b.user_id = a.user_id and b.type = 'USDT'
+        <where>
+            a.is_robot = 0
+            <if test="record.phone != null and record.phone != ''">
+                and a.phone like CONCAT('%', CONCAT(#{record.phone}, '%'))
+            </if>
+            <if test="record.nickName != null and record.nickName != ''">
+                and a.nick_name like CONCAT('%', CONCAT(#{record.nickName}, '%'))
+            </if>
+            <if test="record.inviteId != null and record.inviteId != ''">
+                and (find_in_set(#{record.inviteId}, referrer_ids) or invite_id = #{record.inviteId})
+            </if>
+            <if test="record.isRobot != null">
+                and a.is_robot = #{record.isRobot}
+            </if>
+        </where>
+        group by a.user_id
+        HAVING teamPerkAmount > 0
+        order by
+        a.user_id asc ,a.create_time asc
     </select>
 
     <select id="selectByUserId" resultType="cc.mrbird.febs.mall.entity.ChatUser">
@@ -67,16 +123,20 @@
         a.type type,
         a.amount amount,
         b.nick_name nickName,
+        b.phone phone,
         date_format(a.create_time, '%Y-%m-%d %H:%m:%s') createTime,
         a.ava_amount avaAmount,
         a.state state,
         a.remark remark
         from chat_amount_flow a
-        left join chat_user b on b.user_id = a.user_id
+        inner join chat_user b on b.user_id = a.user_id
         <where>
             <if test="record != null">
+                <if test="record.phone != null and record.phone != ''">
+                    and b.phone like CONCAT('%', CONCAT(#{record.phone}, '%'))
+                </if>
                 <if test="record.nickName != null and record.nickName != ''">
-                    and b.nick_name like CONCAT('%', CONCAT(#{record.nickName}, '%'))
+                    and b.nick_name = #{record.nickName}
                 </if>
                 <if test="record.type != null and record.type != ''">
                     and a.type = #{record.type}
@@ -90,6 +150,7 @@
         select
         date_format(a.created_time, '%Y-%m-%d %H:%m:%s') createdTime,
         b.nick_name nickName,
+        b.phone phone,
         a.amount amount,
         a.last_amount lastAmount,
         a.status status,
@@ -101,6 +162,9 @@
         left join chat_user b on b.user_id = a.user_id
         <where>
             <if test="record != null">
+                <if test="record.phone != null and record.phone != ''">
+                    and b.phone like CONCAT('%', CONCAT(#{record.phone}, '%'))
+                </if>
                 <if test="record.nickName != null and record.nickName != ''">
                     and b.nick_name like CONCAT('%', CONCAT(#{record.nickName}, '%'))
                 </if>
@@ -116,15 +180,20 @@
         select
         date_format(a.created_time, '%Y-%m-%d %H:%m:%s') createdTime,
         b.nick_name nickName,
+        b.phone phone,
         a.id id,
-        a.amount amount,
+        (a.amount - a.fee) amount,
         a.type type,
         a.address address,
+        a.address_type addressType,
         a.state state
         from member_coin_withdraw a
         left join chat_user b on b.user_id = a.user_id
         <where>
             <if test="record != null">
+                <if test="record.phone != null and record.phone != ''">
+                    and b.phone like CONCAT('%', CONCAT(#{record.phone}, '%'))
+                </if>
                 <if test="record.nickName != null and record.nickName != ''">
                     and b.nick_name like CONCAT('%', CONCAT(#{record.nickName}, '%'))
                 </if>
@@ -154,4 +223,226 @@
         update chat_amount_flow set state = #{state} where user_id = #{userId} and relation_id = #{id}
     </update>
 
+    <update id="updateIsRobotByUserId">
+        update chat_user
+        set
+            is_robot = #{isRobot}
+        where user_id = #{userId}
+    </update>
+
+    <update id="updateModelTypeByUserId">
+        update chat_user
+        set
+            model_type = #{modelType}
+        where user_id = #{userId}
+    </update>
+
+    <select id="selectDicDataByTypeAndCode" resultType="cc.mrbird.febs.mall.entity.DataDictionary">
+        select * from data_dictionary a
+        where a.type=#{type} and a.code=#{code}
+    </select>
+
+    <select id="selectGroupListInPage" resultType="cc.mrbird.febs.mall.vo.AdminGroupVo">
+        select
+        a.id id,
+        a.use_robot useRobot,
+        a.name name,
+        a.model_type modelType,
+        a.amount_min amountMin,
+        a.amount_max amountMax,
+        a.red_bag_cnt redBagCnt,
+        a.auto_send autoSend,
+        b.phone phone,
+        b.nick_name nickName,
+        a.create_time createTime
+        from chat_group a
+        left join chat_user b on b.user_id = a.master
+        <where>
+            <if test="record != null">
+                <if test="record.name != null and record.name != ''">
+                    and a.name like CONCAT('%', CONCAT(#{record.name}, '%'))
+                </if>
+            </if>
+        </where>
+        order by a.create_time desc
+    </select>
+
+    <select id="selectVersionListInPage" resultType="cc.mrbird.febs.mall.vo.AdminVersionVo">
+        select
+        a.*
+        from chat_version a
+    </select>
+
+    <update id="updateIsRobotByGroupId">
+        update chat_group
+        set
+            use_robot = #{useRobot}
+        where id = #{id}
+    </update>
+
+    <select id="getGroupInfoById" resultType="cc.mrbird.febs.mall.vo.AdminGroupInfoVo">
+        select
+        a.id id,
+        a.name name,
+        b.phone phone,
+        a.model_type modelType,
+        b.nick_name nickName,
+        a.use_robot useRobot,
+        a.amount_min amountMin,
+        a.amount_max amountMax,
+        a.red_bag_cnt redBagCnt
+        from chat_group a
+        left join chat_user b on b.user_id = a.master
+        where id = #{id}
+    </select>
+
+    <select id="getVersionInfoById" resultType="cc.mrbird.febs.mall.vo.AdminVersionVo">
+        select
+            a.*
+        from chat_version a
+        where id = #{id}
+    </select>
+
+    <update id="updateAutoSendByGroupId">
+        update chat_group
+        set
+            auto_send = #{autoSend}
+        where id = #{id}
+    </update>
+
+    <select id="selectRedBagListInPage" resultType="cc.mrbird.febs.mall.vo.AdminRedBagVo">
+        select
+        a.*,
+        b.nick_name nickName,
+        b.is_robot isRobot,
+        c.name groupName
+        from chat_red_bag a
+        left join chat_user b on b.user_id = a.from_user_id
+        left join chat_group c on c.id = a.to_user_id
+        <where>
+            a.msg_type = 'GROUP'
+            <if test="record != null">
+                <if test="record.name != null and record.name != ''">
+                    and c.name like CONCAT('%', CONCAT(#{record.name}, '%'))
+                </if>
+                <if test="record.nickName != null and record.nickName != ''">
+                    and b.nick_name like CONCAT('%', CONCAT(#{record.nickName}, '%'))
+                </if>
+                <if test="record.isRobot != null">
+                    and b.is_robot = #{record.isRobot}
+                </if>
+            </if>
+        </where>
+        order by a.create_time desc
+    </select>
+
+    <update id="updateCreateGroupByUserId">
+        update chat_user
+        set
+            create_group = #{createGroup}
+        where user_id = #{userId}
+    </update>
+
+    <update id="updateNicknameById">
+        update chat_user
+        set
+            nick_name = #{nickName}
+        where user_id = #{userId}
+    </update>
+
+    <select id="selectListByIsRobot" resultType="cc.mrbird.febs.mall.entity.ChatUser">
+        select
+            a.*
+        from chat_user a
+        where is_robot = #{isRobot}
+    </select>
+
+    <select id="selectTotalAmount" resultType="java.math.BigDecimal">
+        select IFNULL(sum(IFNULL(total_amount,0)),0)
+        from chat_wallet
+        where type = 'USDT'
+    </select>
+
+    <select id="selectTotalType" resultType="java.math.BigDecimal">
+        select IFNULL(sum(IFNULL(amount,0)),0)
+        from chat_amount_flow
+        where type = #{type}
+        <if test='dateType == "D"'>
+            and date_format(create_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d');
+        </if>
+        <if test='dateType == "M"'>
+            and date_format(create_time, '%Y-%m') = date_format(#{date}, '%Y-%m');
+        </if>
+    </select>
+
+
+    <select id="selectTotalTypeByUserId" resultType="java.math.BigDecimal">
+        select IFNULL(sum(IFNULL(amount,0)),0)
+        from chat_amount_flow
+        where type = #{type}
+          and user_id = #{userId}
+        <if test='dateType == "D"'>
+            and date_format(create_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d');
+        </if>
+        <if test='dateType == "M"'>
+            and date_format(create_time, '%Y-%m') = date_format(#{date}, '%Y-%m');
+        </if>
+    </select>
+
+    <select id="selectUserList" resultType="cc.mrbird.febs.mall.entity.ChatUser">
+        select
+        a.*
+        from chat_user a
+        where is_robot = #{isRobot}
+        <if test='dateType == "D"'>
+            and date_format(create_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d');
+        </if>
+        <if test='dateType == "M"'>
+            and date_format(create_time, '%Y-%m') = date_format(#{date}, '%Y-%m');
+        </if>
+    </select>
+
+    <select id="selectListByMsgType" resultType="cc.mrbird.febs.mall.vo.AdminChatRedBagVo">
+        select
+               a.*
+        from chat_red_bag a
+        where a.msg_type = #{msgType}
+        <if test='date != "" and date != null'>
+            and date_format(a.create_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
+        </if>
+        and a.from_user_id = #{userId}
+    </select>
+
+    <select id="selectByOverDueStatueAndTime" resultType="cc.mrbird.febs.mall.vo.AdminChatRedBagVo">
+        select *
+        from chat_red_bag
+        where overdue_state = #{overdueState}
+          and #{overdueTime} > overdue_time
+        order by id asc
+            limit 500
+    </select>
+
+
+    <update id="updateOverdueStatusById">
+        update chat_red_bag
+        set
+            overdue_state = #{overdueState}
+        where id = #{id}
+    </update>
+
+    <update id="updatePortraitById">
+        update chat_user
+        set
+            portrait = #{portrait}
+        where user_id = #{userId}
+    </update>
+
+    <update id="updateGetBoomByUserId">
+        update chat_user
+        set
+            get_boom = #{getBoom}
+        where user_id = #{userId}
+    </update>
+
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1