You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
5.3 KiB

<?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="com.example.demo.mapper.live.LiveMapper">
<select id="selectLiveBy" resultType="com.example.demo.domain.vo.bean.BeanConsumeLive">
select lgg.id as id,
mi.name as name,
lgg.jwcode as jwcode,
mi.deptName as dept,
lg.name as gift,
lgg.gold_beans as beanNum,
lgg.gold_free as freeBean,
lgg.gold_buy as buyBean,
lp.title as liveChannel,
l.name as liveName,
lgg.created_at as consumeTime
FROM live_give_gifts lgg
LEFT JOIN live_gifts lg ON lg.id = lgg.g_id
LEFT JOIN live l ON l.id = lgg.live_id
LEFT JOIN live_pindao lp ON lp.pd_id = l.channel_id
LEFT JOIN member_info mi ON mi.jwcode = lgg.jwcode
<where>
<if test="beanConsumeLive.jwcode != null and beanConsumeLive.jwcode != ''">
AND lgg.jwcode = #{beanConsumeLive.jwcode}
</if>
<if test="beanConsumeLive.dept != null and beanConsumeLive.dept != ''">
AND mi.deptName = #{beanConsumeLive.dept}
</if>
<!-- <if test="beanConsumeLive.type != null and beanConsumeLive.type != ''">
AND fyr.source_type = #{beanConsumeLive.type}
</if>-->
<if test="beanConsumeLive.startTime != null and beanConsumeLive.endTime != null">
AND lgg.created_at BETWEEN #{beanConsumeLive.startTime}
AND #{beanConsumeLive.endTime}
</if>
<if test="beanConsumeLive.gift != null and beanConsumeLive.gift != ''">
AND lg.name =#{beanConsumeLive.gift}
</if>
<if test="beanConsumeLive.liveChannel != null and beanConsumeLive.liveChannel != ''">
AND lp.title = #{beanConsumeLive.liveChannel}
</if>
<if test="beanConsumeLive.liveName != null and beanConsumeLive.liveName != ''">
AND l.name LIKE CONCAT('%', #{beanConsumeLive.liveName}, '%')
</if>
</where>
<choose>
<when test="beanConsumeLive.sortField != null and beanConsumeLive.sortField != '' and beanConsumeLive.sortOrder != null and beanConsumeLive.sortOrder != ''">
ORDER BY ${beanConsumeLive.sortField} ${beanConsumeLive.sortOrder}
</when>
<otherwise>
ORDER BY consumeTime DESC
</otherwise>
</choose>
</select>
<!--获取直播礼物列表-->
<select id="getLiveGift" resultType="java.lang.String">
select distinct name from live_gifts
</select>
<!--获取直播频道列表-->
<select id="getLiveChannel" resultType="java.lang.String">
select distinct title from live_pindao
</select>
<!--计算直播消费金豆合计数-->
<select id="selectSumLiveBy" resultType="com.example.demo.domain.vo.bean.BeanConsumeGold">
select
ifnull(sum(t.beanNum),0) as sunBeam,
ifnull(sum(t.freeBean),0) as freeBean,
ifnull(sum(t.buyBean),0) as permanentBean,
count(*) as totalNum
from
(select mi.name as name,
lgg.jwcode as jwcode,
mi.deptName as dept,
lg.name as gift,
lgg.gold_beans as beanNum,
lgg.gold_free as freeBean,
lgg.gold_buy as buyBean,
lp.title as liveChannel,
l.name as liveName,
lgg.created_at as consumeTime
FROM live_give_gifts lgg
LEFT JOIN live_gifts lg ON lg.id = lgg.g_id
LEFT JOIN live l ON l.id = lgg.live_id
LEFT JOIN live_pindao lp ON lp.pd_id = l.channel_id
LEFT JOIN member_info mi ON mi.jwcode = lgg.jwcode
<where>
lgg.knapsack=0
<if test="beanConsumeLive.jwcode != null and beanConsumeLive.jwcode != ''">
AND lgg.jwcode = #{beanConsumeLive.jwcode}
</if>
<if test="beanConsumeLive.dept != null and beanConsumeLive.dept != ''">
AND mi.deptName = #{beanConsumeLive.dept}
</if>
<!-- <if test="beanConsumeLive.type != null and beanConsumeLive.type != ''">
AND fyr.source_type = #{beanConsumeLive.type}
</if>-->
<if test="beanConsumeLive.startTime != null and beanConsumeLive.endTime != null">
AND lgg.created_at BETWEEN #{beanConsumeLive.startTime}
AND #{beanConsumeLive.endTime}
</if>
<if test="beanConsumeLive.gift != null and beanConsumeLive.gift != ''">
AND lg.name =#{beanConsumeLive.gift}
</if>
<if test="beanConsumeLive.liveChannel != null and beanConsumeLive.liveChannel != ''">
AND lp.title = #{beanConsumeLive.liveChannel}
</if>
<if test="beanConsumeLive.liveName != null and beanConsumeLive.liveName != ''">
AND l.name LIKE CONCAT('%', #{beanConsumeLive.liveName}, '%')
</if>
</where>)t
</select>
<select id="getDept" resultType="java.lang.String">
select distinct deptName from member_info
where deptName is not null and deptName != ''
</select>
</mapper>