Browse Source

消费直播页面(列表+合计数)

huangqizheng/feature-20250731164458-地区部分修改以及导出的封装
lijianlin 3 weeks ago
parent
commit
91ed5a7eac
  1. 32
      src/main/java/com/example/demo/controller/bean/BeanConsumeController.java
  2. 4
      src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java
  3. 12
      src/main/java/com/example/demo/domain/vo/bean/BeanPage.java
  4. 12
      src/main/java/com/example/demo/mapper/bean/BeanConsumeMapper.java
  5. 4
      src/main/java/com/example/demo/service/bean/BeanConsumeService.java
  6. 23
      src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java
  7. 45
      src/main/resources/jindouMapper/BeanConsumeMapper.xml

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

@ -57,17 +57,7 @@ public class BeanConsumeController {
if (ObjectUtils.isEmpty(beanPage.getPageSize())) {
return Result.error("页大小为空!");
} else {
//解token权限
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String token = request.getHeader("token");
Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
if (admin != null) {
// List<String> list = Arrays.asList(admin.getMarkets().split(","));
// beanPage.XXXX.setMarkets(list);
}
else{
return Result.error("角色为空");
}
return Result.success(beanConsumeService.selectLiveBy(beanPage.getPageNum(), beanPage.getPageSize(), beanPage.getBeanConsumeLive()));
}
} catch (Exception e) {
@ -76,16 +66,18 @@ public class BeanConsumeController {
}}
//消费合计数
@PostMapping("sumConsumeGold")
public BeanConsumeGold sumConsumeGold(@RequestBody BeanPage beanPage) throws Exception {
public BeanConsumeGold sumConsumeGold(@RequestBody BeanPage beanPage) {
//解token权限
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String token = request.getHeader("token");
Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
if (admin != null) {
//List<String> list = Arrays.asList(admin.getMarkets().split(","));
//.setMarkets(list);
}
return beanConsumeService.sumConsumeGold( beanPage);
}
//查询所有直播礼物
@PostMapping("/getLiveGift")
public Result getLiveGift(){
return Result.success(beanConsumeService.getLiveGift());
}
//查询所有直播频道
@PostMapping("/getLiveChannel")
public Result getLiveChannel(){
return Result.success(beanConsumeService.getLiveChannel());
}
}

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

@ -36,4 +36,8 @@ public class BeanConsumeLive {
private Integer payType; //支付方式直播12345铁粉7文章8
private String sortField; //排序字段
private String sortOrder; //排序顺序
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date startTime; // 开始时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date endTime; // 结束时间
}

12
src/main/java/com/example/demo/domain/vo/bean/BeanPage.java

@ -17,10 +17,10 @@ public class BeanPage {
private static final long serialVersionUID = 1L;
private String token;
private Integer pageNum;
private Integer pageSize;
private BeanConsumeLive beanConsumeLive;
private BeanRechargeInfo beanRechargeInfo;
private BeanConsumeGold beanConsumeGold;
private Integer pageNum; //页码
private Integer pageSize; //每页大小
private Integer payType; //支付方式直播12345铁粉7文章8
private BeanConsumeLive beanConsumeLive; //直播金豆消费
private BeanRechargeInfo beanRechargeInfo; //金豆充值信息
private BeanConsumeGold beanConsumeGold; //金豆消费合计数
}

12
src/main/java/com/example/demo/mapper/bean/BeanConsumeMapper.java

@ -2,6 +2,7 @@ package com.example.demo.mapper.bean;
import com.example.demo.domain.vo.bean.BeanConsumeGold;
import com.example.demo.domain.vo.bean.BeanConsumeLive;
import com.example.demo.domain.vo.bean.BeanPage;
import com.example.demo.domain.vo.coin.RechargeAudit;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -22,11 +23,14 @@ public interface BeanConsumeMapper {
List<String> getDept();
//筛选查询直播消费
List<BeanConsumeLive> selectLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive);
//查询消费订单金额
List<BeanConsumeGold> selectConsumeGoldsBy(@Param("pageNum") Integer pageNum,
@Param("pageSize") Integer pageSize,
@Param("beanConsumeGold") BeanConsumeGold beanConsumeGold);
//查询金豆直播消费金额
BeanConsumeGold selectSumLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive);
//查询金豆铁粉消费金额
// BeanConsumeGold selectSumFansBy(BeanPage beanPage);
//查询直播礼物
List<String> getLiveGift();
//查询直播全部频道
List<String> getLiveChannel();
}

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

@ -23,4 +23,8 @@ public interface BeanConsumeService {
Object selectLiveBy(Integer pageNum, Integer pageSize, BeanConsumeLive beanConsumeLive);
//消费金币合计数
BeanConsumeGold sumConsumeGold(BeanPage beanPage);
//查询直播礼物
List<String> getLiveGift();
List<String> getLiveChannel();
}

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

