Browse Source

4.10多数据库的链接及工作台柱状图的地区筛选

Huang
huangqizhen 3 months ago
parent
commit
285115e16a
  1. 16
      pom.xml
  2. 6
      src/main/java/com/example/demo/DemoApplication.java
  3. 84
      src/main/java/com/example/demo/config/DBSrcArticle.java
  4. 29
      src/main/java/com/example/demo/config/DataSourceConfig.java
  5. 1
      src/main/java/com/example/demo/config/WebConfig.java
  6. 80
      src/main/java/com/example/demo/config/dBSrcUser.java
  7. 2
      src/main/java/com/example/demo/controller/AuditController.java
  8. 2
      src/main/java/com/example/demo/controller/StatisticsController.java
  9. 12
      src/main/java/com/example/demo/domain/vo/RechargeVo.java
  10. 3
      src/main/java/com/example/demo/domain/vo/SumCoin.java
  11. 2
      src/main/java/com/example/demo/mapper/ActivityMapper.java
  12. 2
      src/main/java/com/example/demo/mapper/AdminMapper.java
  13. 2
      src/main/java/com/example/demo/mapper/AuditMapper.java
  14. 2
      src/main/java/com/example/demo/mapper/ConsumeMapper.java
  15. 2
      src/main/java/com/example/demo/mapper/DetailMapper.java
  16. 2
      src/main/java/com/example/demo/mapper/DetailYMapper.java
  17. 2
      src/main/java/com/example/demo/mapper/OneMapper.java
  18. 2
      src/main/java/com/example/demo/mapper/OtherMapper.java
  19. 2
      src/main/java/com/example/demo/mapper/PermissionMapper.java
  20. 2
      src/main/java/com/example/demo/mapper/ProductMapper.java
  21. 2
      src/main/java/com/example/demo/mapper/RateMapper.java
  22. 2
      src/main/java/com/example/demo/mapper/RechargeMapper.java
  23. 2
      src/main/java/com/example/demo/mapper/RefundMapper.java
  24. 126
      src/main/java/com/example/demo/mapper/StatisticsMapper.java
  25. 2
      src/main/java/com/example/demo/mapper/UserMapper.java
  26. 2
      src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java
  27. 2
      src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java
  28. 8
      src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
  29. 4
      src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
  30. 2
      src/main/java/com/example/demo/serviceImpl/DetailServiceImpl.java
  31. 2
      src/main/java/com/example/demo/serviceImpl/DetailYServiceImpl.java
  32. 2
      src/main/java/com/example/demo/serviceImpl/OneServiceImpl.java
  33. 8
      src/main/java/com/example/demo/serviceImpl/OtherServiceImpl.java
  34. 2
      src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java
  35. 2
      src/main/java/com/example/demo/serviceImpl/ProductServiceImpl.java
  36. 2
      src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java
  37. 8
      src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
  38. 2
      src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
  39. 23
      src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
  40. 2
      src/main/java/com/example/demo/serviceImpl/UserDetailServiceImpl.java
  41. 2
      src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java
  42. 2
      src/main/java/com/example/demo/sevice/DataExportService.java
  43. 74
      src/main/resources/application.yml
  44. 2
      src/main/resources/mapper/ConsumeMapper.xml
  45. 2
      src/main/resources/mapper/DetailYMapper.xml
  46. 2
      src/main/resources/mapper/OneMapper.xml
  47. 2
      src/main/resources/mapper/ProductMapper.xml
  48. 2
      src/main/resources/mapper/RechargeMapper.xml
  49. 2
      src/main/resources/mapper/RefundMapper.xml
  50. 127
      src/main/resources/mapper/StatisticsMapper.xml
  51. 2
      src/main/resources/mapper/UserMapper.xml
  52. 41
      src/main/resources/mapper/db1/StatisticsMapper.xml

16
pom.xml

@ -25,6 +25,12 @@
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.1.0</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.kafka</groupId>-->
<!-- <artifactId>spring-kafka</artifactId>-->
@ -45,7 +51,7 @@
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.0</version>
<version>1.2.9</version>
</dependency>
<dependency>
@ -166,6 +172,14 @@
</configuration>
</plugin>
</plugins>
<!--<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>-->
</build>
</project>

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

