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() { + } + +}