Browse Source

Merge remote-tracking branch 'refs/remotes/origin/lijianlin/feature-20250728171217-三期金豆消费相关' into milestone-20250727-金币重构三期

# Conflicts:
#	src/main/java/com/example/demo/domain/vo/bean/BeanConsumeArticle.java
#	src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java
#	src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java
huangqizheng/feature-20250803175216-导出完毕
lijianlin 2 weeks ago
parent
commit
6c159981a9
  1. 2
      src/main/java/com/example/demo/DemoApplication.java
  2. 2
      src/main/java/com/example/demo/config/Mysql3DataSourceConfig.java
  3. 54
      src/main/java/com/example/demo/config/Mysql4DataSourceConfig.java
  4. 54
      src/main/java/com/example/demo/config/Mysql5DataSourceConfig.java
  5. 5
      src/main/java/com/example/demo/domain/vo/bean/BeanConsumeArticle.java
  6. 5
      src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java
  7. 20
      src/main/java/com/example/demo/mapper/live/LiveMapper.java
  8. 23
      src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java
  9. 1
      src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java
  10. 2
      src/main/resources/application-prod.yml
  11. 16
      src/main/resources/application.yml
  12. 2
      src/main/resources/jindouMapper/BeanConsumeMapper.xml
  13. 24
      src/main/resources/liveMapper/LiveMapper.xml

2
src/main/java/com/example/demo/DemoApplication.java

