Browse Source

8-14金豆直播消费优化,提升速度

lijianlin/feature-20250728171217-三期金豆消费相关
lijianlin 4 days ago
parent
commit
9ab6b083bd
  1. 2
      src/main/java/com/example/demo/mapper/live/LiveMapper.java
  2. 1
      src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java
  3. 82
      src/main/resources/liveMapper/LiveMapper.xml

2
src/main/java/com/example/demo/mapper/live/LiveMapper.java

@ -27,4 +27,6 @@ public interface LiveMapper {
BeanConsumeGold selectSumLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive);
//获取直播客户地区
List<String> getDept();
//获取直播消费列表总数
int selectLiveCount(BeanConsumeLive beanConsumeLive);
}

1
src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java

@ -155,6 +155,7 @@ public class BeanConsumeServiceImpl implements BeanConsumeService {
public Object selectLiveBy(Integer pageNum, Integer pageSize, BeanConsumeLive beanConsumeLive) {
PageHelper.startPage(pageNum, pageSize);
List<BeanConsumeLive> beanConsumeLives = liveMapper.selectLiveBy(beanConsumeLive);
//int total = liveMapper.selectLiveCount(beanConsumeLive);
return new PageInfo<>(beanConsumeLives);
}
//筛选查询铁粉消费

82
src/main/resources/liveMapper/LiveMapper.xml

@ -4,9 +4,9 @@
<select id="selectLiveBy" resultType="com.example.demo.domain.vo.bean.BeanConsumeLive">
select lgg.id as id,
mi.name as name,
lgg.jwcode as jwcode,
select lgg.id ,
mi.name ,
lgg.jwcode ,
mi.deptName as dept,
lg.name as gift,
lgg.knapsack as isBackpack,
@ -64,46 +64,65 @@
select distinct title from live_pindao where title is not null and title != ''
</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
<select id="selectSumLiveBy"
parameterType="com.example.demo.domain.vo.bean.BeanConsumeLive"
resultType="com.example.demo.domain.vo.bean.BeanConsumeGold">
SELECT
IFNULL(SUM(lgg.gold_beans), 0) AS sunBeam,
IFNULL(SUM(lgg.gold_free), 0) AS freeBean,
IFNULL(SUM(lgg.gold_buy), 0) AS permanentBean,
COUNT(*) AS totalNum
FROM live_give_gifts lgg
WHERE lgg.knapsack = 0
<if test="beanConsumeLive.jwcode != null and beanConsumeLive.jwcode != ''">
AND lgg.jwcode = #{beanConsumeLive.jwcode}
</if>
<if test="beanConsumeLive.startTime != null and beanConsumeLive.endTime != null">
AND lgg.created_at BETWEEN #{beanConsumeLive.startTime} AND #{beanConsumeLive.endTime}
</if>
<if test="beanConsumeLive.dept != null and beanConsumeLive.dept != ''">
AND EXISTS (SELECT 1 FROM member_info mi
WHERE mi.jwcode = lgg.jwcode AND mi.deptName = #{beanConsumeLive.dept})
</if>
<if test="beanConsumeLive.gift != null and beanConsumeLive.gift != ''">
AND EXISTS (SELECT 1 FROM live_gifts lg
WHERE lg.id = lgg.g_id AND lg.name = #{beanConsumeLive.gift})
</if>
<if test="beanConsumeLive.liveChannel != null and beanConsumeLive.liveChannel != ''">
AND EXISTS (SELECT 1 FROM live l JOIN live_pindao lp ON lp.pd_id = l.channel_id
WHERE l.id = lgg.live_id AND lp.title = #{beanConsumeLive.liveChannel})
</if>
<if test="beanConsumeLive.liveName != null and beanConsumeLive.liveName != ''">
AND EXISTS (SELECT 1 FROM live l
WHERE l.id = lgg.live_id
AND l.name LIKE CONCAT('%', #{beanConsumeLive.liveName}, '%'))
</if>
</select>
<select id="getDept" resultType="java.lang.String">
select distinct deptName from member_info
where deptName is not null and deptName != ''
</select>
<select id="selectLiveCount"
parameterType="com.example.demo.domain.vo.bean.BeanConsumeLive"
resultType="java.lang.Integer">
SELECT COUNT(1)
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}
AND lgg.created_at BETWEEN #{beanConsumeLive.startTime} AND #{beanConsumeLive.endTime}
</if>
<if test="beanConsumeLive.gift != null and beanConsumeLive.gift != ''">
AND lg.name =#{beanConsumeLive.gift}
AND lg.name = #{beanConsumeLive.gift}
</if>
<if test="beanConsumeLive.liveChannel != null and beanConsumeLive.liveChannel != ''">
AND lp.title = #{beanConsumeLive.liveChannel}
@ -111,11 +130,6 @@
<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 != ''
</where>
</select>
</mapper>
Loading…
Cancel
Save