Browse Source

消费序号补充,重构直播优化

huangqizheng/feature-20250803175216-导出完毕
lijianlin 2 weeks ago
parent
commit
e91a7b4dce
  1. 8
      src/main/java/com/example/demo/controller/bean/BeanConsumeController.java
  2. 2
      src/main/java/com/example/demo/domain/vo/bean/BeanConsumeArticle.java
  3. 2
      src/main/java/com/example/demo/domain/vo/bean/BeanConsumeFan.java
  4. 1
      src/main/java/com/example/demo/domain/vo/bean/BeanConsumeGold.java
  5. 2
      src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java
  6. 1
      src/main/java/com/example/demo/domain/vo/bean/BeanUser.java
  7. 10
      src/main/java/com/example/demo/mapper/live/LiveMapper.java
  8. 3
      src/main/java/com/example/demo/service/bean/BeanConsumeService.java
  9. 12
      src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java
  10. 6
      src/main/resources/jindouMapper/BeanConsumeMapper.xml
  11. 3
      src/main/resources/jindouMapper/BeanUser.xml
  12. 108
      src/main/resources/liveMapper/LiveMapper.xml

8
src/main/java/com/example/demo/controller/bean/BeanConsumeController.java

@ -37,6 +37,14 @@ public class BeanConsumeController {
return Result.success(deptList);
}
//获取直播消费用户分部信息
@PostMapping("/getLiveDept")
public Result getLiveDept(){
List<String> deptList = beanConsumeService.getLiveDept();
return Result.success(deptList);
}
//筛选查询直播消费记录
@PostMapping("/selectLiveBy")
public Result selectLiveBy(@RequestBody Page page){

2
src/main/java/com/example/demo/domain/vo/bean/BeanConsumeArticle.java

@ -22,6 +22,8 @@ import java.util.Date;
@JsonIgnoreProperties(ignoreUnknown = true)
public class BeanConsumeArticle {
private static final long serialVersionUID = 1L;
@ExcelProperty("ID")
private Integer id;
@ExcelProperty("姓名")
private String name; //姓名
@ExcelProperty("精网号")

2
src/main/java/com/example/demo/domain/vo/bean/BeanConsumeFan.java

@ -22,6 +22,8 @@ import java.util.Date;
@JsonIgnoreProperties(ignoreUnknown = true)
public class BeanConsumeFan {
private static final long serialVersionUID = 1L;
@ExcelProperty("ID")
private Integer id;
@ExcelProperty("姓名")
private String name; //姓名
@ExcelProperty("精网号")

1
src/main/java/com/example/demo/domain/vo/bean/BeanConsumeGold.java

@ -17,6 +17,7 @@ import lombok.NoArgsConstructor;
@JsonIgnoreProperties(ignoreUnknown = true)
public class BeanConsumeGold {
private static final long serialVersionUID = 1L;
private Integer sumBean ; //总金豆
private Integer permanentBean ; //付费金豆
private Integer freeBean ; //免费金豆
private Integer totalNum; //总条数

2
src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java

@ -24,6 +24,8 @@ import java.util.List;
@JsonIgnoreProperties(ignoreUnknown = true)
public class BeanConsumeLive {
private static final long serialVersionUID = 1L;
@ExcelProperty("ID")
private Integer id;
@ExcelProperty("姓名")
private String name; //姓名
@ExcelProperty("精网号")

1
src/main/java/com/example/demo/domain/vo/bean/BeanUser.java

@ -16,6 +16,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
public class BeanUser {
private Integer id;
private String name; //姓名
private Integer jwcode; //精网号
private String dept; //分部

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

@ -1,5 +1,6 @@
package com.example.demo.mapper.live;
import com.example.demo.domain.vo.bean.BeanConsumeGold;
import com.example.demo.domain.vo.bean.BeanConsumeLive;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -16,5 +17,14 @@ import java.util.List;
**/
@Mapper
public interface LiveMapper {
//筛选查询直播消费列表
List<BeanConsumeLive> selectLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive);
//获取直播礼物列表
List<String> getLiveGift();
//获取直播频道列表
List<String> getLiveChannel();
//计算直播消费金豆合计数
BeanConsumeGold selectSumLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive);
//获取直播客户地区
List<String> getDept();
}

3
src/main/java/com/example/demo/service/bean/BeanConsumeService.java

@ -31,5 +31,6 @@ public interface BeanConsumeService {
//获取直播频道
List<String> getLiveChannel();
//获取直播客户地区
List<String> getLiveDept();
}

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

@ -64,7 +64,7 @@ public class BeanConsumeServiceImpl implements BeanConsumeService {
Integer payType = page.getPayType();
if (payType==1) {
//直播消费合计
gold = beanConsumeMapper.selectSumLiveBy(page.getBeanConsumeLive());
gold = liveMapper.selectSumLiveBy(page.getBeanConsumeLive());
}else if (payType==7) {
//充值消费合计
gold = beanConsumeMapper.selectSumFansBy(page.getBeanConsumeFan());
@ -79,11 +79,17 @@ public class BeanConsumeServiceImpl implements BeanConsumeService {
@Override
public List<String> getLiveGift() {
return beanConsumeMapper.getLiveGift();
return liveMapper.getLiveGift();
}
//查询直播全部频道
@Override
public List<String> getLiveChannel() {
return beanConsumeMapper.getLiveChannel();
return liveMapper.getLiveChannel();
}
@Override
public List<String> getLiveDept() {
List<String> liveDeptList = liveMapper.getDept();
return liveDeptList;
}
}

6
src/main/resources/jindouMapper/BeanConsumeMapper.xml

@ -124,7 +124,8 @@
</select>
<!--筛选铁粉消费记录-->
<select id="selectFanBy" resultType="com.example.demo.domain.vo.bean.BeanConsumeFan">
SELECT fm.nickname AS name,
SELECT fyr.id AS id,
fm.nickname AS name,
fm.jwcode,
fm.dept,
fyr.money AS beanNum,
@ -196,7 +197,8 @@
</select>
<!--筛选文章消费记录-->
<select id="selectArticleBy" resultType="com.example.demo.domain.vo.bean.BeanConsumeArticle">
SELECT fm.nickname AS name,
SELECT fyr.id AS id,
fm.nickname AS name,
fm.jwcode,
fm.dept,
fyr.source_type AS type,

3
src/main/resources/jindouMapper/BeanUser.xml

@ -22,7 +22,8 @@
</select>
<!--查询客户金豆余额-->
<select id="selectUserBy" resultType="com.example.demo.domain.vo.bean.BeanUser">
SELECT fm.nickname AS name,
SELECT fm.id as id,
fm.nickname AS name,
fm.jwcode,
fm.dept,
fy.jinbi AS beanNum,

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

@ -4,7 +4,8 @@
<select id="selectLiveBy" resultType="com.example.demo.domain.vo.bean.BeanConsumeLive">
select mi.name as name,
select lgg.id as id,
mi.name as name,
lgg.jwcode as jwcode,
mi.deptName as dept,
lg.name as gift,
@ -14,11 +15,106 @@
lp.title as liveChannel,
l.name as liveName,
lgg.created_at as consumeTime
from live_give_gifts lgg
left join member_info mi on mi.jwcode = lgg.jwcode
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.id = l.channel_id
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>
Loading…
Cancel
Save