diff --git a/src/main/java/com/example/demo/controller/ConsumeController.java b/src/main/java/com/example/demo/controller/ConsumeController.java index 761d291..ba399bb 100644 --- a/src/main/java/com/example/demo/controller/ConsumeController.java +++ b/src/main/java/com/example/demo/controller/ConsumeController.java @@ -34,13 +34,18 @@ public class ConsumeController { //消耗明细 @PostMapping("/selectAll") public Result selcetAll(@RequestBody Page page) { - if (ObjectUtils.isEmpty(page.getPageNum())) { - return Result.error("页码数为空!"); - } - if (ObjectUtils.isEmpty(page.getPageSize())) { - return Result.error("页大小为空!"); - } else { - return Result.success(consumeService.selectAll(page.getPageNum(), page.getPageSize())); + try { + if (ObjectUtils.isEmpty(page.getPageNum())) { + return Result.error("页码数为空!"); + } + if (ObjectUtils.isEmpty(page.getPageSize())) { + return Result.error("页大小为空!"); + } else { + return Result.success(consumeService.selectAll(page.getPageNum(), page.getPageSize())); + } + } catch (Exception e) { + return Result.error("接口调用失败"); + } } @@ -48,13 +53,17 @@ public class ConsumeController { //消耗明细筛选 @PostMapping("/selectBy") public Result selcetBy(@RequestBody Page page) { - if (ObjectUtils.isEmpty(page.getPageNum())) { - return Result.error("页码数为空!"); - } - if (ObjectUtils.isEmpty(page.getPageSize())) { - return Result.error("页大小为空!"); - } else { - return Result.success(consumeService.selectBy(page.getPageNum(), page.getPageSize(), page.getConsumeUser())); + try { + if (ObjectUtils.isEmpty(page.getPageNum())) { + return Result.error("页码数为空!"); + } + if (ObjectUtils.isEmpty(page.getPageSize())) { + return Result.error("页大小为空!"); + } else { + return Result.success(consumeService.selectBy(page.getPageNum(), page.getPageSize(), page.getConsumeUser())); + } + } catch (Exception e) { + return Result.error("接口调用失败"); } } @@ -62,14 +71,22 @@ public class ConsumeController { //消耗金币统计 @PostMapping("/statsGold") public Result statsGold() { - Gold gold = consumeService.statsGold(); - return Result.success(gold); + try { + Gold gold = consumeService.statsGold(); + return Result.success(gold); + } catch (Exception e) { + return Result.error("接口调用失败"); + } } //消耗金币增加 @PostMapping("/add") public Result add(@RequestBody ConsumeUser consumeUser) { - return consumeService.add(consumeUser); + try { + return consumeService.add(consumeUser); + } catch (Exception e) { + return Result.error("接口调用失败"); + } } diff --git a/src/main/java/com/example/demo/controller/RefundController.java b/src/main/java/com/example/demo/controller/RefundController.java index c3b24fa..51f92f7 100644 --- a/src/main/java/com/example/demo/controller/RefundController.java +++ b/src/main/java/com/example/demo/controller/RefundController.java @@ -1,14 +1,19 @@ package com.example.demo.controller; +import com.example.demo.domain.vo.Gold; +import com.example.demo.domain.vo.Page; +import com.example.demo.domain.vo.Result; +import com.example.demo.service.ConsumeService; +import com.example.demo.service.RefundService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.*; /** * @program: gold-java - * @ClassName RefundController + * @ClassName RefundMapper.xml * @description: * @author: Double * @create: 2025−06-26 11:28 @@ -21,4 +26,53 @@ import org.springframework.web.bind.annotation.RestController; @Slf4j @CrossOrigin public class RefundController { + + @Autowired + private RefundService refundService; + + //退款明细 + @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(refundService.selectAll(page.getPageNum(), page.getPageSize())); + } + } 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(refundService.selectBy(page.getPageNum(), page.getPageSize(), page.getRefundUser())); + } + } catch (Exception e) { + return Result.error("接口调用失败"); + } + + } + + @PostMapping("/statsGold") + public Result statsGold() { + try { + Gold gold = refundService.statsGold(); + return Result.success(gold); + } catch (Exception e) { + return Result.error("接口调用失败"); + } + } + } diff --git a/src/main/java/com/example/demo/controller/UserController.java b/src/main/java/com/example/demo/controller/UserController.java index 8fea803..09d3ccf 100644 --- a/src/main/java/com/example/demo/controller/UserController.java +++ b/src/main/java/com/example/demo/controller/UserController.java @@ -31,7 +31,11 @@ public class UserController { @PostMapping("/selectUser") public Result selectUser(@RequestBody GoldUser user) { - user = userService.selectUser(user.getJwcode().toString()); - return Result.success(user); + try { + user = userService.selectUser(user.getJwcode().toString()); + return Result.success(user); + } catch (Exception e) { + return Result.error("接口调用失败"); + } } } diff --git a/src/main/java/com/example/demo/domain/vo/ConsumeUser.java b/src/main/java/com/example/demo/domain/vo/ConsumeUser.java index 6e7de4b..f1617c7 100644 --- a/src/main/java/com/example/demo/domain/vo/ConsumeUser.java +++ b/src/main/java/com/example/demo/domain/vo/ConsumeUser.java @@ -38,7 +38,7 @@ public class ConsumeUser implements Serializable { private String adminName; //提交人姓名 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") - private Date payTime; // 消费时间 + 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") 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 bce0330..d95c1e0 100644 --- a/src/main/java/com/example/demo/domain/vo/Page.java +++ b/src/main/java/com/example/demo/domain/vo/Page.java @@ -22,5 +22,6 @@ public class Page { private GoldDetail goldDetail; private ConsumeUser consumeUser; private User user; + private RefundUser refundUser; } diff --git a/src/main/java/com/example/demo/domain/vo/RefundUser.java b/src/main/java/com/example/demo/domain/vo/RefundUser.java index 5984b98..0d4d3d4 100644 --- a/src/main/java/com/example/demo/domain/vo/RefundUser.java +++ b/src/main/java/com/example/demo/domain/vo/RefundUser.java @@ -33,7 +33,7 @@ public class RefundUser { private Integer permanentGold; // 永久金币 private Integer freeGold; // 免费金币 private Integer taskGold; // 任务金币 - private String remark; // 备注 + private String remark; // 退款原因 private Integer adminId; //提交人Id private String adminName; //提交人姓名 diff --git a/src/main/java/com/example/demo/mapper/RefundMapper.java b/src/main/java/com/example/demo/mapper/RefundMapper.java new file mode 100644 index 0000000..3067263 --- /dev/null +++ b/src/main/java/com/example/demo/mapper/RefundMapper.java @@ -0,0 +1,27 @@ +package com.example.demo.mapper; + +import com.example.demo.domain.entity.UserGoldRecord; +import com.example.demo.domain.vo.ConsumeUser; +import com.example.demo.domain.vo.RefundUser; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @program: gold-java + * @ClassName RefundMapper + * @description: + * @author: Double + * @create: 2025−06-27 11:31 + * @Version 1.0 + **/ + +@Mapper +public interface RefundMapper { + + List selectAll(); + + List selectBy(RefundUser refundUser); + + void add(UserGoldRecord userGoldRecord); +} diff --git a/src/main/java/com/example/demo/service/RefundService.java b/src/main/java/com/example/demo/service/RefundService.java new file mode 100644 index 0000000..f09b86d --- /dev/null +++ b/src/main/java/com/example/demo/service/RefundService.java @@ -0,0 +1,28 @@ +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.RefundUser; +import com.example.demo.domain.vo.Result; +import com.github.pagehelper.PageInfo; + +/** + * @program: gold-java + * @ClassName RefundService + * @description: + * @author: Double + * @create: 2025−06-27 11:50 + * @Version 1.0 + **/ + +public interface RefundService { + + PageInfo selectAll(Integer pageNum, Integer pageSize); + + Gold statsGold(); + + PageInfo selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser); + + Result add(RefundUser refundUser); +} diff --git a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java new file mode 100644 index 0000000..e852d3f --- /dev/null +++ b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java @@ -0,0 +1,88 @@ +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.RefundUser; +import com.example.demo.domain.vo.Result; +import com.example.demo.mapper.ConsumeMapper; +import com.example.demo.mapper.RefundMapper; +import com.example.demo.mapper.UserMapper; +import com.example.demo.service.RefundService; +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 RefundServiceImpl + * @description: + * @author: Double + * @create: 2025−06-27 11:50 + * @Version 1.0 + **/ + +@Service +public class RefundServiceImpl implements RefundService { + + @Autowired + private RefundMapper refundMapper; + + @Autowired + private UserMapper userMapper; + + @Override + public PageInfo selectAll(Integer pageNum, Integer pageSize) { + PageHelper.startPage(pageNum, pageSize); + List refundUsers = refundMapper.selectAll(); + return new PageInfo<>(refundUsers); + } + + @Override + public Gold statsGold() { + Gold gold = new Gold(); + List refundUsers = refundMapper.selectAll(); + + // 初始化累加器 + int permanentGoldSum = 0; + int freeGoldSum = 0; + int taskGoldSum = 0; + + // 遍历推开记录并累加金币 + for (RefundUser refundUser : refundUsers) { + // 累加永久金币 + if (refundUser.getPermanentGold() != null) { + permanentGoldSum += refundUser.getPermanentGold(); + } + // 累加免费金币 + if (refundUser.getFreeGold() != null) { + freeGoldSum += refundUser.getFreeGold(); + } + // 累加任务金币 + if (refundUser.getTaskGold() != null) { + taskGoldSum += refundUser.getTaskGold(); + } + } + + // 将累加结果设置到Gold对象 + gold.setPermanentGolds(permanentGoldSum); + gold.setFreeGolds(freeGoldSum); + gold.setTaskGolds(taskGoldSum); + + return gold; + } + + @Override + public PageInfo selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser) { + PageHelper.startPage(pageNum, pageSize); + List refundUsers = refundMapper.selectBy(refundUser); + return new PageInfo<>(refundUsers); + } + + @Override + public Result add(RefundUser refundUser) { + return null; + } +} diff --git a/src/main/resources/mapper/ConsumeMapper.xml b/src/main/resources/mapper/ConsumeMapper.xml index 749c815..2d42f22 100644 --- a/src/main/resources/mapper/ConsumeMapper.xml +++ b/src/main/resources/mapper/ConsumeMapper.xml @@ -15,7 +15,7 @@ ugr.task_gold AS taskGold, ugr.remark AS remark, a.admin_name AS adminName, - ugr.pay_time AS payTime + ugr.create_time AS createTime FROM user u JOIN user_gold_record ugr ON u.jwcode = ugr.jwcode @@ -37,7 +37,7 @@ ugr.task_gold AS taskGold, ugr.remark AS remark, a.admin_name AS adminName, - ugr.pay_time AS payTime + ugr.create_time AS createTime FROM user u JOIN user_gold_record ugr ON u.jwcode = ugr.jwcode @@ -45,6 +45,9 @@ admin a ON ugr.admin_id = a.id ugr.type = 1 + + AND ugr.jwcode = #{jwcode} + AND ugr.goods_name = #{goodsName} @@ -55,7 +58,7 @@ AND ugr.pay_platform = #{payPlatform} - AND ugr.pay_time BETWEEN #{startTime} AND #{endTime} + AND ugr.create_time BETWEEN #{startTime} AND #{endTime} diff --git a/src/main/resources/mapper/RefundMapper.xml b/src/main/resources/mapper/RefundMapper.xml new file mode 100644 index 0000000..d00d506 --- /dev/null +++ b/src/main/resources/mapper/RefundMapper.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + 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, + create_time, + pay_time + + VALUES + + #{orderCode}, + #{jwcode}, + #{sumGold}, + #{permanentGold}, + #{freeJune}, + #{freeDecember}, + #{taskGold}, + #{goodsName}, + #{remark}, + #{type}, + #{payPlatform}, + #{isRefund}, + #{adminId}, + #{createTime}, + #{payTime} + + + \ No newline at end of file