@ -10,6 +10,8 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@MapperScan(basePackages = "com.example.demo.mapper.coin", sqlSessionTemplateRef = "mysql1SqlSessionTemplate")
@MapperScan(basePackages = "com.example.demo.mapper.bean", sqlSessionTemplateRef = "mysql2SqlSessionTemplate")
@MapperScan(basePackages = "com.example.demo.mapper.pay", sqlSessionTemplateRef = "mysql3SqlSessionTemplate")
@MapperScan(basePackages = "com.example.demo.mapper.cms", sqlSessionTemplateRef = "mysql4SqlSessionTemplate")
@MapperScan(basePackages = "com.example.demo.mapper.live", sqlSessionTemplateRef = "mysql5SqlSessionTemplate")
public class DemoApplication {
public static void main(String[] args) {

2
src/main/java/com/example/demo/config/Mysql3DataSourceConfig.java

@ -20,7 +20,7 @@ public class Mysql3DataSourceConfig {
@Bean(name = "mysql3DataSource")
@ConfigurationProperties(prefix = "spring.datasource.mysql3")
public DataSource mysql2DataSource() {
public DataSource mysql3DataSource() {
return DataSourceBuilder.create().type(HikariDataSource.class).build();
}
@Bean(name = "mysql3SqlSessionFactory")

54
src/main/java/com/example/demo/config/Mysql4DataSourceConfig.java

@ -0,0 +1,54 @@
package com.example.demo.config;
import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
/**
* @program: gold-java
* @ClassName Mysql4DataSourceConfig
* @description:
* @author: Ethan
* @create: 202508-01 17:12
* @Version 1.0
**/
@Slf4j
@Configuration
public class Mysql4DataSourceConfig {
@Bean(name = "mysql4DataSource")
@ConfigurationProperties(prefix = "spring.datasource.mysql4")
public DataSource mysql4DataSource() {
return DataSourceBuilder.create().type(HikariDataSource.class).build();
}
@Bean(name = "mysql4SqlSessionFactory")
// @Primary
public SqlSessionFactory mysql4SqlSessionFactory(@Qualifier("mysql4DataSource") DataSource dataSource,
@Qualifier("globalConfiguration4") org.apache.ibatis.session.Configuration globalConfiguration4) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:payMapper/*.xml"));
sessionFactory.setConfiguration(globalConfiguration4);
return sessionFactory.getObject();
}
@Bean(name = "mysql4SqlSessionTemplate")
// @Primary
public SqlSessionTemplate mysql4SqlSessionTemplate(@Qualifier("mysql4SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
@Bean
@ConfigurationProperties(prefix = "mybatis.configuration.mysql4")
public org.apache.ibatis.session.Configuration globalConfiguration4() {
return new org.apache.ibatis.session.Configuration();
}
}

54
src/main/java/com/example/demo/config/Mysql5DataSourceConfig.java

@ -0,0 +1,54 @@
package com.example.demo.config;
import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
/**
* @program: gold-java
* @ClassName Mysql5DataSourceConfig
* @description:
* @author: Ethan
* @create: 202508-01 17:17
* @Version 1.0
**/
@Slf4j
@Configuration
public class Mysql5DataSourceConfig {
@Bean(name = "mysql5DataSource")
@ConfigurationProperties(prefix = "spring.datasource.mysql5")
public DataSource mysql5DataSource() {
return DataSourceBuilder.create().type(HikariDataSource.class).build();
}
@Bean(name = "mysql5SqlSessionFactory")
// @Primary
public SqlSessionFactory mysql5SqlSessionFactory(@Qualifier("mysql5DataSource") DataSource dataSource,
@Qualifier("globalConfiguration5") org.apache.ibatis.session.Configuration globalConfiguration5) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:liveMapper/*.xml"));
sessionFactory.setConfiguration(globalConfiguration5);
return sessionFactory.getObject();
}
@Bean(name = "mysql5SqlSessionTemplate")
// @Primary
public SqlSessionTemplate mysql5SqlSessionTemplate(@Qualifier("mysql5SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
@Bean
@ConfigurationProperties(prefix = "mybatis.configuration.mysql5")
public org.apache.ibatis.session.Configuration globalConfiguration5() {
return new org.apache.ibatis.session.Configuration();
}
}

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

@ -34,7 +34,10 @@ public class BeanConsumeArticle {
private Integer payMode; // 0 打赏 1 付费 2 其他
@ExcelProperty("金豆数量")
private String beanNum; //金豆数量
@ExcelProperty("文章/视频ID")
@ExcelProperty("付费金豆数量")
private Integer buyBean; //付费金豆
@ExcelProperty("免费金豆数量")
private Integer freeBean; //免费金豆
private Integer articleId; //文章/视频ID
@ExcelProperty("文章/视频标题")
private String articleName; //文章/视频标题source_name

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

@ -33,6 +33,7 @@ public class BeanConsumeLive {
//类型 直播 1. 发礼物2. 发红包3. 发福袋4. 付费直播5. 加入粉丝团6. 发弹幕
//文章 1. 打赏2. 付费
@ExcelProperty("类型")
private String type; //类型
@ExcelProperty("礼物名称")
private String gift; //礼物名称
@ -40,6 +41,10 @@ public class BeanConsumeLive {
private String beanNum; //金豆数量
@ExcelProperty("频道名称")
private String liveChannel; //频道名称截取content
@ExcelProperty("免费金豆")
private String freeBean; //免费金豆
@ExcelProperty("付费金豆")
private String buyBean; //付费金豆
@ExcelProperty("直播名称")
private String liveName; //直播间名称
@ExcelProperty("消费时间")

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

@ -0,0 +1,20 @@
package com.example.demo.mapper.live;
import com.example.demo.domain.vo.bean.BeanConsumeLive;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @program: gold-java
* @ClassName liveMapper
* @description:
* @author: Ethan
* @create: 202508-01 17:20
* @Version 1.0
**/
@Mapper
public interface LiveMapper {
List<BeanConsumeLive> selectLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive);
}

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

@ -6,6 +6,7 @@ import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.RechargeAudit;
import com.example.demo.domain.vo.coin.RechargeUser;
import com.example.demo.mapper.bean.BeanConsumeMapper;
import com.example.demo.mapper.live.LiveMapper;
import com.example.demo.service.bean.BeanConsumeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -25,33 +26,35 @@ import java.util.List;
@Service
public class BeanConsumeServiceImpl implements BeanConsumeService {
@Autowired
private BeanConsumeMapper BeanConsumeMapper;
private BeanConsumeMapper beanConsumeMapper;
@Autowired
private LiveMapper liveMapper;
//获取消费用户分部
@Override
public List<String> getDept() {
List<String> deptList = BeanConsumeMapper.getDept();
List<String> deptList = beanConsumeMapper.getDept();
return deptList;
}
//筛选查询直播消费
@Override
public Object selectLiveBy(Integer pageNum, Integer pageSize, BeanConsumeLive beanConsumeLive) {
PageHelper.startPage(pageNum, pageSize);
List<BeanConsumeLive> beanConsumeLives = BeanConsumeMapper.selectLiveBy(beanConsumeLive);
List<BeanConsumeLive> beanConsumeLives = liveMapper.selectLiveBy(beanConsumeLive);
return new PageInfo<>(beanConsumeLives);
}
//筛选查询铁粉消费
@Override
public Object selectFanBy(Integer pageNum, Integer pageSize, BeanConsumeFan beanConsumeFan) {
PageHelper.startPage(pageNum, pageSize);
List<BeanConsumeFan> beanConsumeFans = BeanConsumeMapper.selectFanBy(beanConsumeFan);
List<BeanConsumeFan> beanConsumeFans = beanConsumeMapper.selectFanBy(beanConsumeFan);
return new PageInfo<>(beanConsumeFans);
}
//筛选查询文章消费
@Override
public Object selectArticleBy(Integer pageNum, Integer pageSize, BeanConsumeArticle beanConsumeArticle) {
PageHelper.startPage(pageNum, pageSize);
List<BeanConsumeArticle> beanConsumeArticles = BeanConsumeMapper.selectArticleBy(beanConsumeArticle);
List<BeanConsumeArticle> beanConsumeArticles = beanConsumeMapper.selectArticleBy(beanConsumeArticle);
return new PageInfo<>(beanConsumeArticles);
}
@ -61,13 +64,13 @@ public class BeanConsumeServiceImpl implements BeanConsumeService {
Integer payType = page.getPayType();
if (payType==1) {
//直播消费合计
gold = BeanConsumeMapper.selectSumLiveBy(page.getBeanConsumeLive());
gold = beanConsumeMapper.selectSumLiveBy(page.getBeanConsumeLive());
}else if (payType==7) {
//充值消费合计
gold = BeanConsumeMapper.selectSumFansBy(page.getBeanConsumeFan());
gold = beanConsumeMapper.selectSumFansBy(page.getBeanConsumeFan());
}else if (payType==8) {
//文章消费合计
gold = BeanConsumeMapper.selectSumArticleBy(page.getBeanConsumeArticle());
gold = beanConsumeMapper.selectSumArticleBy(page.getBeanConsumeArticle());
}
return gold;
@ -76,11 +79,11 @@ public class BeanConsumeServiceImpl implements BeanConsumeService {
@Override
public List<String> getLiveGift() {
return BeanConsumeMapper.getLiveGift();
return beanConsumeMapper.getLiveGift();
}
//查询直播全部频道
@Override
public List<String> getLiveChannel() {
return BeanConsumeMapper.getLiveChannel();
return beanConsumeMapper.getLiveChannel();
}
}

1
src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java

@ -18,6 +18,7 @@ import com.example.demo.domain.export.Goldmingxi;
import com.example.demo.domain.vo.bean.BeanConsumeArticle;
import com.example.demo.domain.vo.bean.BeanConsumeFan;
import com.example.demo.domain.vo.bean.BeanConsumeLive;
import com.example.demo.domain.vo.coin.*;
import com.example.demo.mapper.coin.ExportMapper;

2
src/main/resources/application-prod.yml

@ -57,7 +57,7 @@ bean:
url: http://47.92.148.30:3003/mock/61/hljw/api/user/gold
server:
port: 8081
port: 10704
logging:
level:

16
src/main/resources/application.yml

@ -30,6 +30,22 @@ spring:
hikari:
pool-name: mysql3HikariCP
maximum-pool-size: 10
mysql4:
jdbc-url: jdbc:mysql://39.101.133.168:3306/cms?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&allowMultiQueries=true&rewriteBatchedStatements=true
username: cms
password: AF42R3ib6YkFaemm
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
pool-name: mysql3HikariCP
maximum-pool-size: 10
mysql5:
jdbc-url: jdbc:mysql://39.101.133.168:3306/live?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&allowMultiQueries=true&rewriteBatchedStatements=true
username: live
password: p4jMAMShNM8HTrbX
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
pool-name: mysql5HikariCP
maximum-pool-size: 10
sqlserver1:
jdbc-url: jdbc:sqlserver://52.76.43.43:1433;databaseName=hwhcGold;encrypt=true;sslProtocol=TLSv1;trustServerCertificate=true;
username: hwhc_gold_query

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

@ -201,6 +201,8 @@
fm.dept,
fyr.source_type AS type,
fyr.money AS beanNum,
fyr.money_free AS freeBean,
fyr.money_buy AS buyBean,
fyr.source_id AS articleId,
fyr.source_name AS articleName,
(SELECT fm2.nickname

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

@ -0,0 +1,24 @@
<?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 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 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
</select>
</mapper>
Loading…
Cancel
Save