@ -9,9 +9,9 @@ import org.springframework.cache.annotation.EnableCaching;
@EnableCaching
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@MapperScan(basePackages = {"com.example.demo.mapper.db1"}, sqlSessionFactoryRef = "sqlSessionFactoryArticle")
@MapperScan(basePackages = {"com.example.demo.mapper.db2"}, sqlSessionFactoryRef = "sqlSessionFactoryUser")
@SpringBootApplication
@MapperScan(basePackages = "com.example.demo.mapper", sqlSessionTemplateRef = "mysql1SqlSessionTemplate")
@MapperScan(basePackages = "com.example.demo.mapperLink", sqlSessionTemplateRef = "mysql2SqlSessionTemplate")
public class DemoApplication {
public static void main(String[] args) {

84
src/main/java/com/example/demo/config/DBSrcArticle.java

@ -1,34 +1,50 @@
package com.example.demo.config;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.SqlSessionFactoryBean; // 正确导入SqlSessionFactoryBean
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
/**
* 数据库leadnews_article配置
*/
@Configuration
@MapperScan(basePackages = {"com.example.demo.mapper.db1"}, sqlSessionFactoryRef = "sqlSessionFactoryArticle")
public class DBSrcArticle {
@Bean
public SqlSessionFactory sqlSessionFactoryArticle(@Qualifier("mysql1") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean(); // 修正类名
sqlSessionFactory.setDataSource(dataSource);
sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:mapper/db1/*.xml"));
return sqlSessionFactory.getObject();
}
@Bean
public SqlSessionTemplate sqlSessionTemplateArticle(@Qualifier("sqlSessionFactoryArticle") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
//package com.example.demo.config;
//
//import com.zaxxer.hikari.HikariDataSource;
//import org.apache.ibatis.session.SqlSessionFactory;
//import org.mybatis.spring.SqlSessionTemplate;
//import org.mybatis.spring.SqlSessionFactoryBean; // 正确导入SqlSessionFactoryBean
//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.context.annotation.Primary;
//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
//
//import javax.sql.DataSource;
//
//
//
///**
// * 数据库leadnews_article配置
// */
//@Configuration
//@MapperScan(basePackages = {"com.example.demo.mapper"}, sqlSessionFactoryRef = "sqlSessionFactoryArticle")
//public class DBSrcArticle {
//
// @Bean(name = "mysql1DataSource")
// @Primary // 因为这是默认数据源因此标记为Primary
// @ConfigurationProperties(prefix = "spring.datasource.mysql1")
// public DataSource cmsDataSource() {
// HikariDataSource dataSource = DataSourceBuilder.create().type(HikariDataSource.class).build();
//// log.info("mysql1 DataSource initialized with pool-name: {}", dataSource.getPoolName());
// return dataSource;
// }
//
// @Bean(name = "mysql1SqlSessionFactory")
// @Primary // 默认SqlSessionFactory
// public SqlSessionFactory cmsSqlSessionFactory(@Qualifier("mysql1DataSource") DataSource dataSource) throws Exception {
// SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
// sessionFactory.setDataSource(dataSource);
// sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
// return sessionFactory.getObject();
// }
//
// @Bean(name = "mysql1SqlSessionTemplate")
// @Primary // 默认SqlSessionTemplate
// public SqlSessionTemplate cmsSqlSessionTemplate(@Qualifier("mysql1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
// return new SqlSessionTemplate(sqlSessionFactory);
// }
//}

29
src/main/java/com/example/demo/config/DataSourceConfig.java

@ -1,29 +0,0 @@
package com.example.demo.config;
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.context.annotation.Primary;
import javax.sql.DataSource;
/**
* 数据源配置
*/
@Configuration
public class DataSourceConfig {
@Primary
@Bean(name = "mysql1")
@ConfigurationProperties(prefix = "spring.datasource.mysql1")
public DataSource dBSrcArticle() {
return DataSourceBuilder.create().build();
}
@Primary
@Bean(name = "mysql2")
@ConfigurationProperties(prefix = "spring.datasource.mysql2")
public DataSource dBSrcUser() {
return DataSourceBuilder.create().build();
}
}

1
src/main/java/com/example/demo/config/WebConfig.java

@ -6,7 +6,6 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configurable
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Value("${upload.path}")

80
src/main/java/com/example/demo/config/dBSrcUser.java

@ -1,37 +1,43 @@
package com.example.demo.config;
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.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
/**
* 数据库leadnews_user配置
*/
@Configuration
@MapperScan(basePackages = {"com.example.demo.mapper.db2"}, sqlSessionFactoryRef = "sqlSessionFactoryUser")
public class dBSrcUser {
@Bean
@Primary
public SqlSessionFactory sqlSessionFactoryUser(@Qualifier("mysql2") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean(); // 修复使用正确类名
sqlSessionFactory.setDataSource(dataSource);
sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:mapper/db2/*.xml")); // 确保路径正确
return sqlSessionFactory.getObject();
}
@Bean
@Primary
public SqlSessionTemplate sqlSessionTemplateUser(@Qualifier("sqlSessionFactoryUser") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
//package com.example.demo.config;
//
//import com.zaxxer.hikari.HikariDataSource;
//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.context.annotation.Primary;
//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
//
//import javax.sql.DataSource;
//
///**
// * 数据库leadnews_user配置
// */
//@Configuration
//@MapperScan(basePackages = {"com.example.demo.mapperLink"}, sqlSessionFactoryRef = "sqlSessionFactoryUser")
//public class dBSrcUser {
//
// @Bean(name = "mysql2DataSource")
// @ConfigurationProperties(prefix = "spring.datasource.mysql2")
// public DataSource hljwDataSource() {
// return DataSourceBuilder.create().type(HikariDataSource.class).build();
// }
//
// @Bean(name = "mysql2SqlSessionFactory")
// public SqlSessionFactory hljwSqlSessionFactory(@Qualifier("mysql2DataSource") DataSource dataSource) throws Exception {
// SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
// sessionFactory.setDataSource(dataSource);
// sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapperlink/*.xml"));
// return sessionFactory.getObject();
// }
//
// @Bean(name = "mysql2SqlSessionTemplate")
// public SqlSessionTemplate hljwSqlSessionTemplate(@Qualifier("mysql2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
// return new SqlSessionTemplate(sqlSessionFactory);
// }
//}

2
src/main/java/com/example/demo/controller/AuditController.java

@ -5,7 +5,7 @@ import com.example.demo.Util.GoldTistV2;
import com.example.demo.domain.entity.*;
import com.example.demo.domain.vo.Page;
import com.example.demo.domain.vo.Result;
import com.example.demo.mapper.db1.*;
import com.example.demo.mapper.*;
import com.example.demo.sevice.AuditService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

2
src/main/java/com/example/demo/controller/StatisticsController.java

@ -2,7 +2,7 @@ package com.example.demo.controller;
import com.example.demo.domain.vo.*;
import com.example.demo.mapper.db1.StatisticsMapper;
import com.example.demo.mapper.StatisticsMapper;
import com.example.demo.serviceImpl.StatisticsServiceImpl;
import com.example.demo.serviceImpl.UserServiceImpl;
import com.example.demo.sevice.StatisticsService;

12
src/main/java/com/example/demo/domain/vo/RechargeVo.java

@ -5,13 +5,16 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable; // 引入 Serializable
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
public class RechargeVo {
public class RechargeVo implements Serializable { // 实现 Serializable 接口
private static final long serialVersionUID = 1L; // 添加 serialVersionUID
private Integer rechargeId;
private String jwcode;
@ -25,10 +28,9 @@ public class RechargeVo {
private String rechargeVoucher;
private Integer adminId;
private String area;
private String remark;
private Integer flag;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
@ -50,6 +52,8 @@ public class RechargeVo {
private String sortField;
private String sortOrder;
private List<String> areas;
private List<String> areas; // List 类型默认是可序列化的
// 如果有任何不需要序列化的字段可以使用 transient 关键字
// private transient SomeNonSerializableType nonSerializableField;
}

3
src/main/java/com/example/demo/domain/vo/SumCoin.java

@ -10,12 +10,15 @@ import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
public class SumCoin {
private List<String> areas;
//当前金币余量 充值金币
private BigDecimal todayRecharge;
//当前金币余量 免费金币

2
src/main/java/com/example/demo/mapper/db1/ActivityMapper.java → src/main/java/com/example/demo/mapper/ActivityMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;

2
src/main/java/com/example/demo/mapper/db1/AdminMapper.java → src/main/java/com/example/demo/mapper/AdminMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import com.example.demo.domain.entity.Admin;

2
src/main/java/com/example/demo/mapper/db1/AuditMapper.java → src/main/java/com/example/demo/mapper/AuditMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import com.example.demo.domain.entity.Audit;

2
src/main/java/com/example/demo/mapper/db1/ConsumeMapper.java → src/main/java/com/example/demo/mapper/ConsumeMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import com.example.demo.domain.entity.*;

2
src/main/java/com/example/demo/mapper/db1/DetailMapper.java → src/main/java/com/example/demo/mapper/DetailMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import com.example.demo.domain.entity.Detail;

2
src/main/java/com/example/demo/mapper/db1/DetailYMapper.java → src/main/java/com/example/demo/mapper/DetailYMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.entity.UserDetailExport;

2
src/main/java/com/example/demo/mapper/db1/OneMapper.java → src/main/java/com/example/demo/mapper/OneMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import com.example.demo.domain.work.One;

2
src/main/java/com/example/demo/mapper/db1/OtherMapper.java → src/main/java/com/example/demo/mapper/OtherMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

2
src/main/java/com/example/demo/mapper/db1/PermissionMapper.java → src/main/java/com/example/demo/mapper/PermissionMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import com.example.demo.domain.entity.Permission;
import org.apache.ibatis.annotations.Mapper;

2
src/main/java/com/example/demo/mapper/db1/ProductMapper.java → src/main/java/com/example/demo/mapper/ProductMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import com.example.demo.domain.entity.Index;

2
src/main/java/com/example/demo/mapper/db1/RateMapper.java → src/main/java/com/example/demo/mapper/RateMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import com.example.demo.domain.entity.Rate;

2
src/main/java/com/example/demo/mapper/db1/RechargeMapper.java → src/main/java/com/example/demo/mapper/RechargeMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import com.example.demo.domain.entity.Recharge;

2
src/main/java/com/example/demo/mapper/db1/RefundMapper.java → src/main/java/com/example/demo/mapper/RefundMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import com.example.demo.domain.entity.Detail;

126
src/main/java/com/example/demo/mapper/db1/StatisticsMapper.java → src/main/java/com/example/demo/mapper/StatisticsMapper.java

@ -1,5 +1,5 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
@ -198,22 +198,22 @@ public interface StatisticsMapper {
// })
@Select({
"<script>",
"SELECT DATE_FORMAT(create_time, '%Y-%m') AS month," ,
" SUM(recharge_coin) / 100 AS rechargeSumCoin," ,
" SUM(free_coin) / 100 AS freeSumCoin," ,
" SUM(task_coin) / 100 AS taskSumCoin" ,
" FROM detail_y" ,
" WHERE update_type = '0'" ,
"<if test='searchStartTime != null and searchEndTime != null'>",
" AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
"</if>",
"GROUP BY month ORDER BY month ASC",
"</script>"
})
// @Select({
// "<script>",
// "SELECT DATE_FORMAT(create_time, '%Y-%m') AS month," ,
// " SUM(recharge_coin) / 100 AS rechargeSumCoin," ,
// " SUM(free_coin) / 100 AS freeSumCoin," ,
// " SUM(task_coin) / 100 AS taskSumCoin" ,
// " FROM detail_y" ,
// " WHERE update_type = '0'" ,
// "<if test='searchStartTime != null and searchEndTime != null'>",
// " AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
// "</if>",
// "GROUP BY month ORDER BY month ASC",
// "</script>"
// })
List<SumCoin> getMediuPayCoin(@Param("searchStartTime") Date StartTime, @Param("searchEndTime") Date searchEndTime);
List<SumCoin> getMediuPayCoin(@Param("searchStartTime") Date StartTime, @Param("searchEndTime") Date searchEndTime, List<String> areas);
//本年--1
@ -223,51 +223,51 @@ public interface StatisticsMapper {
// "and datediff(create_time,#{searchEndTime})<=0 and update_type = '1'" +
// "GROUP BY month ORDER BY month asc"
// })
@Select({
"<script>",
"SELECT DATE_FORMAT(create_time, '%Y-%m') AS month,",
" SUM(recharge_coin) / 100 AS rechargeSumCoin,",
" SUM(free_coin) / 100 AS freeSumCoin,",
" SUM(task_coin) / 100 AS taskSumCoin",
"FROM detail_y",
"WHERE update_type = '1'",
"<if test='searchStartTime != null and searchEndTime != null'>",
" AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
"</if>",//之前没有加动态SQL如果前端传递空数据库会查不到
"GROUP BY month",
"ORDER BY month ASC",
"</script>"
})
// @Select({
// "<script>",
// "SELECT DATE_FORMAT(create_time, '%Y-%m') AS month,",
// " SUM(recharge_coin) / 100 AS rechargeSumCoin,",
// " SUM(free_coin) / 100 AS freeSumCoin,",
// " SUM(task_coin) / 100 AS taskSumCoin",
// "FROM detail_y",
// "WHERE update_type = '1'",
// "<if test='searchStartTime != null and searchEndTime != null'>",
// " AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
// "</if>",//之前没有加动态SQL如果前端传递空数据库会查不到
// "GROUP BY month",
// "ORDER BY month ASC",
// "</script>"
// })
List<SumCoin> getMediuConsumeCoin(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
List<SumCoin> getMediuConsumeCoin(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime, List<String> areas);
// 本月 ---0
@Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) / 100 AS rechargeSumCoin,sum(free_coin) / 100 as freeSumCoin ,sum(task_coin) / 100 as taskSumCoin " +
"from detail_y where datediff(create_time,#{searchStartTime})>=0 " +
"and datediff(create_time,#{searchEndTime})<=0 and update_type = 0 group by DATE_FORMAT(create_time,'%m-%d')"
})
List<SumCoin> getMediuPayCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
// @Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) / 100 AS rechargeSumCoin,sum(free_coin) / 100 as freeSumCoin ,sum(task_coin) / 100 as taskSumCoin " +
// "from detail_y where datediff(create_time,#{searchStartTime})>=0 " +
// "and datediff(create_time,#{searchEndTime})<=0 and update_type = 0 group by DATE_FORMAT(create_time,'%m-%d')"
// })
List<SumCoin> getMediuPayCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime, List<String> areas);
@Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) / 100 AS rechargeSumCoin,sum(free_coin) / 100 as freeSumCoin ,sum(task_coin) / 100 as taskSumCoin " +
"from detail_y where datediff(create_time,#{searchStartTime})>=0 " +
"and datediff(create_time,#{searchEndTime})<=0 and update_type = 1 group by DATE_FORMAT(create_time,'%m-%d')"
})
// @Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) / 100 AS rechargeSumCoin,sum(free_coin) / 100 as freeSumCoin ,sum(task_coin) / 100 as taskSumCoin " +
// "from detail_y where datediff(create_time,#{searchStartTime})>=0 " +
// "and datediff(create_time,#{searchEndTime})<=0 and update_type = 1 group by DATE_FORMAT(create_time,'%m-%d')"
// })
List<SumCoin> getMediuCounsumeCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
List<SumCoin> getMediuCounsumeCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime, List<String> areas);
@Select({"SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
"IFNULL(SUM(recharge_coin) / 100, 0) AS rechargeSumCoin,",
"IFNULL(SUM(free_coin) / 100, 0) AS freeSumCoin,",
"IFNULL(SUM(task_coin) / 100, 0) AS taskSumCoin",
"FROM detail_y",
"WHERE DATE(create_time) = #{searchEndTime}",
"AND update_type = #{updateType}",
"GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')"
})
List<SumCoin> getMediuPayCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType);
// @Select({"SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
// "IFNULL(SUM(recharge_coin) / 100, 0) AS rechargeSumCoin,",
// "IFNULL(SUM(free_coin) / 100, 0) AS freeSumCoin,",
// "IFNULL(SUM(task_coin) / 100, 0) AS taskSumCoin",
// "FROM detail_y",
// "WHERE DATE(create_time) = #{searchEndTime}",
// "AND update_type = #{updateType}",
// "GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')"
// })
List<SumCoin> getMediuPayCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType, List<String> areas);
@Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
@ -275,17 +275,17 @@ public interface StatisticsMapper {
})
List<SumCoin> getMediuConsumeCoinday1(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
"IFNULL(SUM(recharge_coin) / 100, 0) AS rechargeSumCoin,",
"IFNULL(SUM(free_coin) / 100, 0) AS freeSumCoin,",
"IFNULL(SUM(task_coin) / 100, 0) AS taskSumCoin",
"FROM detail_y",
"WHERE DATE(create_time) = #{searchEndTime}",
"AND update_type = #{updateType}",
"GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')"
})
List<SumCoin> getMediuConsumeCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType);
// @Select({
// "SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
// "IFNULL(SUM(recharge_coin) / 100, 0) AS rechargeSumCoin,",
// "IFNULL(SUM(free_coin) / 100, 0) AS freeSumCoin,",
// "IFNULL(SUM(task_coin) / 100, 0) AS taskSumCoin",
// "FROM detail_y",
// "WHERE DATE(create_time) = #{searchEndTime}",
// "AND update_type = #{updateType}",
// "GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')"
// })
List<SumCoin> getMediuConsumeCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType, List<String> areas);
//给定时间段--10

