2025-06-17 20:59:52 +08:00
<?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= "cn.iocoder.yudao.module.tkdata.dal.mysql.employeehosts.EmployeeHostsMapper" >
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见: https://www.iocoder.cn/MyBatis/x-plugins/
-->
<!-- 使用 IGNORE 关键字忽略重复插入 -->
<insert id= "insertIgnore" parameterType= "cn.iocoder.yudao.module.tkdata.dal.dataobject.employeehosts.EmployeeHostsDO" >
INSERT IGNORE INTO server_employee_hosts
<trim prefix= "(" suffix= ")" suffixOverrides= "," >
<if test= "hostsId != null" > hosts_id,</if>
<if test= "userId != null" > user_id,</if>
<if test= "hostsLevel != null" > hosts_level,</if>
<if test= "hostsCoins != null" > hosts_coins,</if>
<if test= "invitationType != null" > Invitation_type,</if>
<if test= "onlineFans != null" > online_fans,</if>
<if test= "fans != null" > fans,</if>
<if test= "fllowernum != null" > fllowernum,</if>
<if test= "yesterdayCoins != null" > yesterday_coins,</if>
<if test= "country != null" > country,</if>
<if test= "operationStatus != null" > operation_status,</if>
<if test= "hostsKind != null" > hosts_kind</if>
</trim>
<trim prefix= "values (" suffix= ")" suffixOverrides= "," >
<if test= "hostsId != null" > #{hostsId},</if>
<if test= "userId != null" > #{userId},</if>
<if test= "hostsLevel != null" > #{hostsLevel},</if>
<if test= "hostsCoins != null" > #{hostsCoins},</if>
<if test= "invitationType != null" > #{invitationType},</if>
<if test= "onlineFans != null" > #{onlineFans},</if>
<if test= "fans != null" > #{fans},</if>
<if test= "fllowernum != null" > #{fllowernum},</if>
<if test= "yesterdayCoins != null" > #{yesterdayCoins},</if>
<if test= "country != null" > #{country},</if>
<if test= "operationStatus != null" > #{operationStatus},</if>
<if test= "hostsKind != null" > #{hostsKind}</if>
</trim>
</insert>
<!-- 批量插入忽略重复 -->
<insert id= "batchInsertIgnore" parameterType= "java.util.List" >
INSERT IGNORE INTO server_employee_hosts
(hosts_id, user_id, hosts_level, hosts_coins, Invitation_type,
online_fans, fans, fllowernum, yesterday_coins, country,
operation_status, hosts_kind)
VALUES
<foreach collection= "list" item= "item" separator= "," >
(#{item.hostsId}, #{item.userId}, #{item.hostsLevel}, #{item.hostsCoins}, #{item.invitationType},
#{item.onlineFans}, #{item.fans}, #{item.fllowernum}, #{item.yesterdayCoins}, #{item.country},
#{item.operationStatus}, #{item.hostsKind})
</foreach>
</insert>
2025-06-24 15:20:23 +08:00
2025-06-25 14:26:42 +08:00
<select id= "selectPageWithXMLWithSelf" resultType= "cn.iocoder.yudao.module.tkdata.dal.dataobject.employeehosts.EmployeeHostsDO" >
2025-06-24 15:20:23 +08:00
select ns.id,hosts_id, hosts_level, hosts_coins, Invitation_type, fans, fllowernum,
2025-07-03 15:23:50 +08:00
yesterday_coins,ns.create_time, country, online_fans,hosts_kind,remake ,operation_status ,ns.update_time from server_employee_hosts ns left join server_country_info ci ON ns.country = ci.country_name
2025-06-24 15:20:23 +08:00
WHERE tenant_id =#{req.tenantId,jdbcType=BIGINT}
and ns.user_id =#{req.userId,jdbcType=BIGINT}
<!-- 主播国家筛选 -->
<if test= "req.country!= '' and req.country != null" >
and ci.country_group_name =#{req.country,jdbcType=VARCHAR}
</if>
<!-- 按照入库时间筛选主播 -->
<if test= "req.createTime != null" >
and DATE(ns.create_time) =#{req.createTime}
</if>
2025-06-25 14:26:42 +08:00
<if test= "req.operationStatus != null" >
and operation_status =#{req.operationStatus,jdbcType=INTEGER}
</if>
2025-06-24 15:20:23 +08:00
<!-- 主播 Id 模糊搜索 -->
<if test= "req.hostsId != '' and req.hostsId != null " >
and ns.hosts_id like concat(#{req.hostsId,jdbcType=VARCHAR},'%')
</if>
<!-- 主播等级筛选 -->
<if test= "req.hostsLevel != null and req.hostsLevel != ''" >
2025-06-25 14:26:42 +08:00
and ns.hosts_level =#{req.hostsLevel,jdbcType=VARCHAR}
</if>
<!-- 今日主播金币筛选 -->
<if test= "req.hostsCoinsMin != null and req.hostsCoinsMax == null and req.hostsCoinsMax != '' " >
and ns.hosts_coins >=#{req.hostsCoinsMin,jdbcType=INTEGER}
</if>
<if test= "req.hostsCoinsMax != null and req.hostsCoinsMin == null and req.hostsCoinsMin !='' " >
and ns.hosts_coins < =#{req.hostsCoinsMax,jdbcType=INTEGER}
</if>
<if test= "req.hostsCoinsMin != null and req.hostsCoinsMax != null " >
and ns.hosts_coins between #{req.hostsCoinsMin,jdbcType=INTEGER} and #{req.hostsCoinsMax,jdbcType=INTEGER}
</if>
<!-- 昨日主播金币筛选 -->
<if test= "req.yesterdayCoinsMin != null and req.yesterdayCoinsMax == null and req.yesterdayCoinsMax != ''" >
and ns.yesterday_coins >=#{req.yesterdayCoinsMin,jdbcType=INTEGER}
</if>
<if test= "req.yesterdayCoinsMax != null and req.yesterdayCoinsMin == null and req.yesterdayCoinsMin != '' " >
and ns.yesterday_coins < =#{req.yesterdayCoinsMax,jdbcType=INTEGER}
</if>
<if test= "req.yesterdayCoinsMin != null and req.yesterdayCoinsMax != null " >
and ns.yesterday_coins between #{req.yesterdayCoinsMin,jdbcType=INTEGER} and #{req.yesterdayCoinsMax,jdbcType=INTEGER}
</if>
<!-- 主播粉丝数筛选 -->
<if test= "req.fansMin != null and req.fansMax == null and req.fansMax != ''" >
and ns.fans >=#{req.fansMin,jdbcType=INTEGER}
</if>
<if test= "req.fansMax != null and req.fansMin == null and req.fansMin != '' " >
and ns.fans < =#{req.fansMax,jdbcType=INTEGER}
</if>
<if test= "req.fansMin != null and req.fansMax != null " >
and ns.fans between #{req.fansMin,jdbcType=INTEGER} and #{req.fansMax,jdbcType=INTEGER}
</if>
<!-- 主播关注筛选 -->
<if test= "req.fllowernumMin != null and req.fllowernumMax == null and req.fllowernumMax != ''" >
and ns.fllowernum >=#{req.fllowernumMin,jdbcType=INTEGER}
</if>
<if test= "req.fllowernumMax != null and req.fllowernumMin == null and req.fllowernumMin != ''" >
and ns.fllowernum < =#{req.fllowernumMax,jdbcType=INTEGER}
</if>
<if test= "req.fllowernumMin != null and req.fllowernumMax != null " >
and ns.fllowernum between #{req.fllowernumMin,jdbcType=INTEGER} and #{req.fllowernumMax,jdbcType=INTEGER}
</if>
<!-- 主播在线人数筛选 -->
<if test= "req.onlineFansMin != null and req.onlineFansMax == null and req.onlineFansMax != '' " >
and ns.online_fans >=#{req.onlineFansMin,jdbcType=INTEGER}
</if>
<if test= "req.onlineFansMax != null and req.onlineFansMin == null and req.onlineFansMin != ''" >
and ns.online_fans < = #{req.onlineFansMax,jdbcType=INTEGER}
</if>
<if test= "req.onlineFansMin != null and req.onlineFansMax != null " >
and ns.online_fans between #{req.onlineFansMin,jdbcType=INTEGER} and #{req.onlineFansMax,jdbcType=INTEGER}
</if>
<!-- 邀请类筛选 -->
<if test= "req.invitationType != null" >
and ns.Invitation_type =#{req.invitationType,jdbcType=INTEGER}
</if>
<!-- 排序类型 -->
2025-07-03 20:10:31 +08:00
group by
ns.hosts_id
2025-06-25 14:26:42 +08:00
order by
<choose >
<!-- 传空和默认的情况下按照时间降序排序 -->
<when test= "req.sortName == '' and req.sortName == null" >
ns.create_time desc
</when>
<!-- sortNmae 有值的情况下排序 -->
<when test= "req.sortName != null and req.sort != null " >
<if test= "req.sortName == 'createTime' and req.sort != null" >
ns.create_time ${req.sort}
</if>
<!-- 昨日主播金币条件排序 -->
<if test= "req.sortName == 'yesterdayCoins' and req.sort != null" >
ns.yesterday_coins ${req.sort}
</if>
<!-- 主播金币条件排序 -->
<if test= "req.sortName == 'hostsCoins' and req.sort != null" >
ns.hosts_coins ${req.sort}
</if>
<!-- 主播粉丝条件排序 -->
<if test= "req.sortName == 'fans' and req.sort != null" >
ns.fans ${req.sort}
</if>
<!-- 主播关注数量排序 -->
<if test= "req.sortName == 'fllowernum' and req.sort != null" >
ns.fllowernum ${req.sort}
</if>
<!-- 主播直播间在线数量排序 -->
<if test= "req.sortName == 'onlineFans' and req.sort != null" >
ns.online_fans ${req.sort}
</if>
</when>
<otherwise >
ns.create_time desc
</otherwise>
</choose>
</select>
<select id= "selectPageWithXML" resultType= "cn.iocoder.yudao.module.tkdata.dal.dataobject.employeehosts.EmployeeHostsDO" >
select ns.id,hosts_id, hosts_level, hosts_coins, Invitation_type, fans, fllowernum,
2025-07-03 15:23:50 +08:00
yesterday_coins,ns.create_time, country, online_fans,hosts_kind,remake ,operation_status,user_id,uid,ns.update_time from server_employee_hosts ns left join server_country_info ci ON ns.country = ci.country_name
2025-06-25 14:26:42 +08:00
WHERE tenant_id = #{req.tenantId,jdbcType=BIGINT}
2025-07-02 14:45:02 +08:00
and deleted = 0
2025-06-25 14:26:42 +08:00
<!-- 筛选员工名下主播 -->
2025-07-02 14:20:28 +08:00
<if test= "req.userId != null " >
2025-06-25 14:26:42 +08:00
and user_id = #{req.userId,jdbcType=BIGINT}
</if>
<!-- 主播国家筛选 -->
<if test= "req.country!= '' and req.country != null" >
and ci.country_group_name =#{req.country,jdbcType=VARCHAR}
</if>
<!-- 按照入库时间筛选主播 -->
<if test= "req.createTime != null" >
and DATE(ns.create_time) =#{req.createTime}
</if>
<if test= "req.operationStatus != null" >
and operation_status =#{req.operationStatus,jdbcType=INTEGER}
</if>
<!-- 主播 Id 模糊搜索 -->
<if test= "req.hostsId != '' and req.hostsId != null " >
and ns.hosts_id like concat(#{req.hostsId,jdbcType=VARCHAR},'%')
</if>
<!-- 主播等级筛选 -->
<if test= "req.hostsLevel != null and req.hostsLevel != ''" >
2025-06-24 15:20:23 +08:00
and ns.hosts_level =#{req.hostsLevel,jdbcType=VARCHAR}
</if>
<!-- 今日主播金币筛选 -->
2025-07-02 14:20:28 +08:00
<if test= "req.hostsCoinsMin != null and req.hostsCoinsMax == null " >
2025-06-24 15:20:23 +08:00
and ns.hosts_coins >=#{req.hostsCoinsMin,jdbcType=INTEGER}
</if>
2025-07-02 14:20:28 +08:00
<if test= "req.hostsCoinsMax != null and req.hostsCoinsMin == null " >
2025-06-24 15:20:23 +08:00
and ns.hosts_coins < =#{req.hostsCoinsMax,jdbcType=INTEGER}
</if>
<if test= "req.hostsCoinsMin != null and req.hostsCoinsMax != null " >
and ns.hosts_coins between #{req.hostsCoinsMin,jdbcType=INTEGER} and #{req.hostsCoinsMax,jdbcType=INTEGER}
</if>
<!-- 昨日主播金币筛选 -->
2025-07-02 14:20:28 +08:00
<if test= "req.yesterdayCoinsMin != null and req.yesterdayCoinsMax == null " >
2025-06-24 15:20:23 +08:00
and ns.yesterday_coins >=#{req.yesterdayCoinsMin,jdbcType=INTEGER}
</if>
2025-07-02 14:20:28 +08:00
<if test= "req.yesterdayCoinsMax != null and req.yesterdayCoinsMin == null " >
2025-06-24 15:20:23 +08:00
and ns.yesterday_coins < =#{req.yesterdayCoinsMax,jdbcType=INTEGER}
</if>
<if test= "req.yesterdayCoinsMin != null and req.yesterdayCoinsMax != null " >
and ns.yesterday_coins between #{req.yesterdayCoinsMin,jdbcType=INTEGER} and #{req.yesterdayCoinsMax,jdbcType=INTEGER}
</if>
<!-- 主播粉丝数筛选 -->
2025-07-02 14:20:28 +08:00
<if test= "req.fansMin != null and req.fansMax == null " >
2025-06-24 15:20:23 +08:00
and ns.fans >=#{req.fansMin,jdbcType=INTEGER}
</if>
2025-07-02 14:20:28 +08:00
<if test= "req.fansMax != null and req.fansMin == null " >
2025-06-24 15:20:23 +08:00
and ns.fans < =#{req.fansMax,jdbcType=INTEGER}
</if>
<if test= "req.fansMin != null and req.fansMax != null " >
and ns.fans between #{req.fansMin,jdbcType=INTEGER} and #{req.fansMax,jdbcType=INTEGER}
</if>
<!-- 主播关注筛选 -->
2025-07-02 14:20:28 +08:00
<if test= "req.fllowernumMin != null and req.fllowernumMax == null " >
2025-06-24 15:20:23 +08:00
and ns.fllowernum >=#{req.fllowernumMin,jdbcType=INTEGER}
</if>
2025-07-02 14:20:28 +08:00
<if test= "req.fllowernumMax != null and req.fllowernumMin == null " >
2025-06-24 15:20:23 +08:00
and ns.fllowernum < =#{req.fllowernumMax,jdbcType=INTEGER}
</if>
<if test= "req.fllowernumMin != null and req.fllowernumMax != null " >
and ns.fllowernum between #{req.fllowernumMin,jdbcType=INTEGER} and #{req.fllowernumMax,jdbcType=INTEGER}
</if>
<!-- 主播在线人数筛选 -->
2025-07-02 14:20:28 +08:00
<if test= "req.onlineFansMin != null and req.onlineFansMax == null " >
2025-06-24 15:20:23 +08:00
and ns.online_fans >=#{req.onlineFansMin,jdbcType=INTEGER}
</if>
2025-07-02 14:20:28 +08:00
<if test= "req.onlineFansMax != null and req.onlineFansMin == null " >
2025-06-24 15:20:23 +08:00
and ns.online_fans < = #{req.onlineFansMax,jdbcType=INTEGER}
</if>
<if test= "req.onlineFansMin != null and req.onlineFansMax != null " >
and ns.online_fans between #{req.onlineFansMin,jdbcType=INTEGER} and #{req.onlineFansMax,jdbcType=INTEGER}
</if>
<!-- 邀请类筛选 -->
<if test= "req.invitationType != null" >
and ns.Invitation_type =#{req.invitationType,jdbcType=INTEGER}
</if>
<!-- 排序类型 -->
2025-07-03 20:10:31 +08:00
group by
ns.hosts_id
2025-06-24 15:20:23 +08:00
order by
<choose >
<!-- 传空和默认的情况下按照时间降序排序 -->
<when test= "req.sortName == '' and req.sortName == null" >
ns.create_time desc
</when>
<!-- sortNmae 有值的情况下排序 -->
<when test= "req.sortName != null and req.sort != null " >
<if test= "req.sortName == 'createTime' and req.sort != null" >
ns.create_time ${req.sort}
</if>
<!-- 昨日主播金币条件排序 -->
<if test= "req.sortName == 'yesterdayCoins' and req.sort != null" >
ns.yesterday_coins ${req.sort}
</if>
<!-- 主播金币条件排序 -->
<if test= "req.sortName == 'hostsCoins' and req.sort != null" >
ns.hosts_coins ${req.sort}
</if>
<!-- 主播粉丝条件排序 -->
<if test= "req.sortName == 'fans' and req.sort != null" >
ns.fans ${req.sort}
</if>
<!-- 主播关注数量排序 -->
<if test= "req.sortName == 'fllowernum' and req.sort != null" >
ns.fllowernum ${req.sort}
</if>
<!-- 主播直播间在线数量排序 -->
<if test= "req.sortName == 'onlineFans' and req.sort != null" >
ns.online_fans ${req.sort}
</if>
</when>
<otherwise >
ns.create_time desc
</otherwise>
</choose>
</select>
2025-06-17 20:59:52 +08:00
</mapper>