Browse Source

7月31日系统充值与与金币统计

huangqizheng/feature-20250801114957-导出
sunjiabei 2 weeks ago
parent
commit
0e5dfe0fc2
  1. 15
      src/main/java/com/example/demo/controller/bean/BeanRechargeController.java
  2. 1
      src/main/java/com/example/demo/domain/vo/bean/BeanRecharge.java
  3. 2
      src/main/java/com/example/demo/domain/vo/bean/BeanRechargeInfo.java
  4. 24
      src/main/java/com/example/demo/domain/vo/bean/GoldBean.java
  5. 2
      src/main/java/com/example/demo/service/bean/BeanRechargeService.java
  6. 37
      src/main/java/com/example/demo/serviceImpl/bean/BeanRechargeServiceImpl.java
  7. 19
      src/main/resources/jindouMapper/BeanRechargeMapper2.xml

15
src/main/java/com/example/demo/controller/bean/BeanRechargeController.java

@ -4,6 +4,10 @@ import com.example.demo.Util.JWTUtil;
import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.vo.bean.BeanRecharge;
import com.example.demo.domain.vo.bean.BeanPage;
import com.example.demo.domain.vo.bean.BeanRechargeInfo;
import com.example.demo.domain.vo.bean.GoldBean;
import com.example.demo.domain.vo.coin.Gold;
import com.example.demo.domain.vo.coin.RechargeUser;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.bean.BeanRechargeService;
import jakarta.servlet.http.HttpServletRequest;
@ -65,4 +69,15 @@ public class BeanRechargeController {
}
}
//系统金豆统计
@PostMapping("/statsSystemBean")
public Result statsSystemBean(@RequestBody BeanRechargeInfo beanRechargeInfo) {
try {
GoldBean goldBean = beanRechargeService.statsSystemBean(beanRechargeInfo);
return Result.success(goldBean);
} catch (Exception e) {
return Result.error("请检查数据的格式");
}
}
}

1
src/main/java/com/example/demo/domain/vo/bean/BeanRecharge.java

@ -22,5 +22,6 @@ public class BeanRecharge {
private Integer freeBean; // 免费豆
private Integer permanentBean; // 永久豆
private String remark; //备注
private Integer money; // 金额
private String adminName; // 管理员名称
}

2
src/main/java/com/example/demo/domain/vo/bean/BeanRechargeInfo.java

@ -28,6 +28,7 @@ public class BeanRechargeInfo {
private String market; // 所属地区
private Integer freeBean; // 免费豆
private Integer permanentBean; // 永久豆
private Integer money; // 金额
private Integer num; // 数量
private Double amount; // 金额
private String orderNo; // 订单号
@ -35,6 +36,7 @@ public class BeanRechargeInfo {
private String platform; // 充值平台
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date rechargeTime; // 充值时间
private Integer time;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date startTime; // 开始时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")

24
src/main/java/com/example/demo/domain/vo/bean/GoldBean.java

@ -0,0 +1,24 @@
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: 202507-31 13:10
* @Version 1.0
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class GoldBean {
private Integer freeBean; // 免费豆
private Integer permanentBean; // 永久豆
private Integer money; // 金额
private Integer beanNum; // 豆数量
}

2
src/main/java/com/example/demo/service/bean/BeanRechargeService.java

@ -2,6 +2,7 @@ package com.example.demo.service.bean;
import com.example.demo.domain.vo.bean.BeanRechargeInfo;
import com.example.demo.domain.vo.bean.GoldBean;
import com.example.demo.domain.vo.coin.RefundUser;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.domain.vo.bean.BeanRecharge;
@ -22,4 +23,5 @@ public interface BeanRechargeService {
PageInfo<BeanRechargeInfo> selectBySystem(Integer pageNum, Integer pageSize, BeanRechargeInfo beanRechargeInfo);
GoldBean statsSystemBean(BeanRechargeInfo beanRechargeInfo);
}

37
src/main/java/com/example/demo/serviceImpl/bean/BeanRechargeServiceImpl.java

@ -2,6 +2,9 @@ package com.example.demo.serviceImpl.bean;
import com.example.demo.domain.vo.bean.BeanRecharge;
import com.example.demo.domain.vo.bean.BeanRechargeInfo;
import com.example.demo.domain.vo.bean.GoldBean;
import com.example.demo.domain.vo.coin.Gold;
import com.example.demo.domain.vo.coin.RechargeUser;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.mapper.bean.BeanRechargeMapper2;
import com.example.demo.mapper.coin.BeanRechargeMapper1;
@ -90,6 +93,40 @@ public class BeanRechargeServiceImpl implements BeanRechargeService {
}
}
//统计系统金豆记录
@Override
public GoldBean statsSystemBean(BeanRechargeInfo beanRechargeInfo) {
GoldBean gold = new GoldBean();
List<BeanRechargeInfo> beanRechargeInfos = beanRechargeMapper2.selectBySystem(beanRechargeInfo);
// 初始化累加器
int permanentGoldSum = 0;
int freeGoldSum = 0;
int moneySum = 0;
// 遍历充值记录并累加金币
for (BeanRechargeInfo info : beanRechargeInfos) {
// 累加永久金币
if (info.getPermanentBean() != null) {
permanentGoldSum += info.getPermanentBean();
}
// 累加免费金币
if (info.getFreeBean() != null) {
freeGoldSum += info.getFreeBean();
}
// 累加金额
if (info.getMoney() != null) {
moneySum += info.getMoney();
}
}
// 将累加结果设置到Gold对象
gold.setPermanentBean(permanentGoldSum);
gold.setFreeBean(freeGoldSum);
gold.setMoney(moneySum);
gold.setBeanNum(permanentGoldSum+freeGoldSum);
return gold;
}
//系统充值明细
@Override

19
src/main/resources/jindouMapper/BeanRechargeMapper2.xml

@ -8,20 +8,21 @@
m.dept AS market,
f.money_free AS freeBean,
f.money_buy AS permanentBean,
f.money AS money,
f.content AS remark,
FROM_UNIXTIME(f.time) AS rechargeTime
FROM fx_yaoqing_records f
LEFT JOIN fx_member m ON f.uid = m.id
<where>
f.data = 0
<!-- 判断 market 是否不为总部且 markets 不为空 -->
<if test="markets != null and markets.size() > 0 and '总部' not in markets">
AND (
<foreach collection="markets" item="market" open="" close="" separator=" OR ">
m.dept LIKE CONCAT('%', #{market}, '%')
</foreach>
)
<if test="jwcode != null and jwcode != ''">
AND m.jwcode = #{jwcode}
</if>
<if test="market != null and market != ''">
AND m.dept = #{market}
</if>
<if test="startTime != null and endTime != null">
AND FROM_UNIXTIME(f.time) BETWEEN #{startTime} AND #{endTime}
</if>
</where>
<trim prefix="ORDER BY" suffixOverrides=",">
@ -37,7 +38,6 @@
<!-- 其他字段不支持排序,使用默认排序 -->
<otherwise>f.time</otherwise>
</choose>
<!-- 排序方向处理 -->
<if test="sortOrder != null and sortOrder != ''">
<choose>
@ -50,7 +50,6 @@
DESC
</if>
</when>
<!-- 未指定排序字段时,使用默认的时间降序排序 -->
<otherwise>
f.time DESC

Loading…
Cancel
Save