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