<?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="cc.mrbird.febs.mall.mapper.ChatUserMapper">
|
|
<select id="selectUserListInPage" resultType="cc.mrbird.febs.mall.vo.AdminChatUserVo">
|
select
|
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
|
from chat_user a
|
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.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}
|
</if>
|
</if>
|
</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">
|
select
|
a.*
|
from chat_user a
|
where a.user_id = #{userId}
|
</select>
|
|
<update id="updateStatusByUserId">
|
update chat_user
|
set
|
status = #{status}
|
where user_id = #{userId}
|
</update>
|
|
<select id="selectTotalAmountByUserIdAndType" resultType="cc.mrbird.febs.mall.vo.AdminChatWalletVo">
|
select
|
a.user_id id,
|
a.total_amount balance
|
from chat_wallet a
|
where a.user_id = #{userId}
|
and a.type = 'USDT'
|
</select>
|
|
<update id="updateBalanceByUserId">
|
update chat_wallet
|
set
|
total_amount = total_amount + #{addBalance},
|
ava_amount = ava_amount + #{addBalance}
|
where user_id = #{userId}
|
and type = 'USDT'
|
</update>
|
|
<select id="selectAmountFlowListInPage" resultType="cc.mrbird.febs.mall.vo.AdminChatAmountFlowVo">
|
select
|
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
|
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 = #{record.nickName}
|
</if>
|
<if test="record.type != null and record.type != ''">
|
and a.type = #{record.type}
|
</if>
|
</if>
|
</where>
|
order by a.create_time desc
|
</select>
|
|
<select id="selectChargeListInPage" resultType="cc.mrbird.febs.mall.vo.AdminChatCahrgeVo">
|
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,
|
a.symbol symbol,
|
a.tag tag,
|
a.hash hash,
|
a.address address
|
from member_coin_charge 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>
|
<if test="record.address != null and record.address != ''">
|
and a.address = #{record.address}
|
</if>
|
</if>
|
</where>
|
order by a.created_time desc
|
</select>
|
|
<select id="selectWithdrawListInPage" resultType="cc.mrbird.febs.mall.vo.AdminChatWithDrawVo">
|
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 - 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>
|
<if test="record.address != null and record.address != ''">
|
and a.address = #{record.address}
|
</if>
|
<if test="record.state != null and record.state != ''">
|
and a.state = #{record.state}
|
</if>
|
<if test="record.type != null and record.type != ''">
|
and a.type = #{record.type}
|
</if>
|
</if>
|
</where>
|
order by a.created_time desc
|
</select>
|
|
<select id="selectWithdrawInfoById" resultType="cc.mrbird.febs.mall.entity.MemberCoinWithdraw">
|
select * from member_coin_withdraw a where a.id = #{id}
|
</select>
|
|
<update id="updateWithdrawStateById">
|
update member_coin_withdraw set state = #{state} where id = #{id}
|
</update>
|
|
<update id="updateAmountFlowListByWithdrawId">
|
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>
|