Browse Source
Merge remote-tracking branch 'refs/remotes/origin/lijianlin/feature-20250623120104-工作台与审核' into milestone-20250702-金币重构一期
huangqizheng/feature-20250628114355-权限接口完毕
Merge remote-tracking branch 'refs/remotes/origin/lijianlin/feature-20250623120104-工作台与审核' into milestone-20250702-金币重构一期
huangqizheng/feature-20250628114355-权限接口完毕
20 changed files with 672 additions and 122 deletions
-
2src/main/java/com/example/demo/DemoApplication.java
-
45src/main/java/com/example/demo/Util/RedisUtil.java
-
2src/main/java/com/example/demo/config/RedisConfig.java
-
13src/main/java/com/example/demo/controller/StatisticsController.java
-
49src/main/java/com/example/demo/controller/WorkbenchController.java
-
8src/main/java/com/example/demo/domain/entity/Statistics.java
-
17src/main/java/com/example/demo/domain/vo/TestRequest.java
-
45src/main/java/com/example/demo/domain/vo/WorkbenchCard.java
-
65src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java
-
15src/main/java/com/example/demo/mapper/StatisticsMapper.java
-
23src/main/java/com/example/demo/mapper/WorkBenchMapper.java
-
1src/main/java/com/example/demo/service/GeneralService.java
-
16src/main/java/com/example/demo/service/StatisticsService.java
-
19src/main/java/com/example/demo/service/WorkbenchService.java
-
3src/main/java/com/example/demo/serviceImpl/GeneralServiceImpl.java
-
103src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
-
212src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java
-
2src/main/resources/application.yml
-
68src/main/resources/mapper/StatisticsMapper.xml
-
86src/main/resources/mapper/WorkBenchMapper.xml
@ -0,0 +1,17 @@ |
|||
package com.example.demo.domain.vo; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.Date; |
|||
@Data |
|||
@NoArgsConstructor |
|||
public class TestRequest { |
|||
private String market; |
|||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date date; |
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,65 @@ |
|||
package com.example.demo.domain.vo; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @program: gold-java |
|||
* @ClassName WorkbenchMarketCard |
|||
* @description: |
|||
* @author: Ethan |
|||
* @create: 2025−06-25 16:20 |
|||
* @Version 1.0 |
|||
**/ |
|||
|
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class WorkbenchMarketCard implements Serializable { |
|||
|
|||
private String market;//地区 |
|||
// 卡片一:当前金币相关 |
|||
private Integer currentGold; // 当前金币余量 |
|||
private Integer dailyChange; // 余量较前一天的变化 |
|||
private Integer currentPermanent; // 永久金币余量 |
|||
private Integer currentFreeJune; // 六月到期免费金币余量 |
|||
private Integer currentFreeDecember; // 十二月到期免费金币余量 |
|||
private Integer currentTask; // 任务金币余量 |
|||
private Integer currentFree; // 免费金币余量(currentFreeJune + currentFreeDecember) |
|||
|
|||
// 卡片二:充值相关 |
|||
private Integer recharge; // 当日充值金币数 |
|||
private Integer money; // 当日金额(永久金币) |
|||
private Integer yearlyRecharge; // 全年累计充值金币数 |
|||
private Integer yearlyMoney; // 全年累计金额 |
|||
|
|||
// 卡片三:当日消费/退款/消耗相关 |
|||
private Integer consumePermanent; // 当日新增消费(永久) |
|||
private Integer consumeFreeJune; // 当日新增消费(六月免费) |
|||
private Integer consumeFreeDecember; // 当日新增消费(十二月免费) |
|||
private Integer consumeTask; // 当日新增消费(任务) |
|||
private Integer refundPermanent; // 当日新增退款(永久) |
|||
private Integer refundFreeJune; // 当日新增退款(六月免费) |
|||
private Integer refundFreeDecember; // 当日新增退款(十二月免费) |
|||
private Integer refundTask; // 当日新增退款(任务) |
|||
private Integer dailyConsume; // 当日总消耗 = consumePermanent + consumeFreeJune + consumeFreeDecember + consumeTask - (refundPermanent + refundFreeJune + refundFreeDecember + refundTask) |
|||
private Integer yearlyConsume; // 全年累计消费 |
|||
private Integer yearlyRefund; // 全年累计退款金币数 |
|||
private Integer yearlyReduce; // 全年累计消耗金币数 = yearlyConsume - yearlyRefund |
|||
|
|||
// 卡片四:人头数相关 |
|||
private Integer rechargeNum; // 当日充值人数 |
|||
private Integer firstRecharge; // 当日首充人数 |
|||
private Integer wow; // 周同比(%) |
|||
private Integer daily; // 日环比(%) |
|||
private Integer yearlyRechargeNum; // 全年累计充值人头数 |
|||
//图表 |
|||
private Integer SumRechargePermanent; //合计充值永久金币 |
|||
private Integer SumRechargeFree; //合计充值免费金币 |
|||
private Integer SumConsumePermanent; //合计消费永久金币 |
|||
private Integer SumConsumeFree; //合计消费免费金币 |
|||
private Integer SumConsumeTask; //合计消费任务金币 |
|||
} |
@ -1,5 +1,91 @@ |
|||
<?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.WorkBenchMapper"> |
|||
<!--起止时间内的该地区充值金币数(永久+免费)若为空则默认0--> |
|||
<select id="sumRecharge" resultType="java.lang.Integer"> |
|||
select sum( |
|||
|
|||
COALESCE(recharge, 0) |
|||
) |
|||
from statistics |
|||
where market = #{market} |
|||
and current_datetime |
|||
between #{startDate} and #{endDate} |
|||
</select> |
|||
<!--起止时间内的该地区充值金额(永久金币数)--> |
|||
<select id="sumMoney" resultType="java.lang.Integer"> |
|||
SELECT SUM(money) |
|||
FROM statistics |
|||
WHERE market = #{market} |
|||
AND current_datetime BETWEEN #{startDate} and #{endDate} |
|||
</select> |
|||
<!-- 起止时间内该地区消费金币数(永久+免费+任务)--> |
|||
<select id="sumConsume" resultType="java.lang.Integer"> |
|||
SELECT SUM( |
|||
COALESCE(consume_permanent, 0) + |
|||
COALESCE(consume_free_june, 0) + |
|||
COALESCE(consume_free_december, 0) + |
|||
COALESCE(consume_task, 0) |
|||
) |
|||
FROM statistics |
|||
WHERE market = #{market} |
|||
AND current_datetime BETWEEN |
|||
#{startDate} and #{endDate} |
|||
</select> |
|||
<!--起止时间内的该地区退款金币数(永久+免费+任务)--> |
|||
<select id="sumRefund" resultType="java.lang.Integer"> |
|||
SELECT SUM( |
|||
COALESCE(refund_permanent, 0) + |
|||
COALESCE(refund_free_june, 0) + |
|||
COALESCE(refund_free_december, 0) + |
|||
COALESCE(refund_task, 0) |
|||
) |
|||
FROM statistics |
|||
WHERE market = #{market} |
|||
AND current_datetime BETWEEN |
|||
#{startDate} and #{endDate} |
|||
</select> |
|||
<!--起止时间内该地区充值人头数(根据精网号去重,老数据有多人共用一个精网号的问题)--> |
|||
<select id="countRechargeNum" resultType="java.lang.Integer"> |
|||
SELECT COUNT(DISTINCT ugr.jwcode) |
|||
FROM user_gold_record ugr |
|||
INNER JOIN user u ON ugr.jwcode = u.jwcode |
|||
WHERE u.market = #{market} |
|||
AND ugr.pay_time BETWEEN |
|||
#{startDate} and #{endDate} |
|||
AND ugr.audit_status IN (1,3) |
|||
|
|||
</select> |
|||
<!--给定时间范围内的该地区消费永久金币数--> |
|||
<select id="sumCPermanent" resultType="java.lang.Integer"> |
|||
SELECT SUM( |
|||
COALESCE(consume_permanent, 0) |
|||
) |
|||
FROM statistics |
|||
WHERE market = #{market} |
|||
AND current_datetime BETWEEN |
|||
#{startDate} and #{endDate} |
|||
</select> |
|||
<!--给定时间范围内的该地区消费免费金币数--> |
|||
<select id="sumCFree" resultType="java.lang.Integer"> |
|||
SELECT SUM( |
|||
COALESCE(refund_free_june, 0) + |
|||
COALESCE(refund_free_december, 0) |
|||
) |
|||
FROM statistics |
|||
WHERE market = #{market} |
|||
AND current_datetime BETWEEN |
|||
#{startDate} and #{endDate} |
|||
</select> |
|||
<!--给定时间范围内的该地区消费任务金币数--> |
|||
<select id="sumCTask" resultType="java.lang.Integer"> |
|||
SELECT SUM( |
|||
COALESCE(refund_task, 0) |
|||
) |
|||
FROM statistics |
|||
WHERE market = #{market} |
|||
AND current_datetime BETWEEN |
|||
#{startDate} and #{endDate} |
|||
</select> |
|||
|
|||
</mapper> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue