From cb5e5687f5e995acb5419546e19ac817569fbb15 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Sun, 29 Jun 2025 14:53:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=85=E5=80=BC=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/RechargeController.java | 93 +++++++++++ src/main/java/com/example/demo/domain/vo/Page.java | 1 + .../com/example/demo/domain/vo/RechargeUser.java | 50 ++++++ .../com/example/demo/mapper/RechargeMapper.java | 27 ++++ .../com/example/demo/service/RechargeService.java | 26 +++ .../demo/serviceImpl/ConsumeServiceImpl.java | 1 + .../demo/serviceImpl/RechargeServiceImpl.java | 84 ++++++++++ src/main/resources/mapper/ConsumeMapper.xml | 6 +- src/main/resources/mapper/RechargeMapper.xml | 179 +++++++++++++++++++++ src/main/resources/mapper/RefundMapper.xml | 4 +- 10 files changed, 467 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/example/demo/controller/RechargeController.java create mode 100644 src/main/java/com/example/demo/domain/vo/RechargeUser.java create mode 100644 src/main/java/com/example/demo/mapper/RechargeMapper.java create mode 100644 src/main/java/com/example/demo/service/RechargeService.java create mode 100644 src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java create mode 100644 src/main/resources/mapper/RechargeMapper.xml diff --git a/src/main/java/com/example/demo/controller/RechargeController.java b/src/main/java/com/example/demo/controller/RechargeController.java new file mode 100644 index 0000000..7ecf564 --- /dev/null +++ b/src/main/java/com/example/demo/controller/RechargeController.java @@ -0,0 +1,93 @@ +package com.example.demo.controller; + +import com.example.demo.domain.vo.*; +import com.example.demo.service.ConsumeService; +import com.example.demo.service.RechargeService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.*; + +/** + * @program: gold-java + * @ClassName RechargeController + * @description: + * @author: Double + * @create: 2025−06-29 13:01 + * @Version 1.0 + **/ + +@RestController +@RequestMapping("/recharge") +@RequiredArgsConstructor +@Slf4j +@CrossOrigin +public class RechargeController { + + + @Autowired + private RechargeService rechargeService; + + //消耗明细 + @PostMapping("/selectAll") + public Result selcetAll(@RequestBody Page page) { + try { + if (ObjectUtils.isEmpty(page.getPageNum())) { + return Result.error("页码数为空!"); + } + if (ObjectUtils.isEmpty(page.getPageSize())) { + return Result.error("页大小为空!"); + } else { + return Result.success(rechargeService.selectAll(page.getPageNum(), page.getPageSize(),page.getRechargeUser())); + } + } catch (Exception e) { + return Result.error("接口调用失败"); + + } + + } + + + //消耗明细筛选 + @PostMapping("/selectBy") + public Result selcetBy(@RequestBody Page page) { + try { + if (ObjectUtils.isEmpty(page.getPageNum())) { + return Result.error("页码数为空!"); + } + if (ObjectUtils.isEmpty(page.getPageSize())) { + return Result.error("页大小为空!"); + } else { + return Result.success(rechargeService.selectBy(page.getPageNum(), page.getPageSize(), page.getRechargeUser())); + } + } catch (Exception e) { + return Result.error("接口调用失败"); + } + + } + + //消耗金币统计 + @PostMapping("/statsGold") + public Result statsGold(@RequestBody RechargeUser rechargeUser) { + try { + Gold gold = rechargeService.statsGold(rechargeUser); + return Result.success(gold); + } catch (Exception e) { + return Result.error("接口调用失败"); + } + } + + //消耗金币增加 + @PostMapping("/add") + public Result add(@RequestBody RechargeUser rechargeUser) { + try { + return rechargeService.add(rechargeUser); + } catch (Exception e) { + return Result.error("接口调用失败"); + } + } + + + +} diff --git a/src/main/java/com/example/demo/domain/vo/Page.java b/src/main/java/com/example/demo/domain/vo/Page.java index 978d398..16d172d 100644 --- a/src/main/java/com/example/demo/domain/vo/Page.java +++ b/src/main/java/com/example/demo/domain/vo/Page.java @@ -24,4 +24,5 @@ public class Page { private User user; private RefundUser refundUser; private Permission permission; + private RechargeUser rechargeUser; } diff --git a/src/main/java/com/example/demo/domain/vo/RechargeUser.java b/src/main/java/com/example/demo/domain/vo/RechargeUser.java new file mode 100644 index 0000000..55795d9 --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/RechargeUser.java @@ -0,0 +1,50 @@ +package com.example.demo.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @program: gold-java + * @ClassName Recharge + * @description: + * @author: Double + * @create: 2025−06-29 13:18 + * @Version 1.0 + **/ + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class RechargeUser { + + private static final long serialVersionUID = 1L; + + private String name; // 客户姓名 + private Integer jwcode; // 精网号 + private String market; // 所属地区 + private String activity; // 活动名称 + private Integer rateId; // 汇率ID + private String rateName; // 汇率名称 + private Integer money; // 金额[分] + private Integer permanentGold; // 永久金币 + private Integer freeGold; // 免费金币 + private String payModel; // 支付方式 + private String payPlatform; // 支付平台 + private String remark; // 备注 + private Integer adminId; //提交人Id + private String adminName; //提交人姓名 + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date createTime; // 创建时间 + @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") + private Date endTime; // 结束时间 + + private String sortField; //排序字段 + private String sortOrder; //排序顺序 +} diff --git a/src/main/java/com/example/demo/mapper/RechargeMapper.java b/src/main/java/com/example/demo/mapper/RechargeMapper.java new file mode 100644 index 0000000..e600ced --- /dev/null +++ b/src/main/java/com/example/demo/mapper/RechargeMapper.java @@ -0,0 +1,27 @@ +package com.example.demo.mapper; + + +import com.example.demo.domain.entity.UserGoldRecord; +import com.example.demo.domain.vo.RechargeUser; +import com.example.demo.domain.vo.RefundUser; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @program: gold-java + * @ClassName RechargeMapper + * @description: + * @author: Double + * @create: 2025−06-29 13:41 + * @Version 1.0 + **/ + +@Mapper +public interface RechargeMapper { + List selectAll(RechargeUser rechargeUser); + + List selectBy(RechargeUser rechargeUser); + + void add(UserGoldRecord userGoldRecord); +} diff --git a/src/main/java/com/example/demo/service/RechargeService.java b/src/main/java/com/example/demo/service/RechargeService.java new file mode 100644 index 0000000..409fa16 --- /dev/null +++ b/src/main/java/com/example/demo/service/RechargeService.java @@ -0,0 +1,26 @@ +package com.example.demo.service; + +import com.example.demo.domain.vo.ConsumeUser; +import com.example.demo.domain.vo.Gold; +import com.example.demo.domain.vo.RechargeUser; +import com.example.demo.domain.vo.Result; +import com.github.pagehelper.PageInfo; + +/** + * @program: gold-java + * @ClassName RechargeService + * @description: + * @author: Double + * @create: 2025−06-29 13:39 + * @Version 1.0 + **/ + +public interface RechargeService { + PageInfo selectAll(Integer pageNum, Integer pageSize, RechargeUser rechargeUser); + + Gold statsGold(RechargeUser rechargeUser); + + PageInfo selectBy(Integer pageNum, Integer pageSize, RechargeUser rechargeUser); + + Result add(RechargeUser rechargeUser); +} diff --git a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java index 7ca6043..7fb3df7 100644 --- a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java @@ -145,6 +145,7 @@ public class ConsumeServiceImpl implements ConsumeService { userGoldRecord.setIsRefund((byte) 0); userGoldRecord.setPayPlatform("金币系统"); userGoldRecord.setAdminId(consumeUser.getAdminId()); + userGoldRecord.setAuditStatus(1); userGoldRecord.setCreateTime(new Date()); userGoldRecord.setPayTime(new Date()); consumeMapper.add(userGoldRecord); diff --git a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java new file mode 100644 index 0000000..be51029 --- /dev/null +++ b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java @@ -0,0 +1,84 @@ +package com.example.demo.serviceImpl; + +import com.example.demo.domain.vo.ConsumeUser; +import com.example.demo.domain.vo.Gold; +import com.example.demo.domain.vo.RechargeUser; +import com.example.demo.domain.vo.Result; +import com.example.demo.mapper.ConsumeMapper; +import com.example.demo.mapper.RechargeMapper; +import com.example.demo.mapper.UserMapper; +import com.example.demo.service.RechargeService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @program: gold-java + * @ClassName RechrageServceImpl + * @description: + * @author: Double + * @create: 2025−06-29 13:40 + * @Version 1.0 + **/ + +@Service +public class RechargeServiceImpl implements RechargeService { + + @Autowired + private RechargeMapper rechargeMapper; + + @Autowired + private UserMapper userMapper; + + + @Override + public PageInfo selectAll(Integer pageNum, Integer pageSize, RechargeUser rechargeUser) { + PageHelper.startPage(pageNum, pageSize); + List rechargeUsers = rechargeMapper.selectAll(rechargeUser); + return new PageInfo<>(rechargeUsers); + } + + @Override + public PageInfo selectBy(Integer pageNum, Integer pageSize, RechargeUser rechargeUser) { + PageHelper.startPage(pageNum, pageSize); + List rechargeUsers = rechargeMapper.selectBy(rechargeUser); + return new PageInfo<>(rechargeUsers); + } + + @Override + public Gold statsGold(RechargeUser rechargeUser) { + Gold gold = new Gold(); + List rechargeUsers = rechargeMapper.selectBy(rechargeUser); + + // 初始化累加器 + int permanentGoldSum = 0; + int freeGoldSum = 0; + + // 遍历充值记录并累加金币 + for (RechargeUser user : rechargeUsers) { + // 累加永久金币 + if (user.getPermanentGold() != null) { + permanentGoldSum += user.getPermanentGold(); + } + // 累加免费金币 + if (user.getFreeGold() != null) { + freeGoldSum += user.getFreeGold(); + } + } + + // 将累加结果设置到Gold对象 + gold.setPermanentGolds(permanentGoldSum); + gold.setFreeGolds(freeGoldSum); + + return gold; + } + + + @Override + public Result add(RechargeUser rechargeUser) { + return null; + } +} diff --git a/src/main/resources/mapper/ConsumeMapper.xml b/src/main/resources/mapper/ConsumeMapper.xml index b365123..0098af5 100644 --- a/src/main/resources/mapper/ConsumeMapper.xml +++ b/src/main/resources/mapper/ConsumeMapper.xml @@ -28,7 +28,7 @@ - ugr.sum_gold + ugr.task_gold ugr.permanent_gold (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) @@ -101,7 +101,7 @@ - ugr.sum_gold + ugr.task_gold ugr.permanent_gold (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) @@ -147,6 +147,7 @@ pay_platform, is_refund, admin_id, + audit_status, create_time, pay_time @@ -165,6 +166,7 @@ #{payPlatform}, #{isRefund}, #{adminId}, + #{auditStatus}, #{createTime}, #{payTime} diff --git a/src/main/resources/mapper/RechargeMapper.xml b/src/main/resources/mapper/RechargeMapper.xml new file mode 100644 index 0000000..2af7769 --- /dev/null +++ b/src/main/resources/mapper/RechargeMapper.xml @@ -0,0 +1,179 @@ + + + + + + + + + + + + INSERT INTO user_gold_record + + order_code, + jwcode, + sum_gold, + permanent_gold, + free_june, + free_december, + task_gold, + goods_name, + remark, + type, + pay_platform, + is_refund, + admin_id, + audit_status, + create_time, + pay_time + + VALUES + + #{orderCode}, + #{jwcode}, + #{sumGold}, + #{permanentGold}, + #{freeJune}, + #{freeDecember}, + #{taskGold}, + #{goodsName}, + #{remark}, + #{type}, + #{payPlatform}, + #{isRefund}, + #{adminId}, + #{auditStatus}, + #{createTime}, + #{payTime} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/RefundMapper.xml b/src/main/resources/mapper/RefundMapper.xml index 48f1fd9..2e70fec 100644 --- a/src/main/resources/mapper/RefundMapper.xml +++ b/src/main/resources/mapper/RefundMapper.xml @@ -29,7 +29,7 @@ - ugr.sum_gold + ugr.task_gold ugr.permanent_gold (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) @@ -103,7 +103,7 @@ - ugr.sum_gold + ugr.task_gold ugr.permanent_gold (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))