You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

118 lines
5.0 KiB

2 weeks ago
2 weeks ago
2 weeks ago
2 weeks ago
2 weeks ago
  1. package com.example.demo.serviceImpl;
  2. import com.example.demo.domain.entity.User;
  3. import com.example.demo.domain.entity.UserGoldRecord;
  4. import com.example.demo.domain.vo.Gold;
  5. import com.example.demo.domain.vo.RechargeAudit;
  6. import com.example.demo.domain.vo.RefundAudit;
  7. import com.example.demo.mapper.AuditMapper;
  8. import com.example.demo.service.AuditService;
  9. import com.github.pagehelper.PageHelper;
  10. import com.github.pagehelper.PageInfo;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import java.util.List;
  14. /**
  15. * @program: gold-java
  16. * @ClassName AuditServiceImpl
  17. * @description: 审核模块
  18. * @author: Ethan
  19. * @create: 202506-19 17:38
  20. * @Version 1.0
  21. **/
  22. @Service
  23. public class AuditServiceImpl implements AuditService {
  24. @Autowired
  25. private AuditMapper auditMapper;
  26. /*
  27. 审核订单并修改用户余额等
  28. */
  29. @Override
  30. public boolean auditOrder(String token, String orderCode, Integer auditId, Integer action,String rejectReason) {
  31. UserGoldRecord order=auditMapper.selectOrderByOrderCode(orderCode);
  32. if (order == null || order.getAuditStatus() != 0) {
  33. throw new IllegalArgumentException("订单不存在或已被审核");
  34. }
  35. //更新订单的审核状态和审核人
  36. UserGoldRecord updateOrder = new UserGoldRecord();
  37. updateOrder.setOrderCode(orderCode);
  38. updateOrder.setAuditId(auditId);
  39. //判断是通过还是驳回
  40. if (action==2){ //驳回
  41. updateOrder.setAuditStatus(2);
  42. updateOrder.setRejectReason(rejectReason);
  43. auditMapper.updateOrder(updateOrder);
  44. return true;
  45. }else if (action==1) { //通过
  46. updateOrder.setAuditStatus(1);
  47. }
  48. // 执行审核更新
  49. auditMapper.updateOrder(updateOrder);
  50. //判断是充值还是退款
  51. if (order.getType()==0){ //充值
  52. //更新用户余额
  53. User update = new User();
  54. update.setJwcode(order.getJwcode()); //精网号
  55. update.setSumPermanentGold(order.getPermanentGold()); //历史永久金币
  56. update.setSumFreeJune(order.getFreeJune()); //历史六月免费金币
  57. update.setSumFreeDecember(order.getFreeDecember()); //历史十二月免费金币
  58. update.setSumTaskGold(order.getTaskGold()); //历史任务金币
  59. update.setCurrentPermanentGold(order.getPermanentGold()); //当前永久金币
  60. update.setCurrentFreeJune(order.getFreeJune()); //当前六月免费金币
  61. update.setCurrentFreeDecember(order.getFreeDecember()); //当前十二月免费金币
  62. update.setCurrentTaskGold(order.getTaskGold()); //当前任务金币
  63. auditMapper.updateUserGold(update);
  64. }else if (order.getType()==2) { //退款
  65. //1.更新用户余额,并标记对应的消费订单为已退款
  66. User update = new User();
  67. update.setJwcode(order.getJwcode());
  68. update.setCurrentPermanentGold(order.getPermanentGold()); //当前永久金币
  69. update.setCurrentFreeJune(order.getFreeJune()); //当前六月免费金币
  70. update.setCurrentFreeDecember(order.getFreeDecember()); //当前十二月免费金币
  71. update.setCurrentTaskGold(order.getTaskGold()); //当前任务金币
  72. auditMapper.updateUserGold(update);
  73. //2.获取对应的消费订单(退款订单号去掉开头"TK"即为对应消费订单)
  74. String consumeOrderCode = order.getOrderCode().replaceFirst("TK", "");
  75. //3.更新消费订单是否已退款状态为1
  76. UserGoldRecord consumeOrder = auditMapper.selectOrderByOrderCode(consumeOrderCode);
  77. if (consumeOrderCode != null&&consumeOrder.getType()==1){ //确保是消费订单
  78. auditMapper.updateOrderRefund(consumeOrderCode);
  79. }else {
  80. throw new IllegalArgumentException("找不到对应的订单或不是有效订单");
  81. }
  82. }
  83. return true;
  84. }
  85. /*
  86. * 多条件查询充值订单列表
  87. */
  88. @Override
  89. public PageInfo<RechargeAudit> selectRechargeBy(Integer pageNum, Integer pageSize, RechargeAudit rechargeAudit) {
  90. PageHelper.startPage(pageNum, pageSize);
  91. List<RechargeAudit> rechargeAudits = auditMapper.selectRechargeBy(pageNum, pageSize, rechargeAudit);
  92. return new PageInfo<>(rechargeAudits);
  93. }
  94. @Override
  95. public PageInfo<RefundAudit> selectRefundBy(Integer pageNum, Integer pageSize, RefundAudit refundAudit) {
  96. PageHelper.startPage(pageNum, pageSize);
  97. List<RefundAudit> refundAudits = auditMapper.selectRefundBy(pageNum, pageSize, refundAudit);
  98. return new PageInfo<>(refundAudits);
  99. }
  100. /*
  101. 金币合计数
  102. */
  103. @Override
  104. public Gold sumRechargeGold() {
  105. Gold gold = new Gold();
  106. //获取充值审核订单列表
  107. List<RechargeAudit> rechargeAudits = auditMapper.selectRechargeBy(1, 1000, null);
  108. return null;
  109. }
  110. }