@ -45,13 +45,26 @@ public class BeanConsumeServiceImpl implements BeanConsumeService {
@Override
public BeanConsumeGold sumConsumeGold(BeanPage beanPage) {
BeanConsumeGold gold = new BeanConsumeGold();
BeanConsumeLive beanConsumeLive = beanPage.getBeanConsumeLive();
Integer payType = beanPage.getPayType();
if (payType==1) {
//直播消费合计
BeanConsumeGold BeanConsumeGolds = BeanConsumeMapper.selectSumLiveBy( beanConsumeLive);
gold = BeanConsumeMapper.selectSumLiveBy(beanPage.getBeanConsumeLive());
}else if (payType==7) {
//充值消费合计
// gold = BeanConsumeMapper.selectSumFansBy(beanPage);
}
gold.setTotalNum(BeanConsumeGolds.getTotalNum());
gold.setPermanentBean(BeanConsumeGolds.getPermanentBean());
gold.setFreeBean(BeanConsumeGolds.getFreeBean());
return gold;
}
//查询直播礼物
@Override
public List<String> getLiveGift() {
return BeanConsumeMapper.getLiveGift();
}
//查询直播全部频道
@Override
public List<String> getLiveChannel() {
return BeanConsumeMapper.getLiveChannel();
}
}

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

@ -44,8 +44,9 @@
<if test="beanConsumeLive.type != null and beanConsumeLive.type != ''">
AND fyr.source_type = #{beanConsumeLive.type}
</if>
<if test="beanConsumeLive.consumeTime != null and beanConsumeLive.consumeTime != null">
AND consumeTime BETWEEN #{beanConsumeLive.startTime} AND #{beanConsumeLive.endTime}
<if test="beanConsumeLive.startTime != null and beanConsumeLive.endTime != null">
AND fyr.time BETWEEN UNIX_TIMESTAMP(#{beanConsumeLive.startTime})
AND UNIX_TIMESTAMP(#{beanConsumeLive.endTime})
</if>
</where>
) AS t
@ -56,7 +57,12 @@
<if test="beanConsumeLive.channel != null and beanConsumeLive.channel != ''">
AND t.channel= #{beanConsumeLive.channel}
</if>
<if test="beanConsumeLive.liveName != null and beanConsumeLive.liveName != ''">
AND t.liveName LIKE CONCAT('%', #{beanConsumeLive.liveName}, '%')
</if>
</where>
<choose>
<when test="beanConsumeLive.sortField != null and beanConsumeLive.sortField != '' and beanConsumeLive.sortOrder != null and beanConsumeLive.sortOrder != ''">
ORDER BY t.${beanConsumeLive.sortField} ${beanConsumeLive.sortOrder}
@ -66,10 +72,8 @@
</otherwise>
</choose>
</select>
<!--获取金豆消费订单金额-->
<select id="selectConsumeGoldsBy" resultType="com.example.demo.domain.vo.bean.BeanConsumeGold">
</select>
<!--查询消费直播合计数-->
<select id="selectSumLiveBy" resultType="com.example.demo.domain.vo.bean.BeanConsumeGold">
SELECT
IFNULL(SUM(t.money_buy), 0) AS permanentBean,
@ -108,10 +112,37 @@
ELSE NULL
END = #{beanConsumeLive.channel}
</if>
<if test="beanConsumeLive.consumeTime != null and beanConsumeLive.consumeTime != null">
AND consumeTime BETWEEN #{beanConsumeLive.startTime} AND #{beanConsumeLive.endTime}
<if test="beanConsumeLive.startTime != null and beanConsumeLive.endTime != null">
AND fyr.time BETWEEN UNIX_TIMESTAMP(#{beanConsumeLive.startTime})
AND UNIX_TIMESTAMP(#{beanConsumeLive.endTime})
</if>
<if test="beanConsumeLive.liveName != null and beanConsumeLive.liveName != ''">
AND fyr.source_name LIKE CONCAT('%', #{beanConsumeLive.liveName}, '%')
</if>
</where>
) AS t
</select>
<select id="getLiveGift" resultType="java.lang.String">
SELECT DISTINCT
CASE
WHEN LOCATE('直播间', content) > 0 AND LOCATE('送礼物', content) > 0
THEN SUBSTRING(content, LOCATE('送礼物', content) + CHAR_LENGTH('送礼物'))
ELSE NULL
END AS gift
FROM fx_yaoqing_records
WHERE LOCATE('直播间', content) > 0 AND LOCATE('送礼物', content) > 0
AND content IS NOT NULL AND source_type=1
</select>
<select id="getLiveChannel" resultType="java.lang.String">
SELECT DISTINCT
CASE
WHEN LOCATE('直播间', content) > 0 AND LOCATE('送礼物', content) > 0
THEN SUBSTRING_INDEX(SUBSTRING(content, LOCATE('直播间', content) + CHAR_LENGTH('直播间')), '送礼物', 1)
ELSE NULL
END AS channel
FROM fx_yaoqing_records
WHERE LOCATE('直播间', content) > 0 AND LOCATE('送礼物', content) > 0
AND content IS NOT NULL AND pay_type in (1,2,3,4,5)
</select>
</mapper>
Loading…
Cancel
Save