2
src/main/java/com/example/demo/mapper/db1/UserMapper.java → src/main/java/com/example/demo/mapper/UserMapper.java

@ -1,4 +1,4 @@
package com.example.demo.mapper.db1;
package com.example.demo.mapper;
import com.example.demo.domain.entity.User;

2
src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java

@ -3,7 +3,7 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Activity;
import com.example.demo.mapper.db1.ActivityMapper;
import com.example.demo.mapper.ActivityMapper;
import com.example.demo.sevice.ActivityService;
import com.github.pagehelper.PageHelper;
import lombok.RequiredArgsConstructor;

2
src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java

@ -2,7 +2,7 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Admin;
import com.example.demo.mapper.db1.AdminMapper;
import com.example.demo.mapper.AdminMapper;
import com.example.demo.security.SecurityConfig;
import com.example.demo.sevice.AdminService;
import com.github.pagehelper.PageHelper;

8
src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java

@ -5,10 +5,10 @@ package com.example.demo.serviceImpl;
import com.example.demo.Util.GoldTistV2;
import com.example.demo.domain.entity.*;
import com.example.demo.mapper.db1.AuditMapper;
import com.example.demo.mapper.db1.DetailYMapper;
import com.example.demo.mapper.db1.RefundMapper;
import com.example.demo.mapper.db1.UserMapper;
import com.example.demo.mapper.AuditMapper;
import com.example.demo.mapper.DetailYMapper;
import com.example.demo.mapper.RefundMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.AuditService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

4
src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java

@ -6,8 +6,8 @@ import com.example.demo.Util.GoldTistV2;
import com.example.demo.domain.entity.*;
import com.example.demo.domain.vo.ConsumeDetail;
import com.example.demo.domain.vo.SumConsume;
import com.example.demo.mapper.db1.ConsumeMapper;
import com.example.demo.mapper.db1.UserMapper;
import com.example.demo.mapper.ConsumeMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.ConsumeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

2
src/main/java/com/example/demo/serviceImpl/DetailServiceImpl.java

@ -2,7 +2,7 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Detail;
import com.example.demo.mapper.db1.DetailMapper;
import com.example.demo.mapper.DetailMapper;
import com.example.demo.sevice.DetailService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

2
src/main/java/com/example/demo/serviceImpl/DetailYServiceImpl.java

@ -5,7 +5,7 @@ import com.example.demo.domain.entity.UserDetailExport;
import com.example.demo.domain.vo.DetailExport;
import com.example.demo.domain.vo.DetailYgold;
import com.example.demo.domain.vo.SumDetailY;
import com.example.demo.mapper.db1.DetailYMapper;
import com.example.demo.mapper.DetailYMapper;
import com.example.demo.sevice.DetailYService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

2
src/main/java/com/example/demo/serviceImpl/OneServiceImpl.java

