diff --git a/gold-system/.idea/compiler.xml b/gold-system/.idea/compiler.xml
index 976e089..3c8f363 100644
--- a/gold-system/.idea/compiler.xml
+++ b/gold-system/.idea/compiler.xml
@@ -10,6 +10,7 @@
+
@@ -18,6 +19,7 @@
+
diff --git a/gold-system/.idea/encodings.xml b/gold-system/.idea/encodings.xml
index 03d81b4..2fd660e 100644
--- a/gold-system/.idea/encodings.xml
+++ b/gold-system/.idea/encodings.xml
@@ -7,6 +7,8 @@
+
+
\ No newline at end of file
diff --git a/gold-system/.idea/misc.xml b/gold-system/.idea/misc.xml
index 4fb081c..2c8172e 100644
--- a/gold-system/.idea/misc.xml
+++ b/gold-system/.idea/misc.xml
@@ -6,6 +6,7 @@
+
diff --git a/gold-system/demo/commons/src/main/java/com/example/commons/domain/entity/Statistics.java b/gold-system/demo/commons/src/main/java/com/example/commons/domain/entity/Statistics.java
new file mode 100644
index 0000000..fd72878
--- /dev/null
+++ b/gold-system/demo/commons/src/main/java/com/example/commons/domain/entity/Statistics.java
@@ -0,0 +1,22 @@
+package com.example.commons.domain.entity;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@NoArgsConstructor
+public class Statistics {
+ private BigDecimal rechargeSumCoin;
+ private BigDecimal freeSumCoin;
+ private BigDecimal taskSumCoin;
+ private BigDecimal totalSumCoin;
+ private BigDecimal rechargeYesterdaySumCoin;
+ private BigDecimal freeYesterdaySumCoin;
+ private BigDecimal taskYesterdaySumCoin;
+ private BigDecimal totalYesterdaySumCoin;
+ private Integer rechargeCount;
+ private Integer rechargeCountThisWeek ;
+ private Integer rechargeCountLastWeek ;
+}
diff --git a/gold-system/demo/commons/src/main/java/com/example/commons/sevice/RefundService.java b/gold-system/demo/commons/src/main/java/com/example/commons/sevice/RefundService.java
index 2e19829..e721a65 100644
--- a/gold-system/demo/commons/src/main/java/com/example/commons/sevice/RefundService.java
+++ b/gold-system/demo/commons/src/main/java/com/example/commons/sevice/RefundService.java
@@ -10,6 +10,7 @@ import java.util.List;
@Service
public interface RefundService {
int add(Detail detail) ;
+ int addAudit(Detail detail);
void edit(Detail newDetail) ;
int softDelete(Integer detailId) ;
Detail selectByDetailId(Integer detailId);
diff --git a/gold-system/demo/commons/src/main/java/com/example/commons/sevice/StatisticsService.java b/gold-system/demo/commons/src/main/java/com/example/commons/sevice/StatisticsService.java
new file mode 100644
index 0000000..3ffd959
--- /dev/null
+++ b/gold-system/demo/commons/src/main/java/com/example/commons/sevice/StatisticsService.java
@@ -0,0 +1,11 @@
+package com.example.commons.sevice;
+
+import com.example.commons.domain.entity.Statistics;
+import org.springframework.stereotype.Service;
+
+@Service
+public interface StatisticsService {
+ int totalYearCoin();
+ int yesterdayNewCoin();
+ int yearRechargeCount();
+}
diff --git a/gold-system/demo/pom.xml b/gold-system/demo/pom.xml
index 699c8cb..a87b58e 100644
--- a/gold-system/demo/pom.xml
+++ b/gold-system/demo/pom.xml
@@ -21,6 +21,8 @@
recharge
commons
user
+ refund
+ statistics
diff --git a/gold-system/demo/refund/src/main/java/org/example/refund/controller/RefundController.java b/gold-system/demo/refund/src/main/java/org/example/refund/controller/RefundController.java
index b6fc807..874edc3 100644
--- a/gold-system/demo/refund/src/main/java/org/example/refund/controller/RefundController.java
+++ b/gold-system/demo/refund/src/main/java/org/example/refund/controller/RefundController.java
@@ -24,6 +24,7 @@ public class RefundController {
public Result add(@RequestBody Detail detail) {
// try {
refundService.add(detail);
+ refundService.addAudit(detail);
return Result.success();
// } catch (Exception e) {
// log.warn(Arrays.toString(e.getStackTrace()));
diff --git a/gold-system/demo/refund/src/main/java/org/example/refund/mapper/RefundMapper.java b/gold-system/demo/refund/src/main/java/org/example/refund/mapper/RefundMapper.java
index 360c3aa..15c87c4 100644
--- a/gold-system/demo/refund/src/main/java/org/example/refund/mapper/RefundMapper.java
+++ b/gold-system/demo/refund/src/main/java/org/example/refund/mapper/RefundMapper.java
@@ -10,13 +10,21 @@ public interface RefundMapper {
@Insert({
"insert into detail",
- "(jwcode,refund_type,refund_goods,recharge_coin,free_coin,task_coin,remark,admin_id,create_time)",
+ "(jwcode,refund_type,refund_goods,recharge_coin,free_coin,task_coin,remark,admin_id,create_time,update_type)",
"values",
- "(#{jwcode},#{refundType},#{refundGoods},#{rechargeCoin},#{freeCoin},#{taskCoin},#{remark},#{adminId},now())"
+ "(#{jwcode},#{refundType},#{refundGoods},#{rechargeCoin},#{freeCoin},#{taskCoin},#{remark},#{adminId},now(),#{updateType})"
})
@Options(useGeneratedKeys = true, keyColumn = "detail_id", keyProperty = "detailId")
int insert(Detail detail);
+ @Select({
+ "insert into audit",
+ "(jwcode,refund_id,admin_id,create_time,detail_id)",
+ "values",
+ "(,#{jwcode},#{refundId},#{adminId},now(),#{detailId})"
+ })
+ int insertAudit(Detail detail);
+
@Update("update detail set detail_flag = 0 where detail_id = #{detailId}")
int update(@Param("detailId") Integer detailId);
@@ -34,16 +42,16 @@ public interface RefundMapper {
"LEFT JOIN admin a ON d.admin_id = a.admin_id",
"LEFT JOIN user u ON d.jwcode = u.jwcode",
"LEFT JOIN audit au ON d.detail_id = au.refund_id",
- "WHERE d.detail_flag = 1",
+ "WHERE d.detail_flag = 1 and update_type ='退款'",
"AND d.jwcode = #{jwcode}",
"AND d.refund_type LIKE CONCAT('%', #{refundType}, '%')",
- "AND d.refund_goods = #{refundGoods}",
+ "AND d.refund_goods LIKE CONCAT('%', #{refundGoods}, '%')",
"AND d.recharge_coin = #{rechargeCoin}",
"AND d.free_coin = #{freeCoin}",
"AND d.task_coin = #{taskCoin}",
"AND d.remark LIKE CONCAT('%', #{remark}, '%')",
"AND d.admin_id = #{adminId}",
- "AND a.area = #{adminArea}", // admin表字段过滤
+ "AND a.area LIKE CONCAT('%', #{adminArea}, '%')", // admin表字段过滤
"AND a.name LIKE CONCAT('%', #{adminName}, '%')", // admin表字段过滤
"AND u.name LIKE CONCAT('%', #{userName}, '%')", // user表字段过滤
"AND au.status = #{auditStatus}", // audit 表字段过滤
diff --git a/gold-system/demo/refund/src/main/java/org/example/refund/service/RefundServiceImpl.java b/gold-system/demo/refund/src/main/java/org/example/refund/service/RefundServiceImpl.java
index 3af8de9..a3d55de 100644
--- a/gold-system/demo/refund/src/main/java/org/example/refund/service/RefundServiceImpl.java
+++ b/gold-system/demo/refund/src/main/java/org/example/refund/service/RefundServiceImpl.java
@@ -22,6 +22,10 @@ public class RefundServiceImpl implements RefundService {
return refundMapper.insert(detail);
}
+ @Override
+ public int addAudit(Detail detail) {
+ return refundMapper.insertAudit(detail);
+ }
//自动软删除数据加更新数据
@Override
diff --git a/gold-system/demo/statistics/.gitignore b/gold-system/demo/statistics/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/gold-system/demo/statistics/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/gold-system/demo/statistics/pom.xml b/gold-system/demo/statistics/pom.xml
new file mode 100644
index 0000000..0b6c7f0
--- /dev/null
+++ b/gold-system/demo/statistics/pom.xml
@@ -0,0 +1,73 @@
+
+
+ 4.0.0
+
+ com.example
+ statistics
+ 0.0.1
+ statistics
+ statistics
+
+
+ com.example
+ demo
+ 0.0.1
+
+
+
+
+ com.example
+ commons
+ 0.0.1
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 3.0.3
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+ true
+
+
+ com.mysql
+ mysql-connector-j
+ runtime
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter-test
+ 3.0.3
+ test
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+
+
+
diff --git a/gold-system/demo/statistics/src/main/java/org/example/statistics/StatisticsApplication.java b/gold-system/demo/statistics/src/main/java/org/example/statistics/StatisticsApplication.java
new file mode 100644
index 0000000..feadbbc
--- /dev/null
+++ b/gold-system/demo/statistics/src/main/java/org/example/statistics/StatisticsApplication.java
@@ -0,0 +1,13 @@
+package org.example.statistics;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class StatisticsApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(StatisticsApplication.class, args);
+ }
+
+}
diff --git a/gold-system/demo/statistics/src/main/java/org/example/statistics/controller/StatisticsController.java b/gold-system/demo/statistics/src/main/java/org/example/statistics/controller/StatisticsController.java
new file mode 100644
index 0000000..831b1c5
--- /dev/null
+++ b/gold-system/demo/statistics/src/main/java/org/example/statistics/controller/StatisticsController.java
@@ -0,0 +1,24 @@
+package org.example.statistics.controller;
+
+import com.example.commons.domain.vo.Result;
+import com.example.commons.sevice.StatisticsService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/statistics")
+@RequiredArgsConstructor
+@Slf4j
+@CrossOrigin
+public class StatisticsController {
+ private final StatisticsService statisticsService;
+
+ @PostMapping
+ public Result count(){
+ return Result.success(statisticsService.totalYearCoin());
+ }
+}
diff --git a/gold-system/demo/statistics/src/main/java/org/example/statistics/mapper/StatisticsMapper.java b/gold-system/demo/statistics/src/main/java/org/example/statistics/mapper/StatisticsMapper.java
new file mode 100644
index 0000000..5d54fff
--- /dev/null
+++ b/gold-system/demo/statistics/src/main/java/org/example/statistics/mapper/StatisticsMapper.java
@@ -0,0 +1,38 @@
+package org.example.statistics.mapper;
+
+import com.example.commons.domain.entity.Statistics;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+@Mapper
+public interface StatisticsMapper {
+ //全年累计金币数
+ @Select("SELECT SUM(recharge_coin) AS rechargeSumCoin, " +
+ " SUM(free_coin) AS freeSumCoin, " +
+ " SUM(task_coin) AS taskSumCoin, " +
+ " (SUM(recharge_coin) + SUM(free_coin) + SUM(task_coin)) AS totalSumCoin " +
+ "FROM `detail` " +
+ "WHERE update_type = '充值' " +
+ " AND create_time >= '2024-01-01' " +
+ " AND create_time < NOW()")
+ int totalYearCoin();
+
+ //昨日新增
+ @Select("SELECT SUM(recharge_coin) AS rechargeYesterdaySumCoin, " +
+ " SUM(free_coin) AS freeYesterdaySumCoin, " +
+ " SUM(task_coin) AS taskYesterdaySumCoin, " +
+ " (SUM(recharge_coin) + SUM(free_coin) + SUM(task_coin)) AS totalYesterdaySumCoin " +
+ "FROM `detail` " +
+ "WHERE update_type = '充值' " +
+ " AND create_time >= CURDATE() - INTERVAL 1 DAY " +
+ " AND create_time < CURDATE()")
+ int yesterdayNewCoin();
+
+ //全年累计充值人数
+ @Select("SELECT COUNT(DISTINCT jwcode) AS rechargeCount " +
+ "FROM `detail` " +
+ "WHERE update_type = '充值' " +
+ " AND create_time >= '2024-01-01' " +
+ " AND create_time < NOW()")
+ int yearRechargeCount();
+}
diff --git a/gold-system/demo/statistics/src/main/java/org/example/statistics/service/StatisticsServiceImpl.java b/gold-system/demo/statistics/src/main/java/org/example/statistics/service/StatisticsServiceImpl.java
new file mode 100644
index 0000000..7c1edff
--- /dev/null
+++ b/gold-system/demo/statistics/src/main/java/org/example/statistics/service/StatisticsServiceImpl.java
@@ -0,0 +1,29 @@
+package org.example.statistics.service;
+
+import com.example.commons.domain.entity.Statistics;
+import com.example.commons.sevice.StatisticsService;
+import lombok.RequiredArgsConstructor;
+import org.example.statistics.mapper.StatisticsMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@RequiredArgsConstructor
+@Transactional
+@Service
+public class StatisticsServiceImpl implements StatisticsService {
+ private final StatisticsMapper statisticsMapper;
+ @Override
+ public int totalYearCoin() {
+ return statisticsMapper.totalYearCoin();
+ }
+
+ @Override
+ public int yesterdayNewCoin() {
+ return statisticsMapper.yesterdayNewCoin();
+ }
+
+ @Override
+ public int yearRechargeCount() {
+ return statisticsMapper.yearRechargeCount();
+ }
+}
diff --git a/gold-system/demo/statistics/src/main/resources/application.yml b/gold-system/demo/statistics/src/main/resources/application.yml
new file mode 100644
index 0000000..59ffdc5
--- /dev/null
+++ b/gold-system/demo/statistics/src/main/resources/application.yml
@@ -0,0 +1,15 @@
+server:
+ port: 10070
+
+spring:
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://39.101.133.168/hwgold?&serverTimezone=Asia/Shanghai
+ username: hwgold
+ password: 'AGX4Z3YMxiCG3GR2'
+ application:
+ name: statistics
+mybatis:
+ configuration:
+ map-underscore-to-camel-case: true
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
diff --git a/gold-system/demo/statistics/src/main/resources/static/index.html b/gold-system/demo/statistics/src/main/resources/static/index.html
new file mode 100644
index 0000000..89bb8ba
--- /dev/null
+++ b/gold-system/demo/statistics/src/main/resources/static/index.html
@@ -0,0 +1,6 @@
+
+
+hello word!!!
+this is a html page
+
+
\ No newline at end of file
diff --git a/gold-system/demo/statistics/src/test/java/org/example/statistics/StatisticsApplicationTests.java b/gold-system/demo/statistics/src/test/java/org/example/statistics/StatisticsApplicationTests.java
new file mode 100644
index 0000000..0a3db00
--- /dev/null
+++ b/gold-system/demo/statistics/src/test/java/org/example/statistics/StatisticsApplicationTests.java
@@ -0,0 +1,13 @@
+package org.example.statistics;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class StatisticsApplicationTests {
+
+ @Test
+ void contextLoads() {
+ }
+
+}