137 Commits
ecba540c58
...
b86e20e374
203 changed files with 5731 additions and 2848 deletions
-
2README.md
-
58pom.xml
-
6src/main/java/com/example/demo/DemoApplication.java
-
16src/main/java/com/example/demo/Export/ExportService.java
-
370src/main/java/com/example/demo/Export/ExportServiceImpl.java
-
2src/main/java/com/example/demo/Mysql/MysqlController.java
-
17src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java
-
2src/main/java/com/example/demo/Util/BaseDES2.java
-
4src/main/java/com/example/demo/Util/CacheRefreshTask.java
-
2src/main/java/com/example/demo/Util/ExecutionContextUtil.java
-
2src/main/java/com/example/demo/Util/ExecutionTimeAspect.java
-
2src/main/java/com/example/demo/Util/FeiShuAlertUtil.java
-
5src/main/java/com/example/demo/config/AppConfig.java
-
2src/main/java/com/example/demo/config/Mysql1DataSourceConfig.java
-
49src/main/java/com/example/demo/config/Mysql2DataSourceConfig.java
-
47src/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
-
2src/main/java/com/example/demo/config/RedisConfig.java
-
104src/main/java/com/example/demo/controller/ExportController.java
-
97src/main/java/com/example/demo/controller/bean/BeanAuditController.java
-
130src/main/java/com/example/demo/controller/bean/BeanConsumeController.java
-
121src/main/java/com/example/demo/controller/bean/BeanRechargeController.java
-
79src/main/java/com/example/demo/controller/bean/BeanUserController.java
-
10src/main/java/com/example/demo/controller/coin/AdminController.java
-
8src/main/java/com/example/demo/controller/coin/AuditController.java
-
39src/main/java/com/example/demo/controller/coin/ConsumeController.java
-
198src/main/java/com/example/demo/controller/coin/ExportController.java
-
10src/main/java/com/example/demo/controller/coin/GeneralController.java
-
39src/main/java/com/example/demo/controller/coin/GoldDetailController.java
-
26src/main/java/com/example/demo/controller/coin/MarketController.java
-
11src/main/java/com/example/demo/controller/coin/MenuController.java
-
11src/main/java/com/example/demo/controller/coin/PermissionController.java
-
10src/main/java/com/example/demo/controller/coin/RateController.java
-
41src/main/java/com/example/demo/controller/coin/RechargeController.java
-
42src/main/java/com/example/demo/controller/coin/RefundController.java
-
12src/main/java/com/example/demo/controller/coin/RoleController.java
-
11src/main/java/com/example/demo/controller/coin/StatisticsController.java
-
10src/main/java/com/example/demo/controller/coin/UserController.java
-
19src/main/java/com/example/demo/controller/coin/WorkbenchController.java
-
37src/main/java/com/example/demo/domain/DTO/ArticleDTO.java
-
38src/main/java/com/example/demo/domain/DTO/BeanRechargeDTO.java
-
2src/main/java/com/example/demo/domain/DTO/ConsumeDTO.java
-
37src/main/java/com/example/demo/domain/DTO/FanDTO.java
-
2src/main/java/com/example/demo/domain/DTO/GoldDetailDTO.java
-
37src/main/java/com/example/demo/domain/DTO/LiveDTO.java
-
36src/main/java/com/example/demo/domain/DTO/OnlineDTO.java
-
2src/main/java/com/example/demo/domain/DTO/RechargeDTO.java
-
2src/main/java/com/example/demo/domain/DTO/RefundDTO.java
-
33src/main/java/com/example/demo/domain/entity/Market.java
-
32src/main/java/com/example/demo/domain/vo/Page.java
-
49src/main/java/com/example/demo/domain/vo/bean/BeanAuditInfo.java
-
27src/main/java/com/example/demo/domain/vo/bean/BeanConsume.java
-
63src/main/java/com/example/demo/domain/vo/bean/BeanConsumeArticle.java
-
58src/main/java/com/example/demo/domain/vo/bean/BeanConsumeFan.java
-
24src/main/java/com/example/demo/domain/vo/bean/BeanConsumeGold.java
-
69src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java
-
58src/main/java/com/example/demo/domain/vo/bean/BeanOnlineRechargeInfo.java
-
27src/main/java/com/example/demo/domain/vo/bean/BeanRecharge.java
-
62src/main/java/com/example/demo/domain/vo/bean/BeanRechargeInfo.java
-
58src/main/java/com/example/demo/domain/vo/bean/BeanSystemRechargeInfo.java
-
29src/main/java/com/example/demo/domain/vo/bean/BeanUser.java
-
29src/main/java/com/example/demo/domain/vo/bean/BeanUserCard.java
-
25src/main/java/com/example/demo/domain/vo/bean/GoldBean.java
-
2src/main/java/com/example/demo/domain/vo/coin/AdminVo.java
-
2src/main/java/com/example/demo/domain/vo/coin/AiEmotionExportRecordVO.java
-
2src/main/java/com/example/demo/domain/vo/coin/AuditRequest.java
-
4src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java
-
2src/main/java/com/example/demo/domain/vo/coin/ExecutionContext.java
-
2src/main/java/com/example/demo/domain/vo/coin/ExportVo.java
-
2src/main/java/com/example/demo/domain/vo/coin/Gold.java
-
4src/main/java/com/example/demo/domain/vo/coin/GoldDetail.java
-
2src/main/java/com/example/demo/domain/vo/coin/GoldUser.java
-
2src/main/java/com/example/demo/domain/vo/coin/MarketRechargeStat.java
-
2src/main/java/com/example/demo/domain/vo/coin/MenuVo.java
-
43src/main/java/com/example/demo/domain/vo/coin/Page.java
-
2src/main/java/com/example/demo/domain/vo/coin/Password.java
-
2src/main/java/com/example/demo/domain/vo/coin/Permission.java
-
2src/main/java/com/example/demo/domain/vo/coin/RateDetail.java
-
2src/main/java/com/example/demo/domain/vo/coin/RechargeAudit.java
-
44src/main/java/com/example/demo/domain/vo/coin/RechargeUser.java
-
2src/main/java/com/example/demo/domain/vo/coin/RefundAudit.java
-
4src/main/java/com/example/demo/domain/vo/coin/RefundUser.java
-
2src/main/java/com/example/demo/domain/vo/coin/Result.java
-
2src/main/java/com/example/demo/domain/vo/coin/RoleMenu.java
-
2src/main/java/com/example/demo/domain/vo/coin/RoleVo.java
-
2src/main/java/com/example/demo/domain/vo/coin/TestRequest.java
-
2src/main/java/com/example/demo/domain/vo/coin/Total.java
-
2src/main/java/com/example/demo/domain/vo/coin/WorkbenchCard.java
-
2src/main/java/com/example/demo/domain/vo/coin/WorkbenchFullStatistics.java
-
2src/main/java/com/example/demo/domain/vo/coin/WorkbenchMarketCard.java
-
2src/main/java/com/example/demo/domain/vo/coin/WorkbenchMarketGraph.java
-
40src/main/java/com/example/demo/mapper/bean/BeanConsumeMapper.java
-
25src/main/java/com/example/demo/mapper/bean/BeanRechargeMapper2.java
-
31src/main/java/com/example/demo/mapper/bean/BeanUserMapper.java
-
2src/main/java/com/example/demo/mapper/coin/AdminMapper.java
-
4src/main/java/com/example/demo/mapper/coin/AiEmotionMapper.java
-
7src/main/java/com/example/demo/mapper/coin/AuditMapper.java
-
31src/main/java/com/example/demo/mapper/coin/BeanAuditMapper.java
-
20src/main/java/com/example/demo/mapper/coin/BeanRechargeMapper1.java
@ -0,0 +1,49 @@ |
|||
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.mybatis.spring.annotation.MapperScan; |
|||
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; |
|||
|
|||
@Slf4j |
|||
@Configuration |
|||
|
|||
public class Mysql2DataSourceConfig { |
|||
|
|||
@Bean(name = "mysql2DataSource") |
|||
@ConfigurationProperties(prefix = "spring.datasource.mysql2") |
|||
public DataSource mysql2DataSource() { |
|||
return DataSourceBuilder.create().type(HikariDataSource.class).build(); |
|||
} |
|||
@Bean(name = "mysql2SqlSessionFactory") |
|||
// @Primary |
|||
public SqlSessionFactory mysql2SqlSessionFactory(@Qualifier("mysql2DataSource") DataSource dataSource, |
|||
@Qualifier("globalConfiguration2") org.apache.ibatis.session.Configuration globalConfiguration2) throws Exception { |
|||
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); |
|||
sessionFactory.setDataSource(dataSource); |
|||
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:jindouMapper/*.xml")); |
|||
sessionFactory.setConfiguration(globalConfiguration2); |
|||
return sessionFactory.getObject(); |
|||
} |
|||
|
|||
@Bean(name = "mysql2SqlSessionTemplate") |
|||
// @Primary |
|||
public SqlSessionTemplate mysql2SqlSessionTemplate(@Qualifier("mysql2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) { |
|||
return new SqlSessionTemplate(sqlSessionFactory); |
|||
} |
|||
@Bean |
|||
@ConfigurationProperties(prefix = "mybatis.configuration.mysql2") |
|||
public org.apache.ibatis.session.Configuration globalConfiguration2() { |
|||
return new org.apache.ibatis.session.Configuration(); |
|||
} |
|||
} |
@ -0,0 +1,47 @@ |
|||
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; |
|||
|
|||
@Slf4j |
|||
@Configuration |
|||
public class Mysql3DataSourceConfig { |
|||
|
|||
@Bean(name = "mysql3DataSource") |
|||
@ConfigurationProperties(prefix = "spring.datasource.mysql3") |
|||
public DataSource mysql3DataSource() { |
|||
return DataSourceBuilder.create().type(HikariDataSource.class).build(); |
|||
} |
|||
@Bean(name = "mysql3SqlSessionFactory") |
|||
// @Primary |
|||
public SqlSessionFactory mysql3SqlSessionFactory(@Qualifier("mysql3DataSource") DataSource dataSource, |
|||
@Qualifier("globalConfiguration3") org.apache.ibatis.session.Configuration globalConfiguration3) throws Exception { |
|||
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); |
|||
sessionFactory.setDataSource(dataSource); |
|||
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:paymapper/*.xml")); |
|||
sessionFactory.setConfiguration(globalConfiguration3); |
|||
return sessionFactory.getObject(); |
|||
} |
|||
|
|||
@Bean(name = "mysql3SqlSessionTemplate") |
|||
// @Primary |
|||
public SqlSessionTemplate mysql3SqlSessionTemplate(@Qualifier("mysql3SqlSessionFactory") SqlSessionFactory sqlSessionFactory) { |
|||
return new SqlSessionTemplate(sqlSessionFactory); |
|||
} |
|||
@Bean |
|||
@ConfigurationProperties(prefix = "mybatis.configuration.mysql3") |
|||
public org.apache.ibatis.session.Configuration globalConfiguration3() { |
|||
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 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(); |
|||
} |
|||
} |
@ -1,104 +0,0 @@ |
|||
package com.example.demo.controller; |
|||
|
|||
import com.example.demo.Util.BusinessException; |
|||
import com.example.demo.Util.JWTUtil; |
|||
import com.example.demo.Util.RedisLockUtil; |
|||
import com.example.demo.domain.DTO.ConsumeDTO; |
|||
import com.example.demo.domain.DTO.RechargeDTO; |
|||
import com.example.demo.domain.DTO.RefundDTO; |
|||
import com.example.demo.domain.entity.Admin; |
|||
import com.example.demo.domain.entity.Export; |
|||
import com.example.demo.domain.vo.Result; |
|||
import com.example.demo.service.ExportExcelService; |
|||
import com.example.demo.service.GoldDetailService; |
|||
import com.example.demo.Export.ExportService; |
|||
import jakarta.validation.Valid; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.security.core.userdetails.UserDetails; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
import java.util.UUID; |
|||
|
|||
/** |
|||
* @program: GOLD |
|||
* @ClassName ExportController |
|||
* @description: |
|||
* @author: huangqizhen |
|||
* @create: 2025−06-28 15:22 |
|||
* @Version 1.0 |
|||
**/ |
|||
@RestController |
|||
@RequestMapping("/export") |
|||
@RequiredArgsConstructor |
|||
@Slf4j |
|||
@CrossOrigin |
|||
public class ExportController { |
|||
@Autowired |
|||
private ExportExcelService exportExcelService; |
|||
@Autowired |
|||
private RedisLockUtil redisLockUtil; |
|||
@Autowired |
|||
private GoldDetailService goldDetailService; |
|||
@Autowired |
|||
private ExportService exportService; |
|||
@PostMapping("/export") |
|||
public Result export(@Valid @RequestBody Export export, @RequestHeader("token") String token) throws Exception { |
|||
try { |
|||
UserDetails token1= JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); |
|||
export.setAccount(Integer.valueOf(token1.getUsername())); |
|||
return Result.success(exportExcelService.getExcel(export)); |
|||
} catch (Exception e) { |
|||
log.error("导出失败", e.getMessage()); |
|||
return Result.error("导出失败" + e.getMessage()); |
|||
} |
|||
} |
|||
@PostMapping("/exportRecharge") |
|||
public Result export(@Valid @RequestBody RechargeDTO dto) { |
|||
String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key(可按用户/业务区分) |
|||
String requestId = UUID.randomUUID().toString(); // 请求 ID(防止误删锁) |
|||
long expireTime = 5000; // 锁过期时间(5秒)s |
|||
try { |
|||
// 尝试获取锁 |
|||
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) { |
|||
throw new BusinessException("操作太频繁,请稍后重试"); |
|||
} |
|||
// 执行业务逻辑 |
|||
return exportService.addExportRecharge(dto); |
|||
} finally { |
|||
// 释放锁 |
|||
redisLockUtil.unlock(lockKey, requestId); |
|||
} |
|||
} |
|||
@PostMapping("/exportRefund") |
|||
public Result export(@Valid @RequestBody RefundDTO dto) { |
|||
String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key(可按用户/业务区分) |
|||
String requestId = UUID.randomUUID().toString(); // 请求 ID(防止误删锁) |
|||
long expireTime = 5000; // 锁过期时间(5秒)s |
|||
try { |
|||
// 尝试获取锁 |
|||
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) { |
|||
throw new BusinessException("操作太频繁,请稍后重试"); |
|||
} |
|||
// 执行业务逻辑 |
|||
return exportService.addExportRefund(dto); |
|||
} finally { |
|||
// 释放锁 |
|||
redisLockUtil.unlock(lockKey, requestId); |
|||
} |
|||
} |
|||
@PostMapping("/exportConsume") |
|||
public Result export(@Valid @RequestBody ConsumeDTO dto) { |
|||
String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key(可按用户/业务区分) |
|||
String requestId = UUID.randomUUID().toString(); // 请求 ID(防止误删锁) |
|||
long expireTime = 5000; // 锁过期时间(5秒)s |
|||
try { |
|||
return exportService.addExportConsume(dto); |
|||
} finally { |
|||
// 释放锁 |
|||
redisLockUtil.unlock(lockKey, requestId); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,97 @@ |
|||
package com.example.demo.controller.bean; |
|||
|
|||
import com.example.demo.domain.vo.bean.BeanAuditInfo; |
|||
import com.example.demo.domain.vo.bean.BeanRechargeInfo; |
|||
import com.example.demo.domain.vo.bean.GoldBean; |
|||
import com.example.demo.domain.vo.coin.Page; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.service.bean.BeanAuditService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.util.ObjectUtils; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanAuditController |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−08-01 11:03 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@RestController |
|||
@RequestMapping("/beanAudit") |
|||
@RequiredArgsConstructor |
|||
@Slf4j |
|||
@CrossOrigin |
|||
public class BeanAuditController { |
|||
|
|||
@Autowired |
|||
private BeanAuditService beanAuditService; |
|||
|
|||
//审核查找 |
|||
@PostMapping("/selectBy") |
|||
public Result selectBy(@RequestBody Page page) { |
|||
try { |
|||
if (ObjectUtils.isEmpty(page.getPageNum())) { |
|||
return Result.error("页码数为空!"); |
|||
} |
|||
if (ObjectUtils.isEmpty(page.getPageSize())) { |
|||
return Result.error("页大小为空!"); |
|||
} else { |
|||
if (page.getBeanAuditInfo().getStatus() == null) { |
|||
return Result.error("状态不能为空"); |
|||
} |
|||
return Result.success(beanAuditService.selectBy(page.getPageNum(), page.getPageSize(), page.getBeanAuditInfo())); |
|||
} |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return Result.error("请检查筛选数据的格式"); |
|||
} |
|||
|
|||
} |
|||
|
|||
@PostMapping("/status1") |
|||
public Result updateStatus1(@RequestBody BeanAuditInfo beanAuditInfo) { |
|||
try { |
|||
if (ObjectUtils.isEmpty(beanAuditInfo.getId())) { |
|||
return Result.error("id不能为空"); |
|||
} |
|||
return beanAuditService.updateStatus1(beanAuditInfo); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return Result.error("更新失败,查看id"); |
|||
} |
|||
} |
|||
|
|||
@PostMapping("/status2") |
|||
public Result updateStatus2(@RequestBody BeanAuditInfo beanAuditInfo) { |
|||
try { |
|||
if (ObjectUtils.isEmpty(beanAuditInfo.getId())) { |
|||
return Result.error("id不能为空"); |
|||
} |
|||
if (ObjectUtils.isEmpty(beanAuditInfo.getReason())) { |
|||
return Result.error("审核意见不能为空"); |
|||
} |
|||
beanAuditService.updateStatus2(beanAuditInfo); |
|||
return Result.success(); |
|||
} catch (Exception e) { |
|||
return Result.error("更新失败,查看id"); |
|||
} |
|||
} |
|||
|
|||
//金豆统计 |
|||
@PostMapping("/statsBean") |
|||
public Result statsBean(@RequestBody BeanAuditInfo beanAuditInfo) { |
|||
try { |
|||
GoldBean goldBean = beanAuditService.statsBean(beanAuditInfo); |
|||
return Result.success(goldBean); |
|||
} catch (Exception e) { |
|||
return Result.error("请检查数据的格式"); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,130 @@ |
|||
package com.example.demo.controller.bean; |
|||
|
|||
import com.example.demo.domain.vo.bean.BeanConsume; |
|||
import com.example.demo.domain.vo.bean.BeanConsumeGold; |
|||
import com.example.demo.domain.vo.bean.BeanRecharge; |
|||
import com.example.demo.domain.vo.coin.Page; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.service.bean.BeanConsumeService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.util.ObjectUtils; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanConsumeController |
|||
* @description: |
|||
* @author: Ethan |
|||
* @create: 2025−07-30 11:30 |
|||
* @Version 1.0 |
|||
**/ |
|||
@RestController |
|||
@RequestMapping("/beanConsume") |
|||
@RequiredArgsConstructor |
|||
@Slf4j |
|||
@CrossOrigin |
|||
public class BeanConsumeController { |
|||
@Autowired |
|||
private BeanConsumeService beanConsumeService; |
|||
|
|||
//获取消费用户分部信息 |
|||
@PostMapping("/getDept") |
|||
public Result getDept(){ |
|||
|
|||
List<String> deptList = beanConsumeService.getDept(); |
|||
return Result.success(deptList); |
|||
} |
|||
|
|||
//获取直播消费用户分部信息 |
|||
@PostMapping("/getLiveDept") |
|||
public Result getLiveDept(){ |
|||
|
|||
List<String> deptList = beanConsumeService.getLiveDept(); |
|||
return Result.success(deptList); |
|||
} |
|||
|
|||
|
|||
//减少金豆 |
|||
@PostMapping("/reduce") |
|||
public Result reduce(@RequestBody BeanConsume consume) { |
|||
try { |
|||
return beanConsumeService.reduce(consume); |
|||
} catch (Exception e) { |
|||
return Result.error("减少失败"); |
|||
} |
|||
} |
|||
//筛选查询直播消费记录 |
|||
@PostMapping("/selectLiveBy") |
|||
public Result selectLiveBy(@RequestBody Page page){ |
|||
try { |
|||
if (ObjectUtils.isEmpty(page.getPageNum())) { |
|||
return Result.error("页码数为空!"); |
|||
} |
|||
if (ObjectUtils.isEmpty(page.getPageSize())) { |
|||
return Result.error("页大小为空!"); |
|||
} else { |
|||
|
|||
return Result.success(beanConsumeService.selectLiveBy(page.getPageNum(), page.getPageSize(), page.getBeanConsumeLive())); |
|||
} |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
//返回堆栈信息 |
|||
return Result.error(e.toString()); |
|||
}} |
|||
//筛选查询铁粉消费记录 |
|||
@PostMapping("/selectFanBy") |
|||
public Result selectFanBy(@RequestBody Page page){ |
|||
try { |
|||
if (ObjectUtils.isEmpty(page.getPageNum())) { |
|||
return Result.error("页码数为空!"); |
|||
} |
|||
if (ObjectUtils.isEmpty(page.getPageSize())) { |
|||
return Result.error("页大小为空!"); |
|||
} else { |
|||
|
|||
return Result.success(beanConsumeService.selectFanBy(page.getPageNum(), page.getPageSize(), page.getBeanConsumeFan())); |
|||
} |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return Result.error(e.toString()); |
|||
}} |
|||
|
|||
//筛选查询文章消费记录 |
|||
@PostMapping("/selectArticleBy") |
|||
public Result selectArticleBy(@RequestBody Page page){ |
|||
try { |
|||
if (ObjectUtils.isEmpty(page.getPageNum())) { |
|||
return Result.error("页码数为空!"); |
|||
} |
|||
if (ObjectUtils.isEmpty(page.getPageSize())) { |
|||
return Result.error("页大小为空!"); |
|||
} else { |
|||
|
|||
return Result.success(beanConsumeService.selectArticleBy(page.getPageNum(), page.getPageSize(), page.getBeanConsumeArticle())); |
|||
} |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return Result.error(e.toString()); |
|||
}} |
|||
|
|||
//消费合计数 |
|||
@PostMapping("sumConsumeGold") |
|||
public BeanConsumeGold sumConsumeGold(@RequestBody Page page) { |
|||
|
|||
return beanConsumeService.sumConsumeGold( page); |
|||
} |
|||
//查询所有直播礼物 |
|||
@PostMapping("/getLiveGift") |
|||
public Result getLiveGift(){ |
|||
return Result.success(beanConsumeService.getLiveGift()); |
|||
} |
|||
//查询所有直播频道 |
|||
@PostMapping("/getLiveChannel") |
|||
public Result getLiveChannel(){ |
|||
return Result.success(beanConsumeService.getLiveChannel()); |
|||
} |
|||
} |
@ -0,0 +1,121 @@ |
|||
package com.example.demo.controller.bean; |
|||
|
|||
import com.example.demo.domain.vo.bean.BeanOnlineRechargeInfo; |
|||
import com.example.demo.domain.vo.bean.BeanRecharge; |
|||
import com.example.demo.domain.vo.bean.BeanSystemRechargeInfo; |
|||
import com.example.demo.domain.vo.bean.GoldBean; |
|||
import com.example.demo.domain.vo.coin.Page; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.service.bean.BeanRechargeService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.util.ObjectUtils; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanRechrageController |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−07-29 16:46 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@RestController |
|||
@RequestMapping("/beanRecharge") |
|||
@RequiredArgsConstructor |
|||
@Slf4j |
|||
@CrossOrigin |
|||
public class BeanRechargeController { |
|||
|
|||
@Autowired |
|||
private BeanRechargeService beanRechargeService; |
|||
|
|||
//添加金豆 |
|||
@PostMapping("/add") |
|||
public Result add(@RequestBody BeanRecharge recharge) { |
|||
try { |
|||
return beanRechargeService.add(recharge); |
|||
} catch (Exception e) { |
|||
return Result.error("添加失败"); |
|||
} |
|||
} |
|||
|
|||
//系统充值 |
|||
@PostMapping("/selectBySystem") |
|||
public Result selectBySystem(@RequestBody Page page) { |
|||
try { |
|||
if (ObjectUtils.isEmpty(page.getPageNum())) { |
|||
return Result.error("页码数为空!"); |
|||
} |
|||
if (ObjectUtils.isEmpty(page.getPageSize())) { |
|||
return Result.error("页大小为空!"); |
|||
} else { |
|||
return Result.success(beanRechargeService.selectBySystem(page.getPageNum(), page.getPageSize(), page.getBeanSystemRechargeInfo())); |
|||
} |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return Result.error("请检查筛选数据的格式"); |
|||
} |
|||
|
|||
} |
|||
|
|||
//系统金豆统计 |
|||
@PostMapping("/statsSystemBean") |
|||
public Result statsSystemBean(@RequestBody BeanSystemRechargeInfo beanSystemRechargeInfo) { |
|||
try { |
|||
GoldBean goldBean = beanRechargeService.statsSystemBean(beanSystemRechargeInfo); |
|||
return Result.success(goldBean); |
|||
} catch (Exception e) { |
|||
return Result.error("请检查数据的格式"); |
|||
} |
|||
} |
|||
//获取系统充值地区 |
|||
@PostMapping("/systemMarket") |
|||
public Result systemMarket() |
|||
{ |
|||
List<String> list = beanRechargeService.systemMarket(); |
|||
return Result.success(list); |
|||
} |
|||
|
|||
//线上充值 |
|||
@PostMapping("/selectByOnline") |
|||
public Result selectByOnline(@RequestBody Page page) { |
|||
try { |
|||
if (ObjectUtils.isEmpty(page.getPageNum())) { |
|||
return Result.error("页码数为空!"); |
|||
} |
|||
if (ObjectUtils.isEmpty(page.getPageSize())) { |
|||
return Result.error("页大小为空!"); |
|||
} else { |
|||
return Result.success(beanRechargeService.selectByOnline(page.getPageNum(), page.getPageSize(), page.getBeanOnlineRechargeInfo())); |
|||
} |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return Result.error("请检查筛选数据的格式"); |
|||
} |
|||
|
|||
} |
|||
|
|||
//线上金豆统计 |
|||
@PostMapping("/statsOnlineBean") |
|||
public Result statsOnlineBean(@RequestBody BeanOnlineRechargeInfo beanOnlineRechargeInfo) { |
|||
try { |
|||
GoldBean goldBean = beanRechargeService.statsOnlineBean(beanOnlineRechargeInfo); |
|||
return Result.success(goldBean); |
|||
} catch (Exception e) { |
|||
return Result.error("请检查数据的格式"); |
|||
} |
|||
} |
|||
|
|||
//获取线上充值地区 |
|||
@PostMapping("/onlineMarket") |
|||
public Result onlineMarket() |
|||
{ |
|||
List<String> list = beanRechargeService.onlineMarket(); |
|||
return Result.success(list); |
|||
} |
|||
} |
@ -0,0 +1,79 @@ |
|||
package com.example.demo.controller.bean; |
|||
|
|||
import com.example.demo.domain.entity.User; |
|||
import com.example.demo.domain.vo.bean.BeanUser; |
|||
import com.example.demo.domain.vo.bean.BeanUserCard; |
|||
import com.example.demo.domain.vo.coin.Page; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.service.bean.BeanUserService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.util.ObjectUtils; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanUserController |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−07-29 17:03 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@RestController |
|||
@RequestMapping("/beanUser") |
|||
@RequiredArgsConstructor |
|||
@Slf4j |
|||
@CrossOrigin |
|||
public class BeanUserController { |
|||
|
|||
@Autowired |
|||
private BeanUserService beanUserService; |
|||
|
|||
//查询用户卡片 |
|||
@PostMapping("/userCard") |
|||
public Result userCard(@RequestBody BeanUserCard user) { |
|||
try { |
|||
return beanUserService.userCard(user.getJwcode().toString()); |
|||
} catch (Exception e) { |
|||
return Result.error("请检查输入精网号格式"); |
|||
} |
|||
} |
|||
//客户金豆余额 |
|||
@PostMapping("/userBean") |
|||
public Result userBean(@RequestBody Page page) { |
|||
try { |
|||
if (ObjectUtils.isEmpty(page.getPageNum())) { |
|||
return Result.error("页码数为空!"); |
|||
} |
|||
if (ObjectUtils.isEmpty(page.getPageSize())) { |
|||
return Result.error("页大小为空!"); |
|||
} else { |
|||
|
|||
return Result.success(beanUserService.selectUserBy(page.getPageNum(), page.getPageSize(), page.getBeanUser())); |
|||
} |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return Result.error(e.toString()); |
|||
}} |
|||
//客户金币余额合计数 |
|||
@PostMapping("/userBeanSum") |
|||
public Result userBeanSum(@RequestBody Page page) { |
|||
|
|||
return Result.success(beanUserService.sumUserGold(page)); |
|||
} |
|||
//查询客户分部 |
|||
@PostMapping("/getDept") |
|||
public Result getDept() { |
|||
List<String> deptList = beanUserService.getDept(); |
|||
return Result.success(deptList); |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
@ -1,11 +1,11 @@ |
|||
package com.example.demo.controller; |
|||
package com.example.demo.controller.coin; |
|||
|
|||
import com.example.demo.Util.JWTUtil; |
|||
import com.example.demo.domain.entity.Admin; |
|||
import com.example.demo.domain.vo.Password; |
|||
import com.example.demo.domain.vo.Result; |
|||
import com.example.demo.mapper.AdminMapper; |
|||
import com.example.demo.service.AdminService; |
|||
import com.example.demo.domain.vo.coin.Password; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.mapper.coin.AdminMapper; |
|||
import com.example.demo.service.coin.AdminService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
@ -1,20 +1,18 @@ |
|||
package com.example.demo.controller; |
|||
package com.example.demo.controller.coin; |
|||
|
|||
import com.example.demo.Util.JWTUtil; |
|||
import com.example.demo.domain.entity.Admin; |
|||
import com.example.demo.domain.vo.*; |
|||
import com.example.demo.service.AuditService; |
|||
import com.example.demo.service.coin.AuditService; |
|||
import com.github.pagehelper.PageInfo; |
|||
import jakarta.servlet.http.HttpServletRequest; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.http.ResponseEntity; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.web.context.request.RequestContextHolder; |
|||
import org.springframework.web.context.request.ServletRequestAttributes; |
|||
|
|||
import com.example.demo.domain.vo.coin.*; |
|||
import java.util.Arrays; |
|||
import java.util.List; |
|||
|
@ -0,0 +1,198 @@ |
|||
package com.example.demo.controller.coin; |
|||
|
|||
import com.example.demo.Util.BusinessException; |
|||
import com.example.demo.Util.JWTUtil; |
|||
import com.example.demo.Util.RedisLockUtil; |
|||
import com.example.demo.domain.DTO.*; |
|||
import com.example.demo.domain.entity.Admin; |
|||
import com.example.demo.domain.entity.Export; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.service.coin.ExportExcelService; |
|||
import com.example.demo.service.coin.GoldDetailService; |
|||
import com.example.demo.Export.ExportService; |
|||
import jakarta.servlet.http.HttpServletRequest; |
|||
import jakarta.validation.Valid; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.security.core.userdetails.UserDetails; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.web.context.request.RequestContextHolder; |
|||
import org.springframework.web.context.request.ServletRequestAttributes; |
|||
|
|||
import java.util.UUID; |
|||
|
|||
/** |
|||
* @program: GOLD |
|||
* @ClassName ExportController |
|||
* @description: |
|||
* @author: huangqizhen |
|||
* @create: 2025−06-28 15:22 |
|||
* @Version 1.0 |
|||
**/ |
|||
@RestController |
|||
@RequestMapping("/export") |
|||
@RequiredArgsConstructor |
|||
@Slf4j |
|||
@CrossOrigin |
|||
public class ExportController { |
|||
@Autowired |
|||
private ExportExcelService exportExcelService; |
|||
@Autowired |
|||
private RedisLockUtil redisLockUtil; |
|||
@Autowired |
|||
private GoldDetailService goldDetailService; |
|||
@Autowired |
|||
private ExportService exportService; |
|||
@PostMapping("/export") |
|||
public Result export(@Valid @RequestBody Export export, @RequestHeader("token") String token) throws Exception { |
|||
try { |
|||
UserDetails token1= JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); |
|||
export.setAccount(Integer.valueOf(token1.getUsername())); |
|||
return Result.success(exportExcelService.getExcel(export)); |
|||
} catch (Exception e) { |
|||
log.error("导出失败", e.getMessage()); |
|||
return Result.error("导出失败" + e.getMessage()); |
|||
} |
|||
} |
|||
@PostMapping("/exportRecharge") |
|||
public Result export(@Valid @RequestBody RechargeDTO dto) { |
|||
String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key(可按用户/业务区分) |
|||
String requestId = UUID.randomUUID().toString(); // 请求 ID(防止误删锁) |
|||
long expireTime = 5000; // 锁过期时间(5秒)s |
|||
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); |
|||
String token = request.getHeader("token"); |
|||
dto.setToken(token); |
|||
try { |
|||
// 尝试获取锁 |
|||
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) { |
|||
throw new BusinessException("操作太频繁,请稍后重试"); |
|||
} |
|||
// 执行业务逻辑 |
|||
return exportService.addExportRecharge(dto); |
|||
} finally { |
|||
// 释放锁 |
|||
redisLockUtil.unlock(lockKey, requestId); |
|||
} |
|||
} |
|||
@PostMapping("/exportRefund") |
|||
public Result export(@Valid @RequestBody RefundDTO dto) { |
|||
String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key(可按用户/业务区分) |
|||
String requestId = UUID.randomUUID().toString(); // 请求 ID(防止误删锁) |
|||
long expireTime = 5000; // 锁过期时间(5秒)s |
|||
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); |
|||
String token = request.getHeader("token"); |
|||
dto.setToken(token); |
|||
try { |
|||
// 尝试获取锁 |
|||
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) { |
|||
throw new BusinessException("操作太频繁,请稍后重试"); |
|||
} |
|||
// 执行业务逻辑 |
|||
return exportService.addExportRefund(dto); |
|||
} finally { |
|||
// 释放锁 |
|||
redisLockUtil.unlock(lockKey, requestId); |
|||
} |
|||
} |
|||
@PostMapping("/exportConsume") |
|||
public Result export(@Valid @RequestBody ConsumeDTO dto) { |
|||
String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key(可按用户/业务区分) |
|||
String requestId = UUID.randomUUID().toString(); // 请求 ID(防止误删锁) |
|||
long expireTime = 5000; // 锁过期时间(5秒)s |
|||
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); |
|||
String token = request.getHeader("token"); |
|||
dto.setToken(token); |
|||
try { |
|||
return exportService.addExportConsume(dto); |
|||
} finally { |
|||
// 释放锁 |
|||
redisLockUtil.unlock(lockKey, requestId); |
|||
} |
|||
} |
|||
@PostMapping("/exportLive") |
|||
public Result export(@Valid @RequestBody LiveDTO dto) { |
|||
String lockKey = "export:lock:" + dto.getToken(); |
|||
String requestId = UUID.randomUUID().toString(); |
|||
long expireTime = 5000; |
|||
try { |
|||
// 尝试获取锁 |
|||
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) { |
|||
throw new BusinessException("操作太频繁,请稍后重试"); |
|||
} |
|||
// 执行业务逻辑 |
|||
return exportService.addExportLive(dto); |
|||
} finally { |
|||
// 释放锁 |
|||
redisLockUtil.unlock(lockKey, requestId); |
|||
} |
|||
} |
|||
@PostMapping("/exportFan") |
|||
public Result export(@Valid @RequestBody FanDTO dto){ |
|||
String lockKey = "export:lock:" + dto.getToken(); |
|||
String requestId = UUID.randomUUID().toString(); |
|||
long expireTime = 5000; |
|||
try { |
|||
// 尝试获取锁 |
|||
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) { |
|||
throw new BusinessException("操作太频繁,请稍后重试"); |
|||
} |
|||
// 执行业务逻辑 |
|||
return exportService.addExportFan(dto); |
|||
} finally { |
|||
// 释放锁 |
|||
redisLockUtil.unlock(lockKey, requestId); |
|||
} |
|||
} |
|||
@PostMapping("/exportArticle") |
|||
public Result export(@Valid @RequestBody ArticleDTO dto){ |
|||
String lockKey = "export:lock:" + dto.getToken(); |
|||
String requestId = UUID.randomUUID().toString(); |
|||
long expireTime = 5000; |
|||
try { |
|||
// 尝试获取锁 |
|||
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) { |
|||
throw new BusinessException("操作太频繁,请稍后重试"); |
|||
} |
|||
// 执行业务逻辑 |
|||
return exportService.addExportArticle(dto); |
|||
} finally { |
|||
// 释放锁 |
|||
redisLockUtil.unlock(lockKey, requestId); |
|||
} |
|||
} |
|||
@PostMapping("/exportBean") |
|||
public Result export(@Valid @RequestBody BeanRechargeDTO dto){ |
|||
String lockKey = "export:lock:" + dto.getToken(); |
|||
String requestId = UUID.randomUUID().toString(); |
|||
long expireTime = 5000; |
|||
try { |
|||
// 尝试获取锁 |
|||
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) { |
|||
throw new BusinessException("操作太频繁,请稍后重试"); |
|||
} |
|||
// 执行业务逻辑 |
|||
return exportService.addExportBean(dto); |
|||
} finally { |
|||
// 释放锁 |
|||
redisLockUtil.unlock(lockKey, requestId); |
|||
} |
|||
} |
|||
@PostMapping("/exportol") |
|||
public Result exportol(@Valid @RequestBody OnlineDTO dto) throws Exception { |
|||
String lockKey = "export:lock:" + dto.getToken(); |
|||
String requestId = UUID.randomUUID().toString(); |
|||
long expireTime = 5000; |
|||
try { |
|||
// 尝试获取锁 |
|||
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) { |
|||
throw new BusinessException("操作太频繁,请稍后重试"); |
|||
} |
|||
// 执行业务逻辑 |
|||
return exportService.addExportOnline(dto); |
|||
} finally { |
|||
// 释放锁 |
|||
redisLockUtil.unlock(lockKey, requestId); |
|||
} |
|||
} |
|||
} |
@ -1,9 +1,9 @@ |
|||
package com.example.demo.controller; |
|||
package com.example.demo.controller.coin; |
|||
|
|||
import com.example.demo.domain.vo.AdminVo; |
|||
import com.example.demo.domain.vo.Result; |
|||
import com.example.demo.domain.vo.RoleVo; |
|||
import com.example.demo.service.GeneralService; |
|||
import com.example.demo.domain.vo.coin.AdminVo; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.domain.vo.coin.RoleVo; |
|||
import com.example.demo.service.coin.GeneralService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
@ -0,0 +1,26 @@ |
|||
package com.example.demo.controller.coin; |
|||
|
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.service.coin.MarketService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.CrossOrigin; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
@RestController |
|||
@RequestMapping("/market") |
|||
@RequiredArgsConstructor |
|||
@Slf4j |
|||
@CrossOrigin |
|||
public class MarketController { |
|||
@Autowired |
|||
private MarketService marketService; |
|||
|
|||
@RequestMapping("/selectMarket") |
|||
public Result selectMarket() |
|||
{ |
|||
return Result.success(marketService.selectMarket()); |
|||
} |
|||
} |
@ -1,13 +1,12 @@ |
|||
package com.example.demo.controller; |
|||
package com.example.demo.controller.coin; |
|||
|
|||
import com.example.demo.domain.vo.MenuVo; |
|||
import com.example.demo.domain.vo.Result; |
|||
import com.example.demo.domain.vo.RoleVo; |
|||
import com.example.demo.service.MenuService; |
|||
import com.example.demo.domain.vo.coin.MenuVo; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.domain.vo.coin.RoleVo; |
|||
import com.example.demo.service.coin.MenuService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Controller; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
@ -1,13 +1,12 @@ |
|||
package com.example.demo.controller; |
|||
package com.example.demo.controller.coin; |
|||
|
|||
import com.example.demo.Util.JWTUtil; |
|||
import com.example.demo.domain.entity.Admin; |
|||
import com.example.demo.domain.entity.AdminRole; |
|||
import com.example.demo.domain.vo.AdminVo; |
|||
import com.example.demo.domain.vo.Page; |
|||
import com.example.demo.domain.vo.Permission; |
|||
import com.example.demo.domain.vo.Result; |
|||
import com.example.demo.service.PermissionService; |
|||
import com.example.demo.domain.vo.coin.AdminVo; |
|||
import com.example.demo.domain.vo.coin.Page; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.service.coin.PermissionService; |
|||
import jakarta.servlet.http.HttpServletRequest; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
@ -1,16 +1,14 @@ |
|||
package com.example.demo.controller; |
|||
package com.example.demo.controller.coin; |
|||
|
|||
|
|||
import com.example.demo.domain.entity.Rate; |
|||
import com.example.demo.domain.vo.Page; |
|||
import com.example.demo.domain.vo.Result; |
|||
import com.example.demo.mapper.RateMapper; |
|||
import com.example.demo.service.RateService; |
|||
import com.example.demo.domain.vo.coin.Page; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.service.coin.RateService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.util.ObjectUtils; |
|||
import org.springframework.validation.BindingResult; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.math.BigDecimal; |
@ -1,13 +1,11 @@ |
|||
package com.example.demo.controller; |
|||
package com.example.demo.controller.coin; |
|||
|
|||
import com.example.demo.Util.JWTUtil; |
|||
import com.example.demo.domain.entity.Admin; |
|||
import com.example.demo.domain.entity.Role; |
|||
import com.example.demo.domain.vo.Page; |
|||
import com.example.demo.domain.vo.Result; |
|||
import com.example.demo.domain.vo.RoleVo; |
|||
import com.example.demo.service.RefundService; |
|||
import com.example.demo.service.RoleService; |
|||
import com.example.demo.domain.vo.coin.Page; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.domain.vo.coin.RoleVo; |
|||
import com.example.demo.service.coin.RoleService; |
|||
import jakarta.servlet.http.HttpServletRequest; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
@ -1,11 +1,9 @@ |
|||
package com.example.demo.controller; |
|||
package com.example.demo.controller.coin; |
|||
|
|||
import com.example.demo.domain.entity.User; |
|||
import com.example.demo.domain.vo.Gold; |
|||
import com.example.demo.domain.vo.GoldUser; |
|||
import com.example.demo.domain.vo.Result; |
|||
import com.example.demo.service.ConsumeService; |
|||
import com.example.demo.service.UserService; |
|||
import com.example.demo.domain.vo.coin.GoldUser; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.service.coin.UserService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
@ -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 = 8; //类型 |
|||
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,38 @@ |
|||
package com.example.demo.domain.DTO; |
|||
|
|||
import com.example.demo.domain.vo.bean.BeanConsumeArticle; |
|||
import com.example.demo.domain.vo.bean.BeanRechargeInfo; |
|||
import com.example.demo.domain.vo.bean.BeanSystemRechargeInfo; |
|||
import jakarta.validation.constraints.NotNull; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
/** |
|||
* @program: GOLD |
|||
* @ClassName BeanRechargeDTO |
|||
* @description: |
|||
* @author: huangqizhen |
|||
* @create: 2025−08-03 09:26 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
public class BeanRechargeDTO { |
|||
private String token; |
|||
private String url = ""; |
|||
private String fileName = ""; |
|||
private Integer sort = 0; |
|||
private String field = ""; |
|||
private Integer account; |
|||
private Integer type = 9; //类型 |
|||
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 BeanSystemRechargeInfo beanSystemRechargeInfo; |
|||
} |
@ -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,37 @@ |
|||
package com.example.demo.domain.DTO; |
|||
|
|||
import com.example.demo.domain.vo.bean.BeanConsumeLive; |
|||
import com.example.demo.domain.vo.coin.ConsumeUser; |
|||
import jakarta.validation.constraints.NotNull; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
/** |
|||
* @program: GOLD |
|||
* @ClassName LiveDTO |
|||
* @description: |
|||
* @author: huangqizhen |
|||
* @create: 2025−07-31 17:28 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
public class LiveDTO { |
|||
private String token; |
|||
private String url = ""; |
|||
private String fileName = ""; |
|||
private Integer sort = 0; |
|||
private String field = ""; |
|||
private Integer account; |
|||
private Integer type = 6; //类型 |
|||
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 BeanConsumeLive beanConsumeLive; |
|||
} |
@ -0,0 +1,36 @@ |
|||
package com.example.demo.domain.DTO; |
|||
|
|||
import com.example.demo.domain.vo.bean.BeanOnlineRechargeInfo; |
|||
import jakarta.validation.constraints.NotNull; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
/** |
|||
* @program: GOLD |
|||
* @ClassName OnlineDTO |
|||
* @description: |
|||
* @author: huangqizhen |
|||
* @create: 2025−08-03 11:51 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
public class OnlineDTO { |
|||
private String token; |
|||
private String url = ""; |
|||
private String fileName = ""; |
|||
private Integer sort = 0; |
|||
private String field = ""; |
|||
private Integer account; |
|||
private Integer type = 10; //类型 |
|||
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 BeanOnlineRechargeInfo beanOnlineRechargeInfo; |
|||
} |
@ -0,0 +1,33 @@ |
|||
package com.example.demo.domain.entity; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
|
|||
/** |
|||
* @program: GOLD |
|||
* @ClassName Export |
|||
* @description: |
|||
* @author: huangqizhen |
|||
* @create: 2025−07-26 16:17 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
public class Market { |
|||
private Integer id; |
|||
private String name; |
|||
private Integer parentId; |
|||
private Date createTime; |
|||
private String treelist; |
|||
private Integer type; |
|||
|
|||
private List<Market> children; |
|||
|
|||
|
|||
|
|||
} |
@ -1,32 +0,0 @@ |
|||
package com.example.demo.domain.vo; |
|||
|
|||
import com.example.demo.domain.entity.User; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
/** |
|||
* @program: GOLD |
|||
* @ClassName Page |
|||
* @description: |
|||
* @author: huangqizhen |
|||
* @create: 2025−06-23 16:23 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
public class Page { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
private String token; |
|||
private Integer pageNum; |
|||
private Integer pageSize; |
|||
private GoldDetail goldDetail; |
|||
private ConsumeUser consumeUser; |
|||
private User user; |
|||
private RefundUser refundUser; |
|||
private Permission permission; |
|||
private RechargeAudit rechargeAudit; |
|||
private RefundAudit refundAudit; |
|||
private RechargeUser rechargeUser; |
|||
private RoleVo roleVo; |
|||
} |
@ -0,0 +1,49 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanAuditInfo |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−08-01 11:33 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
|
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class BeanAuditInfo { |
|||
private Long id; // id |
|||
private Integer jwcode; // 精网号 |
|||
private String name; // 姓名 |
|||
private String market; // 所属地区 |
|||
private Integer freeBean; // 免费豆 |
|||
private Integer permanentBean; // 永久豆 |
|||
private String remark; // 备注 |
|||
private String submitName; // 提交人名称 |
|||
private String auditName; // 审核人名称 |
|||
private String reason; // 审核意见 |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date createTime; //创建时间 |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date auditTime; //审核时间 |
|||
private String status; // 状态 |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date createStartTime; // 开始时间 |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date createEndTime; // 结束时间 |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date auditStartTime; // 开始时间 |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date auditEndTime; // 结束时间 |
|||
private String sortField; // 排序字段 |
|||
private String sortOrder; // 排序顺序 |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanConsume |
|||
* @description: |
|||
* @author: Ethan |
|||
* @create: 2025−08-02 11:32 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class BeanConsume { |
|||
private Integer id;//id |
|||
private String jwcode; // 精网号 |
|||
private Integer total; //总金豆 |
|||
private Integer freeBean; // 免费豆 |
|||
private Integer permanentBean; // 永久豆 |
|||
private String remark; //备注 |
|||
private Integer money; // 金额 |
|||
private String adminName; // 管理员名称 |
|||
} |
@ -0,0 +1,63 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
import com.alibaba.excel.annotation.ExcelIgnore; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanConsumeArticle |
|||
* @description: |
|||
* @author: Ethan |
|||
* @create: 2025−07-31 17:05 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
@JsonIgnoreProperties(ignoreUnknown = true) |
|||
public class BeanConsumeArticle { |
|||
private static final long serialVersionUID = 1L; |
|||
@ExcelProperty("ID") |
|||
private Integer id; |
|||
@ExcelProperty("姓名") |
|||
private String name; //姓名 |
|||
@ExcelProperty("精网号") |
|||
private Integer jwcode; //精网号 |
|||
@ExcelProperty("地区/分部") |
|||
private String dept; //地区/分部 |
|||
@ExcelProperty("类型") |
|||
private String type; //类型source_type 9、10打赏,11付费 |
|||
@ExcelIgnore |
|||
private Integer payMode; // 0 打赏 1 付费 2 其他 |
|||
@ExcelProperty("金豆数量") |
|||
private String beanNum; //金豆数量 |
|||
@ExcelProperty("付费金豆数量") |
|||
private Integer buyBean; //付费金豆 |
|||
@ExcelProperty("免费金豆数量") |
|||
private Integer freeBean; //免费金豆 |
|||
private Integer articleId; //文章/视频ID |
|||
@ExcelProperty("文章/视频标题") |
|||
private String articleName; //文章/视频标题(source_name) |
|||
@ExcelProperty("作者") |
|||
private String author; //作者 |
|||
@ExcelProperty("支付类型") |
|||
private String payType; //支付类型 1-5:直播 7铁粉 8文章 |
|||
@ExcelIgnore |
|||
private String sortField; //排序字段 |
|||
@ExcelIgnore |
|||
private String sortOrder; //排序顺序 |
|||
@ExcelProperty("付费时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date consumeTime; // 付费时间 (时间戳转化) |
|||
@ExcelIgnore |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date startTime; // 开始时间 |
|||
@ExcelIgnore |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date endTime; // 结束时间 |
|||
} |
@ -0,0 +1,58 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
import com.alibaba.excel.annotation.ExcelIgnore; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanConsumeFan |
|||
* @description: |
|||
* @author: Ethan |
|||
* @create: 2025−07-31 11:30 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
@JsonIgnoreProperties(ignoreUnknown = true) |
|||
public class BeanConsumeFan { |
|||
private static final long serialVersionUID = 1L; |
|||
@ExcelProperty("ID") |
|||
private Integer id; |
|||
@ExcelProperty("姓名") |
|||
private String name; //姓名 |
|||
@ExcelProperty("精网号") |
|||
private Integer jwcode; //精网号 |
|||
@ExcelProperty("地区/分部") |
|||
private String dept; //地区/分部 |
|||
@ExcelProperty("金豆数量") |
|||
private String beanNum; //金豆数量 |
|||
@ExcelProperty("免费金豆") |
|||
private String freeBean; //免费金豆 |
|||
@ExcelProperty("付费金豆") |
|||
private String buyBean; //付费金豆 |
|||
@ExcelProperty("频道名称") |
|||
private String channel; //频道名称(source_name) |
|||
@ExcelProperty("消费方式") |
|||
private String type; //类型source_type 单月,连续包月 |
|||
@ExcelProperty("支付方式") |
|||
private Integer payType; //支付方式(直播:12345,铁粉:7,文章:8) |
|||
@ExcelIgnore |
|||
private String sortField; //排序字段 |
|||
@ExcelIgnore |
|||
private String sortOrder; //排序顺序 |
|||
@ExcelProperty("消费时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date consumeTime; // 消费时间 (时间戳转化) |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
@ExcelIgnore |
|||
private Date startTime; // 开始时间 |
|||
@ExcelIgnore |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date endTime; // 结束时间 |
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanConsumeGold |
|||
* @description: |
|||
* @author: Ethan |
|||
* @create: 2025−07-30 16:12 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Data |
|||
@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; //总条数 |
|||
} |
@ -0,0 +1,69 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
|
|||
import com.alibaba.excel.annotation.ExcelIgnore; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanConsume |
|||
* @description: |
|||
* @author: Ethan |
|||
* @create: 2025−07-30 10:41 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
@JsonIgnoreProperties(ignoreUnknown = true) |
|||
public class BeanConsumeLive { |
|||
private static final long serialVersionUID = 1L; |
|||
@ExcelProperty("ID") |
|||
private Integer id; |
|||
@ExcelProperty("姓名") |
|||
private String name; //姓名 |
|||
@ExcelProperty("精网号") |
|||
private Integer jwcode; //精网号 |
|||
@ExcelProperty("地区/分部") |
|||
private String dept; //地区/分部 |
|||
//类型 直播: 1. 发礼物2. 发红包3. 发福袋4. 付费直播5. 加入粉丝团6. 发弹幕 |
|||
//文章: 1. 打赏2. 付费 |
|||
@ExcelProperty("类型") |
|||
|
|||
private String type; //类型 |
|||
@ExcelProperty("礼物名称") |
|||
private String gift; //礼物名称 |
|||
@ExcelProperty("是否为背包礼物") |
|||
private String isBackpack; |
|||
@ExcelProperty("金豆数量") |
|||
private String beanNum; //金豆数量 |
|||
@ExcelProperty("频道名称") |
|||
private String liveChannel; //频道名称(截取content) |
|||
@ExcelProperty("免费金豆") |
|||
private String freeBean; //免费金豆 |
|||
@ExcelProperty("付费金豆") |
|||
private String buyBean; //付费金豆 |
|||
@ExcelProperty("直播名称") |
|||
private String liveName; //直播间名称 |
|||
@ExcelProperty("消费时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date consumeTime; // 消费时间 (时间戳转化) |
|||
@ExcelProperty("支付方式") |
|||
private Integer payType; //支付方式(直播:12345,铁粉:7,文章:8) |
|||
@ExcelIgnore |
|||
private String sortField; //排序字段 |
|||
@ExcelIgnore |
|||
private String sortOrder; //排序顺序 |
|||
@ExcelIgnore |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date startTime; // 开始时间 |
|||
@ExcelIgnore |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date endTime; // 结束时间 |
|||
} |
@ -0,0 +1,58 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
import com.alibaba.excel.annotation.ExcelIgnore; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanRecharge |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−07-30 15:11 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class BeanOnlineRechargeInfo { |
|||
|
|||
|
|||
private Long id;//id |
|||
@ExcelProperty("精网号") |
|||
private Integer jwcode; // 精网号 |
|||
@ExcelProperty("客户姓名") |
|||
private String name; // 姓名 |
|||
@ExcelProperty("所属地区") |
|||
private String market; // 所属地区 |
|||
@ExcelProperty("金额") |
|||
private Double money; // 金额 |
|||
@ExcelProperty("数量") |
|||
private Integer num; // 数量 |
|||
@ExcelProperty("订单号") |
|||
private String orderNo; // 订单号 |
|||
@ExcelProperty("充值平台 PC:1 手机:2") |
|||
private String platform; // 充值平台 |
|||
@ExcelProperty("充值时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date rechargeTime; // 充值时间 |
|||
@ExcelIgnore |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date startTime; // 开始时间 |
|||
@ExcelIgnore |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date endTime; // 结束时间 |
|||
@ExcelIgnore |
|||
private List<String> markets; // 地区列表 |
|||
@ExcelIgnore |
|||
private String sortField; //排序字段 |
|||
@ExcelIgnore |
|||
private String sortOrder; //排序顺序 |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanRecharge |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−07-29 16:50 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class BeanRecharge { |
|||
private Integer id;//id |
|||
private Integer jwcode; // 精网号 |
|||
private Integer freeBean; // 免费豆 |
|||
private Integer permanentBean; // 永久豆 |
|||
private String remark; //备注 |
|||
private Integer money; // 金额 |
|||
private String adminName; // 管理员名称 |
|||
} |
@ -0,0 +1,62 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
import com.alibaba.excel.annotation.ExcelIgnore; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanRecharge |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−07-30 15:11 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class BeanRechargeInfo { |
|||
|
|||
|
|||
private Long id;//id |
|||
@ExcelProperty("精网号") |
|||
private Integer jwcode; // 精网号 |
|||
@ExcelProperty("客户姓名") |
|||
private String name; // 姓名 |
|||
@ExcelProperty("所属地区") |
|||
private String market; // 所属地区 |
|||
@ExcelProperty("免费金豆") |
|||
private Integer freeBean; // 免费豆 |
|||
@ExcelProperty("付费金豆") |
|||
private Integer permanentBean; // 永久豆 |
|||
@ExcelProperty("金额") |
|||
private Double money; // 金额 |
|||
@ExcelProperty("数量") |
|||
private Integer num; // 数量 |
|||
@ExcelProperty("订单号") |
|||
private String orderNo; // 订单号 |
|||
@ExcelProperty("充值平台 PC:1 手机:2") |
|||
private String platform; // 充值平台 |
|||
@ExcelProperty("充值时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date rechargeTime; // 充值时间 |
|||
@ExcelIgnore |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date startTime; // 开始时间 |
|||
@ExcelIgnore |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date endTime; // 结束时间 |
|||
@ExcelIgnore |
|||
private List<String> markets; // 地区列表 |
|||
@ExcelIgnore |
|||
private String sortField; //排序字段 |
|||
@ExcelIgnore |
|||
private String sortOrder; //排序顺序 |
|||
} |
@ -0,0 +1,58 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
import com.alibaba.excel.annotation.ExcelIgnore; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanRecharge |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−07-30 15:11 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class BeanSystemRechargeInfo { |
|||
|
|||
|
|||
private Long id;//id |
|||
@ExcelProperty("精网号") |
|||
private Integer jwcode; // 精网号 |
|||
@ExcelProperty("客户姓名") |
|||
private String name; // 姓名 |
|||
@ExcelProperty("所属地区") |
|||
private String market; // 所属地区 |
|||
@ExcelProperty("免费金豆") |
|||
private Integer freeBean; // 免费豆 |
|||
@ExcelProperty("付费金豆") |
|||
private Integer permanentBean; // 永久豆 |
|||
@ExcelProperty("金额") |
|||
private Double money; // 金额 |
|||
@ExcelProperty("备注") |
|||
private String remark; //备注 |
|||
@ExcelProperty("充值时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date rechargeTime; // 充值时间 |
|||
@ExcelIgnore |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date startTime; // 开始时间 |
|||
@ExcelIgnore |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") |
|||
private Date endTime; // 结束时间 |
|||
@ExcelIgnore |
|||
private List<String> markets; // 地区列表 |
|||
@ExcelIgnore |
|||
private String sortField; //排序字段 |
|||
@ExcelIgnore |
|||
private String sortOrder; //排序顺序 |
|||
} |
@ -0,0 +1,29 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanUser |
|||
* @description: |
|||
* @author: Ethan |
|||
* @create: 2025−08-01 10:40 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class BeanUser { |
|||
private Integer id; |
|||
private String name; //姓名 |
|||
private Integer jwcode; //精网号 |
|||
private String dept; //分部 |
|||
private Integer beanNum; //金豆数量 |
|||
private Integer buyBean; //付费金豆 |
|||
private Integer freeBean; //免费金豆 |
|||
private Integer totalCostBean; //历史消费 |
|||
private String sortField; //排序字段 |
|||
private String sortOrder; //排序顺序 |
|||
} |
@ -0,0 +1,29 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanUser |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−07-29 17:06 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class BeanUserCard { |
|||
|
|||
private String name; // 客户姓名 |
|||
private Integer jwcode; // 精网号 |
|||
private String market; // 所属地区 |
|||
private Integer sumBean; // 所有金豆 |
|||
private Integer freeBean; // 免费豆 |
|||
private Integer permanentBean; // 永久豆 |
|||
private Integer consumeSum; // 消费金额 |
|||
} |
@ -0,0 +1,25 @@ |
|||
package com.example.demo.domain.vo.bean; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName GoldBean |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−07-31 13:10 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class GoldBean { |
|||
private Integer freeBean; // 免费豆 |
|||
private Integer permanentBean; // 永久豆 |
|||
private Double money; // 金额 |
|||
private Integer beanNum; // 豆数量 |
|||
private Integer num; // 订单数 |
|||
} |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonIgnore; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
@ -0,0 +1,43 @@ |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import com.example.demo.domain.entity.User; |
|||
import com.example.demo.domain.vo.bean.*; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
/** |
|||
* @program: GOLD |
|||
* @ClassName Page |
|||
* @description: |
|||
* @author: huangqizhen |
|||
* @create: 2025−06-23 16:23 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Data |
|||
@NoArgsConstructor |
|||
public class Page { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
private String token; |
|||
private Integer pageNum; |
|||
private Integer pageSize; |
|||
private GoldDetail goldDetail; |
|||
private ConsumeUser consumeUser; |
|||
private User user; |
|||
private RefundUser refundUser; |
|||
private Permission permission; |
|||
private RechargeAudit rechargeAudit; |
|||
private RefundAudit refundAudit; |
|||
private RechargeUser rechargeUser; |
|||
private RoleVo roleVo; |
|||
private Integer payType; //支付方式(直播:12345,铁粉:7,文章:8) |
|||
private BeanConsumeLive beanConsumeLive; //直播金豆消费 |
|||
private BeanConsumeFan beanConsumeFan; //铁粉金豆消费 |
|||
private BeanConsumeArticle beanConsumeArticle; //文章金豆消费 |
|||
private BeanSystemRechargeInfo beanSystemRechargeInfo; //金豆充值信息 |
|||
private BeanOnlineRechargeInfo beanOnlineRechargeInfo; //金豆充值信息 |
|||
private BeanConsumeGold beanConsumeGold; //金豆消费合计数 |
|||
private BeanUser beanUser; //客户金豆余额明细 |
|||
private BeanUserCard beanUserCard; //客户金豆卡片 |
|||
private BeanAuditInfo beanAuditInfo; //金豆审核信息 |
|||
} |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import com.example.demo.Util.BusinessException; |
|||
import com.fasterxml.jackson.core.JsonProcessingException; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.AllArgsConstructor; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.AllArgsConstructor; |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.domain.vo; |
|||
package com.example.demo.domain.vo.coin; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
@ -0,0 +1,40 @@ |
|||
package com.example.demo.mapper.bean; |
|||
|
|||
import com.example.demo.domain.vo.bean.*; |
|||
import com.example.demo.domain.vo.coin.RechargeAudit; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanConsumeMapper.xml |
|||
* @description: |
|||
* @author: Ethan |
|||
* @create: 2025−07-30 11:56 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Mapper |
|||
public interface BeanConsumeMapper { |
|||
//获取消费用户分部 |
|||
List<String> getDept(); |
|||
//筛选查询直播消费 |
|||
List<BeanConsumeLive> selectLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive); |
|||
//筛选查询铁粉消费 |
|||
List<BeanConsumeFan> selectFanBy(@Param("beanConsumeFan") BeanConsumeFan beanConsumeFan); |
|||
//筛选查询文章消费 |
|||
List<BeanConsumeArticle> selectArticleBy(@Param("beanConsumeArticle") BeanConsumeArticle beanConsumeArticle); |
|||
//查询金豆直播消费金额 |
|||
BeanConsumeGold selectSumLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive); |
|||
//查询金豆铁粉消费金额 |
|||
BeanConsumeGold selectSumFansBy(@Param("beanConsumeFan") BeanConsumeFan beanConsumeFan); |
|||
//查询金豆文章消费金额 |
|||
BeanConsumeGold selectSumArticleBy(@Param("beanConsumeArticle") BeanConsumeArticle beanConsumeArticle); |
|||
//查询直播礼物 |
|||
List<String> getLiveGift(); |
|||
//查询直播全部频道 |
|||
List<String> getLiveChannel(); |
|||
|
|||
} |
|||
|
@ -0,0 +1,25 @@ |
|||
package com.example.demo.mapper.bean; |
|||
|
|||
|
|||
|
|||
import com.example.demo.domain.vo.bean.BeanSystemRechargeInfo; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanRechargeMapper |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−07-30 15:43 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@Mapper |
|||
public interface BeanRechargeMapper2 { |
|||
|
|||
List<BeanSystemRechargeInfo> selectBySystem(BeanSystemRechargeInfo beanSystemRechargeInfo); |
|||
|
|||
List<String> systemMarket(); |
|||
} |
@ -0,0 +1,31 @@ |
|||
package com.example.demo.mapper.bean; |
|||
|
|||
|
|||
import com.example.demo.domain.vo.bean.BeanUser; |
|||
import com.example.demo.domain.vo.bean.BeanUserCard; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanUserMapper |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−07-29 17:31 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@Mapper |
|||
public interface BeanUserMapper { |
|||
//查询客户金豆余额 |
|||
List<BeanUser> selectUserBy(@Param("beanUser") BeanUser beanUser); |
|||
|
|||
//查询用户卡片 |
|||
BeanUserCard userCard(@Param("jwcode")String jwcode); |
|||
//查询客户金豆余额合计 |
|||
BeanUserCard SumUserBy(@Param("beanUser")BeanUser beanUser); |
|||
//查询客户分部 |
|||
List<String> getDept(); |
|||
} |
@ -1,4 +1,4 @@ |
|||
package com.example.demo.mapper; |
|||
package com.example.demo.mapper.coin; |
|||
|
|||
import com.example.demo.domain.entity.Admin; |
|||
import org.apache.ibatis.annotations.Mapper; |
@ -1,6 +1,6 @@ |
|||
package com.example.demo.mapper; |
|||
package com.example.demo.mapper.coin; |
|||
|
|||
import com.example.demo.domain.vo.AiEmotionExportRecordVO; |
|||
import com.example.demo.domain.vo.coin.AiEmotionExportRecordVO; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
@ -1,10 +1,9 @@ |
|||
package com.example.demo.mapper; |
|||
package com.example.demo.mapper.coin; |
|||
|
|||
import com.example.demo.domain.entity.User; |
|||
import com.example.demo.domain.entity.UserGoldRecord; |
|||
import com.example.demo.domain.vo.RechargeAudit; |
|||
import com.example.demo.domain.vo.RefundAudit; |
|||
import com.github.pagehelper.PageInfo; |
|||
import com.example.demo.domain.vo.coin.RechargeAudit; |
|||
import com.example.demo.domain.vo.coin.RefundAudit; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
@ -0,0 +1,31 @@ |
|||
package com.example.demo.mapper.coin; |
|||
|
|||
|
|||
import com.example.demo.domain.vo.bean.BeanAuditInfo; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanAuditMapper |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−08-01 11:44 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@Mapper |
|||
public interface BeanAuditMapper { |
|||
//查找审核信息 |
|||
List<BeanAuditInfo> selectBy(BeanAuditInfo beanAuditInfo); |
|||
|
|||
//根据id查询审核信息 |
|||
BeanAuditInfo selectById(Long id); |
|||
|
|||
//根据id更新状态为1 |
|||
void updateStatus1(BeanAuditInfo beanAuditInfo); |
|||
|
|||
//根据id更新状态为2 |
|||
void updateStatus2(BeanAuditInfo beanAuditInfo); |
|||
} |
@ -0,0 +1,20 @@ |
|||
package com.example.demo.mapper.coin; |
|||
|
|||
|
|||
import com.example.demo.domain.vo.bean.BeanRecharge; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName BeanRechargeMapper |
|||
* @description: |
|||
* @author: Double |
|||
* @create: 2025−07-30 15:43 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@Mapper |
|||
public interface BeanRechargeMapper1 { |
|||
|
|||
int add(BeanRecharge recharge); |
|||
} |
Some files were not shown because too many files changed in this diff
Write
Preview
Loading…
Cancel
Save
Reference in new issue