Browse Source
Merge branch 'milestone-20250727-金币重构三期' of http://39.101.133.168:8807/huangqizhen/gold-java into milestone-20250727-金币重构三期
lihuilin/hotfix-20250810160509-余额地区传参
Merge branch 'milestone-20250727-金币重构三期' of http://39.101.133.168:8807/huangqizhen/gold-java into milestone-20250727-金币重构三期
lihuilin/hotfix-20250810160509-余额地区传参
27 changed files with 569 additions and 24 deletions
-
2src/main/java/com/example/demo/DemoApplication.java
-
5src/main/java/com/example/demo/Export/ExportService.java
-
44src/main/java/com/example/demo/Export/ExportServiceImpl.java
-
2src/main/java/com/example/demo/config/Mysql3DataSourceConfig.java
-
54src/main/java/com/example/demo/config/Mysql4DataSourceConfig.java
-
54src/main/java/com/example/demo/config/Mysql5DataSourceConfig.java
-
13src/main/java/com/example/demo/controller/bean/BeanAuditController.java
-
39src/main/java/com/example/demo/controller/coin/ExportController.java
-
37src/main/java/com/example/demo/domain/DTO/ArticleDTO.java
-
37src/main/java/com/example/demo/domain/DTO/FanDTO.java
-
20src/main/java/com/example/demo/domain/vo/bean/BeanConsumeArticle.java
-
14src/main/java/com/example/demo/domain/vo/bean/BeanConsumeFan.java
-
22src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java
-
15src/main/java/com/example/demo/domain/vo/bean/BeanRechargeInfo.java
-
1src/main/java/com/example/demo/domain/vo/bean/GoldBean.java
-
20src/main/java/com/example/demo/mapper/live/LiveMapper.java
-
3src/main/java/com/example/demo/service/bean/BeanAuditService.java
-
2src/main/java/com/example/demo/service/coin/ExportExcelService.java
-
38src/main/java/com/example/demo/service/listen/ArticleListener.java
-
40src/main/java/com/example/demo/service/listen/FanListener.java
-
33src/main/java/com/example/demo/serviceImpl/bean/BeanAuditServiceImpl.java
-
23src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java
-
31src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java
-
2src/main/resources/application-prod.yml
-
16src/main/resources/application.yml
-
2src/main/resources/jindouMapper/BeanConsumeMapper.xml
-
24src/main/resources/liveMapper/LiveMapper.xml
@ -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: 2025−08-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(); |
||||
|
} |
||||
|
} |
@ -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: 2025−08-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(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,37 @@ |
|||||
|
package com.example.demo.domain.DTO; |
||||
|
|
||||
|
import com.example.demo.domain.vo.bean.BeanConsumeArticle; |
||||
|
import com.example.demo.domain.vo.bean.BeanConsumeFan; |
||||
|
import jakarta.validation.constraints.NotNull; |
||||
|
import lombok.Data; |
||||
|
import lombok.NoArgsConstructor; |
||||
|
|
||||
|
/** |
||||
|
* @program: GOLD |
||||
|
* @ClassName ArticleDTO |
||||
|
* @description: |
||||
|
* @author: huangqizhen |
||||
|
* @create: 2025−08-01 17:33 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Data |
||||
|
@NoArgsConstructor |
||||
|
public class ArticleDTO { |
||||
|
private String token; |
||||
|
private String url = ""; |
||||
|
private String fileName = ""; |
||||
|
private Integer sort = 0; |
||||
|
private String field = ""; |
||||
|
private Integer account; |
||||
|
private Integer type = 7; //类型 |
||||
|
private Integer state = 0; //状态 |
||||
|
private String text = ""; //关键词搜索 |
||||
|
private Integer dataNum = 0; |
||||
|
private String deptid = ""; |
||||
|
|
||||
|
@NotNull(message = "page不能为空") |
||||
|
private Integer page = 1; |
||||
|
@NotNull(message = "pageSize不能为空") |
||||
|
private Integer pageSize = 20; |
||||
|
private BeanConsumeArticle beanConsumeArticle; |
||||
|
} |
@ -0,0 +1,37 @@ |
|||||
|
package com.example.demo.domain.DTO; |
||||
|
|
||||
|
import com.example.demo.domain.vo.bean.BeanConsumeFan; |
||||
|
import com.example.demo.domain.vo.bean.BeanConsumeLive; |
||||
|
import jakarta.validation.constraints.NotNull; |
||||
|
import lombok.Data; |
||||
|
import lombok.NoArgsConstructor; |
||||
|
|
||||
|
/** |
||||
|
* @program: GOLD |
||||
|
* @ClassName FanDTO |
||||
|
* @description: |
||||
|
* @author: huangqizhen |
||||
|
* @create: 2025−08-01 15:45 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Data |
||||
|
@NoArgsConstructor |
||||
|
public class FanDTO { |
||||
|
private String token; |
||||
|
private String url = ""; |
||||
|
private String fileName = ""; |
||||
|
private Integer sort = 0; |
||||
|
private String field = ""; |
||||
|
private Integer account; |
||||
|
private Integer type = 7; //类型 |
||||
|
private Integer state = 0; //状态 |
||||
|
private String text = ""; //关键词搜索 |
||||
|
private Integer dataNum = 0; |
||||
|
private String deptid = ""; |
||||
|
|
||||
|
@NotNull(message = "page不能为空") |
||||
|
private Integer page = 1; |
||||
|
@NotNull(message = "pageSize不能为空") |
||||
|
private Integer pageSize = 20; |
||||
|
private BeanConsumeFan beanConsumeFan; |
||||
|
} |
@ -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: 2025−08-01 17:20 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Mapper |
||||
|
public interface LiveMapper { |
||||
|
List<BeanConsumeLive> selectLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive); |
||||
|
} |
@ -0,0 +1,38 @@ |
|||||
|
package com.example.demo.service.listen; |
||||
|
|
||||
|
import com.example.demo.Util.RedisUtil; |
||||
|
import com.example.demo.service.coin.ExportExcelService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
import static org.ehcache.core.exceptions.StorePassThroughException.handleException; |
||||
|
|
||||
|
/** |
||||
|
* @program: GOLD |
||||
|
* @ClassName ArticleListener |
||||
|
* @description: |
||||
|
* @author: huangqizhen |
||||
|
* @create: 2025−08-01 17:45 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Component |
||||
|
public class ArticleListener extends BaseMessageListener<String> { |
||||
|
@Autowired |
||||
|
private ExportExcelService exportExcelService; |
||||
|
|
||||
|
@Autowired |
||||
|
public ArticleListener(RedisUtil redisQueueUtil) { |
||||
|
super(redisQueueUtil, "article:queue:export_queue"); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
protected void handleMessage(String message) { |
||||
|
validateMessage( message); |
||||
|
try { |
||||
|
Thread.sleep(5000); |
||||
|
exportExcelService.ArticleExcel(message); |
||||
|
} catch (Exception e) { |
||||
|
handleException(e, message); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,40 @@ |
|||||
|
package com.example.demo.service.listen; |
||||
|
|
||||
|
import com.example.demo.Util.RedisUtil; |
||||
|
import com.example.demo.service.coin.ExportExcelService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
import static org.ehcache.core.exceptions.StorePassThroughException.handleException; |
||||
|
|
||||
|
/** |
||||
|
* @program: GOLD |
||||
|
* @ClassName FanListener |
||||
|
* @description: |
||||
|
* @author: huangqizhen |
||||
|
* @create: 2025−08-01 16:49 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Component |
||||
|
public class FanListener extends BaseMessageListener<String> { |
||||
|
|
||||
|
|
||||
|
@Autowired |
||||
|
private ExportExcelService exportExcelService; |
||||
|
|
||||
|
@Autowired |
||||
|
public FanListener(RedisUtil redisQueueUtil) { |
||||
|
super(redisQueueUtil, "fan:queue:export_queue"); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
protected void handleMessage(String message) { |
||||
|
validateMessage( message); |
||||
|
try { |
||||
|
Thread.sleep(5000); |
||||
|
exportExcelService.FanExcel(message); |
||||
|
} catch (Exception e) { |
||||
|
handleException(e, message); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -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> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue