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.

210 lines
9.4 KiB

2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
  1. package com.example.demo.serviceImpl;
  2. import com.example.demo.Util.GoldTistV2;
  3. import com.example.demo.domain.entity.User;
  4. import com.example.demo.domain.entity.UserGoldRecord;
  5. import com.example.demo.domain.vo.Gold;
  6. import com.example.demo.domain.vo.RechargeAudit;
  7. import com.example.demo.domain.vo.RefundAudit;
  8. import com.example.demo.mapper.AuditMapper;
  9. import com.example.demo.service.AuditService;
  10. import com.github.pagehelper.PageHelper;
  11. import com.github.pagehelper.PageInfo;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import java.util.Date;
  15. import java.util.List;
  16. /**
  17. * @program: gold-java
  18. * @ClassName AuditServiceImpl
  19. * @description: 审核模块
  20. * @author: Ethan
  21. * @create: 202506-19 17:38
  22. * @Version 1.0
  23. **/
  24. @Service
  25. public class AuditServiceImpl implements AuditService {
  26. @Autowired
  27. private AuditMapper auditMapper;
  28. /*
  29. 审核订单并修改用户余额等
  30. */
  31. @Override
  32. public boolean auditOrder(String token, String orderCode, Integer auditId, Integer action,String rejectReason) {
  33. UserGoldRecord order=auditMapper.selectOrderByOrderCode(orderCode);
  34. if (order == null || order.getAuditStatus() != 0) {
  35. throw new IllegalArgumentException("订单不存在或已被审核");
  36. }
  37. //更新订单的审核状态和审核人
  38. UserGoldRecord updateOrder = new UserGoldRecord();
  39. updateOrder.setOrderCode(orderCode);
  40. updateOrder.setAuditId(auditId);
  41. //判断是通过还是驳回
  42. if (action==2){ //驳回
  43. updateOrder.setAuditStatus(2);
  44. updateOrder.setRejectReason(rejectReason);
  45. updateOrder.setAuditTime(new Date());
  46. // 执行审核更新
  47. auditMapper.updateOrder(updateOrder);
  48. if (order.getType()==2) { //退款
  49. //2.获取对应的消费订单(退款订单号去掉开头"TK"即为对应消费订单)
  50. String consumeOrderCode = order.getOrderCode().replaceFirst("TK", "");
  51. //3.更新消费订单是否已退款状态为0
  52. UserGoldRecord consumeOrder = auditMapper.selectOrderByOrderCode(consumeOrderCode);
  53. if (consumeOrderCode != null&&consumeOrder.getType()==1){ //确保是消费订单
  54. auditMapper.updateOrderRefund(consumeOrderCode,(byte)0);
  55. }else {
  56. throw new IllegalArgumentException("找不到对应的订单或不是有效订单");
  57. }
  58. }
  59. }else if (action==1) { //通过
  60. updateOrder.setAuditStatus(1);
  61. updateOrder.setAuditTime(new Date());
  62. // 执行审核更新
  63. auditMapper.updateOrder(updateOrder);
  64. //判断是充值还是退款
  65. if (order.getType()==0){ //充值
  66. //更新用户余额
  67. User update = new User();
  68. update.setJwcode(order.getJwcode()); //精网号
  69. update.setSumPermanentGold(order.getPermanentGold()); //历史永久金币
  70. update.setSumFreeJune(order.getFreeJune()); //历史六月免费金币
  71. update.setSumFreeDecember(order.getFreeDecember()); //历史十二月免费金币
  72. update.setSumTaskGold(order.getTaskGold()); //历史任务金币
  73. update.setCurrentPermanentGold(order.getPermanentGold()); //当前永久金币
  74. update.setCurrentFreeJune(order.getFreeJune()); //当前六月免费金币
  75. update.setCurrentFreeDecember(order.getFreeDecember()); //当前十二月免费金币
  76. update.setCurrentTaskGold(order.getTaskGold()); //当前任务金币
  77. auditMapper.updateUserGold(update);
  78. //erp增加充值数据
  79. if(update.getJwcode().equals(94226013)){
  80. GoldTistV2.addCoinNew(order.getJwcode().toString(), 64, //充值永久金币
  81. (double) (order.getPermanentGold() ) /100,
  82. order.getRemark(),0, order.getPayPlatform(), "金币充值");
  83. GoldTistV2.addCoinNew(order.getJwcode().toString(), 63, //充值免费
  84. (double) (order.getFreeDecember()+order.getFreeJune() ) /100,
  85. order.getRemark(),0, order.getPayPlatform(), "金币充值");
  86. }
  87. }else if (order.getType()==2) { //退款
  88. //更新用户余额
  89. User update = new User();
  90. update.setJwcode(order.getJwcode());
  91. update.setCurrentPermanentGold(order.getPermanentGold()); //当前永久金币
  92. update.setCurrentFreeJune(order.getFreeJune()); //当前六月免费金币
  93. update.setCurrentFreeDecember(order.getFreeDecember()); //当前十二月免费金币
  94. update.setCurrentTaskGold(order.getTaskGold()); //当前任务金币
  95. auditMapper.updateUserGold(update);
  96. //erp增加退款数据
  97. if(update.getJwcode().equals(94226013)){
  98. GoldTistV2.addCoinNew(order.getJwcode().toString(), 56, //退款永久金币
  99. (double) (order.getPermanentGold() ) /100,
  100. order.getRemark(),0, order.getPayPlatform(), "退款商品"+order.getGoodsName());
  101. GoldTistV2.addCoinNew(order.getJwcode().toString(), 55, //退款免费
  102. (double) (order.getFreeDecember()+order.getFreeJune() ) /100,
  103. order.getRemark(),0, order.getPayPlatform(), "退款商品"+order.getGoodsName());
  104. GoldTistV2.addCoinNew(order.getJwcode().toString(), 57, //退款任务
  105. (double) (order.getTaskGold() ) /100,
  106. order.getRemark(),0, order.getPayPlatform(), "退款商品"+order.getGoodsName());
  107. }
  108. }
  109. }
  110. return true;
  111. }
  112. /*
  113. * 多条件查询充值订单列表
  114. */
  115. @Override
  116. public PageInfo<RechargeAudit> selectRechargeBy(Integer pageNum, Integer pageSize, RechargeAudit rechargeAudit) {
  117. PageHelper.startPage(pageNum, pageSize);
  118. List<RechargeAudit> rechargeAudits = auditMapper.selectRechargeBy(pageNum, pageSize, rechargeAudit);
  119. // rechargeAudit.setFreeGold(rechargeAudit.getFreeJune()+rechargeAudit.getFreeDecember());
  120. return new PageInfo<>(rechargeAudits);
  121. }
  122. /*
  123. 多条件查询退款订单
  124. */
  125. @Override
  126. public PageInfo<RefundAudit> selectRefundBy(Integer pageNum, Integer pageSize, RefundAudit refundAudit) {
  127. PageHelper.startPage(pageNum, pageSize);
  128. List<RefundAudit> refundAudits = auditMapper.selectRefundBy(pageNum, pageSize, refundAudit);
  129. //refundAudit.setFreeGold(refundAudit.getFreeJune()+refundAudit.getFreeDecember());
  130. return new PageInfo<>(refundAudits);
  131. }
  132. /*
  133. 充值审核金币合计数
  134. */
  135. @Override
  136. public Gold sumRechargeGold(Integer pageNum, Integer pageSize, RechargeAudit rechargeAudit) {
  137. Gold gold = new Gold();
  138. //获取充值审核订单列表
  139. List<RechargeAudit> rechargeAudits = auditMapper.selectRechargeBy(1, 500000, rechargeAudit);
  140. // 初始化累加器
  141. int totalNum=0;
  142. int permanentGoldSum = 0;
  143. int freeGoldSum = 0;
  144. // 遍历消费记录并累加金币
  145. for (RechargeAudit recharge : rechargeAudits) {
  146. // 累加永久金币
  147. if (recharge.getPermanentGold() != null) {
  148. permanentGoldSum += recharge.getPermanentGold();
  149. }
  150. // 累加免费金币
  151. if (recharge.getFreeJune() != null||recharge.getFreeDecember() != null) {
  152. freeGoldSum = freeGoldSum+recharge.getFreeJune()+recharge.getFreeDecember();
  153. }
  154. // 每遍历一条记录,总条数加1
  155. totalNum++;
  156. }
  157. // 将累加结果设置到Gold对象
  158. gold.setPermanentGolds(permanentGoldSum);
  159. gold.setFreeGolds(freeGoldSum);
  160. gold.setTotalNum(totalNum);
  161. return gold;
  162. }
  163. /*
  164. 退款审核合计数
  165. */
  166. @Override
  167. public Gold sumRefundGold(Integer pageNum, Integer pageSize, RefundAudit refundAudit) {
  168. Gold gold = new Gold();
  169. //获取充值审核订单列表
  170. List<RefundAudit> refundAudits = auditMapper.selectRefundBy(1, 500000, refundAudit);
  171. // 初始化累加器
  172. int totalNum=0;
  173. int permanentGoldSum = 0;
  174. int freeGoldSum = 0;
  175. int taskGoldSum = 0;
  176. // 遍历消费记录并累加金币
  177. for (RefundAudit refund : refundAudits) {
  178. // 累加永久金币
  179. if (refund.getPermanentGold() != null) {
  180. permanentGoldSum += refund.getPermanentGold();
  181. }
  182. // 累加免费金币
  183. if (refund.getFreeJune() != null||refund.getFreeDecember()!=null) {
  184. freeGoldSum += refund.getFreeJune()+refund.getFreeDecember();
  185. }
  186. //累加任务金币
  187. if(refund.getTaskGold()!=null)
  188. taskGoldSum+=refund.getTaskGold();
  189. // 每遍历一条记录,总条数加1
  190. totalNum++;
  191. }
  192. // 将累加结果设置到Gold对象
  193. gold.setPermanentGolds(permanentGoldSum);
  194. gold.setFreeGolds(freeGoldSum);
  195. gold.setTotalNum(totalNum);
  196. gold.setTaskGolds(taskGoldSum);
  197. return gold;
  198. }
  199. }