@ -3,7 +3,7 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.work.One;
import com.example.demo.domain.work.Three;
import com.example.demo.domain.work.Two;
import com.example.demo.mapper.db1.OneMapper;
import com.example.demo.mapper.OneMapper;
import com.example.demo.sevice.OneService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

8
src/main/java/com/example/demo/serviceImpl/OtherServiceImpl.java

@ -5,10 +5,10 @@ import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.entity.Recharge;
import com.example.demo.domain.entity.UserGold;
import com.example.demo.domain.vo.ERP;
import com.example.demo.mapper.db1.DetailYMapper;
import com.example.demo.mapper.db1.OtherMapper;
import com.example.demo.mapper.db1.RechargeMapper;
import com.example.demo.mapper.db1.UserMapper;
import com.example.demo.mapper.DetailYMapper;
import com.example.demo.mapper.OtherMapper;
import com.example.demo.mapper.RechargeMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.OtherService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;

2
src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java

@ -1,7 +1,7 @@
package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Permission;
import com.example.demo.mapper.db1.PermissionMapper;
import com.example.demo.mapper.PermissionMapper;
import com.example.demo.sevice.PermissionService;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;

2
src/main/java/com/example/demo/serviceImpl/ProductServiceImpl.java

@ -3,7 +3,7 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Index;
import com.example.demo.domain.entity.Product;
import com.example.demo.mapper.db1.ProductMapper;
import com.example.demo.mapper.ProductMapper;
import com.example.demo.sevice.ProductService;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;

2
src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java

@ -3,7 +3,7 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Rate;
import com.example.demo.domain.vo.Result;
import com.example.demo.mapper.db1.RateMapper;
import com.example.demo.mapper.RateMapper;
import com.example.demo.sevice.RateService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

8
src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java

@ -6,10 +6,10 @@ import com.example.demo.domain.entity.Recharge;
import com.example.demo.domain.vo.RechargeA;
import com.example.demo.domain.vo.RechargeVo;
import com.example.demo.domain.vo.Result;
import com.example.demo.mapper.db1.AuditMapper;
import com.example.demo.mapper.db1.DetailMapper;
import com.example.demo.mapper.db1.RechargeMapper;
import com.example.demo.mapper.db1.UserMapper;
import com.example.demo.mapper.AuditMapper;
import com.example.demo.mapper.DetailMapper;
import com.example.demo.mapper.RechargeMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.RechargeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

2
src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java

@ -3,7 +3,7 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.vo.RefundA;
import com.example.demo.mapper.db1.RefundMapper;
import com.example.demo.mapper.RefundMapper;
import com.example.demo.sevice.RefundService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

23
src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java

@ -9,8 +9,8 @@ import com.example.demo.domain.vo.Meium;
import com.example.demo.domain.vo.Statistics;
import com.example.demo.domain.vo.Statisticss;
import com.example.demo.domain.vo.SumCoin;
import com.example.demo.mapper.db1.StatisticsMapper;
import com.example.demo.mapper.db1.UserMapper;
import com.example.demo.mapper.StatisticsMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.StatisticsService;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
@ -417,7 +417,7 @@ public class StatisticsServiceImpl implements StatisticsService {
//}
@Cacheable(key = "#root.method.name + #sumcoin.hashCode()")
// @Cacheable(key = "#root.method.name + #sumcoin.hashCode()")
public List<SumCoin> getCoinTime(SumCoin sumcoin) {
System.out.println(sumcoin + "-------sumcoin----");
@ -425,13 +425,14 @@ public class StatisticsServiceImpl implements StatisticsService {
Date searchEndTime = sumcoin.getSearchEndTime();
Integer year = sumcoin.getYear();
Integer updateType = sumcoin.getUpdateType();
List<String> areas = sumcoin.getAreas();
// 如果开始时间和结束时间都为空则直接返回默认统计结果即全查
if (searchStartTime == null && searchEndTime == null) {
if (1 == updateType) {
return statisticsMapper.getMediuConsumeCoin(searchStartTime, searchEndTime);//前端没有选定时间SQL会查询所有数据
return statisticsMapper.getMediuConsumeCoin(searchStartTime, searchEndTime, areas);//前端没有选定时间SQL会查询所有数据
} else if (0 == updateType) {
return statisticsMapper.getMediuPayCoin(null, null);
return statisticsMapper.getMediuPayCoin(null, null, areas);
}
return null; // 或者抛出异常取决于业务需求
}
@ -468,25 +469,25 @@ public class StatisticsServiceImpl implements StatisticsService {
// 如果天数差大于100天
if (year != null) {
if (1 == updateType) {
return statisticsMapper.getMediuConsumeCoin(searchStartTime, searchEndTime);
return statisticsMapper.getMediuConsumeCoin(searchStartTime, searchEndTime, areas);
} else if (0 == updateType) {
return statisticsMapper.getMediuPayCoin(searchStartTime, searchEndTime);
return statisticsMapper.getMediuPayCoin(searchStartTime, searchEndTime, areas);
}
}
// 如果天数差为0即同一天
if (daysBetween == 0) {
if (1 == updateType) {
queryResult = statisticsMapper.getMediuConsumeCoinday(searchEndTime, updateType);
queryResult = statisticsMapper.getMediuConsumeCoinday(searchEndTime, updateType, areas);
} else if (0 == updateType) {
queryResult = statisticsMapper.getMediuPayCoinday(searchEndTime, updateType);
queryResult = statisticsMapper.getMediuPayCoinday(searchEndTime, updateType, areas);
}
}
// 如果天数差小于100天但不为0即跨月或较短时间段
else {
if (1 == updateType) {
queryResult = statisticsMapper.getMediuCounsumeCoinyue(searchStartTime, searchEndTime);
queryResult = statisticsMapper.getMediuCounsumeCoinyue(searchStartTime, searchEndTime, areas);
} else if (0 == updateType) {
queryResult = statisticsMapper.getMediuPayCoinyue(searchStartTime, searchEndTime);
queryResult = statisticsMapper.getMediuPayCoinyue(searchStartTime, searchEndTime, areas);
}
}

2
src/main/java/com/example/demo/serviceImpl/UserDetailServiceImpl.java

@ -2,7 +2,7 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Admin;
import com.example.demo.mapper.db1.AdminMapper;
import com.example.demo.mapper.AdminMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;

2
src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java

@ -3,7 +3,7 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.UserVo;
import com.example.demo.mapper.db1.UserMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.UserSevice;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

2
src/main/java/com/example/demo/sevice/DataExportService.java

@ -1,7 +1,7 @@
package com.example.demo.sevice;
import com.example.demo.domain.entity.UserDetailExport;
import com.example.demo.mapper.db1.DetailYMapper;
import com.example.demo.mapper.DetailYMapper;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

74
src/main/resources/application.yml

@ -1,50 +1,29 @@
server:
# port: 10702
# port: 10010
port: 10704
spring:
jackson:
deserialization:
fail-on-unknown-properties: false
servlet:
multipart:
max-file-size: 10MB
max-request-size: 100MB
datasource:
mysql1:
hikari:
maximum-pool-size: 10
minimum-idle: 5
idle-timeout: 30000
max-lifetime: 1800000
connection-timeout: 30000
pool-name: HwgoldHikariCP
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://54.251.137.151:10701/hwgold?serverTimezone=Asia/Shanghai
# url: jdbc:mysql://39.101.133.168:3306/hwgold?serverTimezone=Asia/Shanghai
jdbc-url: jdbc:mysql://54.251.137.151:10701/hwgold?serverTimezone=Asia/Shanghai
username: hwgold
password: 'AGX4Z3YMxiCG3GR2'
mysql2:
password: AGX4Z3YMxiCG3GR2
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
pool-name: mysql1HikariCP
maximum-pool-size: 10
minimum-idle: 5
idle-timeout: 30000
max-lifetime: 1800000
connection-timeout: 30000
pool-name: HwgoldHikariCP
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://39.101.133.168:3306/hwgold?serverTimezone=Asia/Shanghai
username: hljw
password: '5dmWCCKfEk3TTeyn'
application:
name: demo
cache:
type: redis
redis:
time-to-live: 3600000
use-key-prefix: true
cache-null-values: true
cache:
type: redis
redis:
time-to-live: 3600000
use-key-prefix: true
cache-null-values: true
servlet:
multipart:
enabled: true
max-file-size: 10MB
max-request-size: 10MB
data:
redis:
database: 1
@ -52,28 +31,19 @@ spring:
port: 10703
password: 8912h12jhhajsd
timeout: 1000
# host: 127.0.0.1
# port: 6379
# timeout: 1000
# host: 39.99.159.73
# port: 20001
# password: 8912h12jhhajsd
# timeout: 1000
lettuce:
pool:
max-active: 20
max-wait: -1
max-idle: 5
mybatis:
mapper-locations: classpath*:mapper/*.xml
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
upload:
path: /home/java/haiwaiyanfa/gold1/
path: /home/java/haiwaiyanfa/gold1
server:
port: 8080

2
src/main/resources/mapper/db1/ConsumeMapper.xml → src/main/resources/mapper/ConsumeMapper.xml

@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.db1.ConsumeMapper">
<mapper namespace="com.example.demo.mapper.ConsumeMapper">
<select id="getSumConsume" resultType="com.example.demo.domain.vo.SumConsume">
SELECT
sum(free_coin) as SumFcion,

2
src/main/resources/mapper/db1/DetailYMapper.xml → src/main/resources/mapper/DetailYMapper.xml

@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.db1.DetailYMapper" >
<mapper namespace="com.example.demo.mapper.DetailYMapper" >
<select id="select" resultType="com.example.demo.domain.entity.DetailY">
SELECT
username,

2
src/main/resources/mapper/db1/OneMapper.xml → src/main/resources/mapper/OneMapper.xml

@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.db1.OneMapper">
<mapper namespace="com.example.demo.mapper.OneMapper">
<!-- 第一个查询:getOne -->
<select id="getOne" resultType="com.example.demo.domain.work.One">

2
src/main/resources/mapper/db1/ProductMapper.xml → src/main/resources/mapper/ProductMapper.xml

@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.db1.ProductMapper">
<mapper namespace="com.example.demo.mapper.ProductMapper">
<insert id="add" parameterType="com.example.demo.domain.entity.Product">
INSERT INTO user (price, name,listed_time,down_time,remark,subjects,type,product_flag,create_time)
VALUES (#{price}, #{name},#{listedTime},#{downTime},#{remark},#{subjects},#{type},#{productFlag},#{createTime})

2
src/main/resources/mapper/db1/RechargeMapper.xml → src/main/resources/mapper/RechargeMapper.xml

@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.db1.RechargeMapper">
<mapper namespace="com.example.demo.mapper.RechargeMapper">
<select id="getRechargeA" resultType="com.example.demo.domain.vo.RechargeA">
SELECT

2
src/main/resources/mapper/db1/RefundMapper.xml → src/main/resources/mapper/RefundMapper.xml

@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.db1.RefundMapper">
<mapper namespace="com.example.demo.mapper.RefundMapper">
<select id="getRefundA" resultType="com.example.demo.domain.vo.RefundA">
SELECT
CASE

127
src/main/resources/mapper/StatisticsMapper.xml

@ -0,0 +1,127 @@
<?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.StatisticsMapper">
<select id="getMeium" resultType="com.example.demo.domain.vo.Meium">
SELECT
u.area,
SUM(d.recharge_coin) / 100 AS rechargeSumCoin,
SUM(d.free_coin) / 100 AS freeSumCoin,
SUM(d.task_coin) / 100 AS taskSumCoin,
(SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) / 100 AS totalRechargeSum
FROM
detail_y d
LEFT JOIN
user u
ON
u.jwcode = d.jwcode
<where>
<!-- 动态判断 update_type 是否传入 -->
<if test="updateType != null">
AND update_type = #{updateType}
</if>
<!-- 动态判断时间范围 -->
<choose>
<when test="searchStartTime != null and searchEndTime != null">
AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})
</when>
</choose>
</where>
GROUP BY
u.area
<if test="sortField != null and sortField != ''">
ORDER BY ${sortField}
<if test="sortOrder != null and sortOrder != ''">
${sortOrder}
</if>
</if>
</select>
<select id="getMediuConsumeCoin" resultType="com.example.demo.domain.vo.SumCoin">
SELECT DATE_FORMAT(create_time, '%Y-%m') AS month,
SUM(recharge_coin) / 100 AS rechargeSumCoin,
SUM(free_coin) / 100 AS freeSumCoin,
SUM(task_coin) / 100 AS taskSumCoin
FROM detail_y
WHERE update_type = '1'
<if test="searchStartTime != null and searchEndTime != null">
AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}
</if>
<if test="areas != null">
AND area IN
<foreach collection="areas" item="areas" open="(" separator="," close=")">
#{areas}
</foreach>
</if>
GROUP BY month
ORDER BY month ASC
</select>
<select id="getMediuPayCoin" resultType="com.example.demo.domain.vo.SumCoin">
SELECT DATE_FORMAT(create_time, '%Y-%m') AS month,
SUM(recharge_coin) / 100 AS rechargeSumCoin,
SUM(free_coin) / 100 AS freeSumCoin,
SUM(task_coin) / 100 AS taskSumCoin
FROM detail_y
WHERE update_type = '0'
<if test="searchStartTime != null and searchEndTime != null">
AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}
</if>
<if test="areas != null">
AND area IN
<foreach collection="areas" item="areas" open="(" separator="," close=")">
#{areas}
</foreach>
</if>
GROUP BY month
ORDER BY month ASC
</select>
<select id="getMediuConsumeCoinday" resultType="com.example.demo.domain.vo.SumCoin">
SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,
IFNULL(SUM(recharge_coin) / 100, 0) AS rechargeSumCoin,
IFNULL(SUM(free_coin) / 100, 0) AS freeSumCoin,
IFNULL(SUM(task_coin) / 100, 0) AS taskSumCoin
FROM detail_y
WHERE DATE(create_time) = #{searchEndTime}
AND update_type = #{updateType}
<if test="areas != null">
AND area IN
<foreach collection="areas" item="areas" open="(" separator="," close=")">
#{areas}
</foreach>
</if>
GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')
</select>
<select id="getMediuPayCoinyue" resultType="com.example.demo.domain.vo.SumCoin">
SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,
IFNULL(SUM(recharge_coin) / 100, 0) AS rechargeSumCoin,
IFNULL(SUM(free_coin) / 100, 0) AS freeSumCoin,
IFNULL(SUM(task_coin) / 100, 0) AS taskSumCoin
FROM detail_y
WHERE DATE(create_time) = #{searchEndTime}
AND update_type = 0
<if test="areas != null and areas.size > 0">
AND area IN
<foreach collection="areas" item="areas" open="(" separator="," close=")">
#{areas}
</foreach>
</if>
GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')
</select>
<select id="getMediuCounsumeCoinyue" resultType="com.example.demo.domain.vo.SumCoin">
SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,
SUM(recharge_coin) / 100 AS rechargeSumCoin,
SUM(free_coin) / 100 AS freeSumCoin,
SUM(task_coin) / 100 AS taskSumCoin
FROM detail_y
WHERE AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}
AND update_type = 1
<if test="areas != null and areas.size > 0">
AND area IN
<foreach collection="areas" item="area" open="(" separator="," close=")">
#{area}
</foreach>
</if>
GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')
</select>
</mapper>

2
src/main/resources/mapper/db1/UserMapper.xml → src/main/resources/mapper/UserMapper.xml

@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.db1.UserMapper">
<mapper namespace="com.example.demo.mapper.UserMapper">
<insert id="add" parameterType="com.example.demo.domain.entity.User">
INSERT INTO user (jwcode, name, area)
VALUES (#{jwcode}, #{name}, #{area})

41
src/main/resources/mapper/db1/StatisticsMapper.xml

@ -1,41 +0,0 @@
<?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.db1.StatisticsMapper">
<select id="getMeium" resultType="com.example.demo.domain.vo.Meium">
SELECT
u.area,
SUM(d.recharge_coin) / 100 AS rechargeSumCoin,
SUM(d.free_coin) / 100 AS freeSumCoin,
SUM(d.task_coin) / 100 AS taskSumCoin,
(SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) / 100 AS totalRechargeSum
FROM
detail_y d
LEFT JOIN
user u
ON
u.jwcode = d.jwcode
<where>
<!-- 动态判断 update_type 是否传入 -->
<if test="updateType != null">
AND update_type = #{updateType}
</if>
<!-- 动态判断时间范围 -->
<choose>
<when test="searchStartTime != null and searchEndTime != null">
AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})
</when>
</choose>
</where>
GROUP BY
u.area
<if test="sortField != null and sortField != ''">
ORDER BY ${sortField}
<if test="sortOrder != null and sortOrder != ''">
${sortOrder}
</if>
</if>
</select>
</mapper>
Loading…
Cancel
Save