package com.example.demo.serviceImpl.cash; import com.example.demo.Util.GoldTistV2; import com.example.demo.domain.entity.UserGoldRecord; import com.example.demo.domain.vo.cash.CashRecordDone; import com.example.demo.domain.vo.coin.Result; import com.example.demo.mapper.cash.CashRefundMapper; import com.example.demo.mapper.coin.AuditMapper; import com.example.demo.mapper.coin.RefundMapper; import com.example.demo.service.cash.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.time.LocalDate; import java.util.List; import java.util.UUID; import static org.apache.commons.lang3.StringUtils.substring; /** * @program: GOLD * @ClassName CashRefundServiceImpl * @description: * @author: huangqizhen * @create: 2025−09-28 15:02 * @Version 1.0 **/ @Service public class CashRefundServiceImpl implements RefundService { @Autowired private CashRefundMapper cashRefundMapper; @Autowired private RefundMapper refundMapper; @Autowired private AuditMapper auditMapper; @Override public PageInfo select(Integer pageNum, Integer pageSize, CashRecordDone cashRecordDone) { PageHelper.startPage(pageNum, pageSize); // System.out.println(goldDetail.getMarkets()); List list = cashRefundMapper.select(cashRecordDone); return new PageInfo<>(list); } @Override public int add(CashRecordDone cashRecordDone) throws Exception { if(cashRecordDone.getHandlingCharge()== null){ throw new Exception("未输入手续费") ; } if(cashRecordDone.getJwcode()==null){ throw new Exception("未输入精网号") ; } if(cashRecordDone.getPaymentAmount()== null){ throw new Exception("未输入付款金额") ; } if(cashRecordDone.getPaymentCurrency()== null){ throw new Exception("未输入付款币种") ; } if(cashRecordDone.getRefundModel()== null){ throw new Exception("请填充退款类型") ; } if(cashRecordDone.getRefundReason()== null){ throw new Exception("请填写退款理由") ; } CashRecordDone cashRecordDonetwo = new CashRecordDone(); cashRecordDonetwo.setAreaServise(cashRecordDone.getAreaServise()); cashRefundMapper.addAudit(cashRecordDonetwo); cashRecordDone.setAuditId(cashRecordDonetwo.getId()); cashRecordDone.setOrderType(2); cashRecordDone.setStatus(10); //生成订单号后半部分 String orderNumber = cashRecordDone.getOrderCode(); //构建订单信息 cashRecordDone.setOrderCode("TK_" + orderNumber); //订单号 cashRefundMapper.insert(cashRecordDone); CashRecordDone cashRecordDone1 = new CashRecordDone(); cashRecordDone1.setId(cashRecordDone.getId()); cashRecordDone1.setStatus(6); if (cashRecordDone1.getId()!=null||cashRecordDone1.getOrderCode()!= null) return cashRefundMapper.updateStatus(cashRecordDone1); else return Result.error("提交失败").getCode(); } @Override public int update(CashRecordDone cashRecordDone) { if (cashRecordDone.getJwcode()== null) { throw new RuntimeException("未输入精网号"); } if (cashRecordDone.getPaymentAmount()== null) { throw new RuntimeException("未输入付款金额"); } if (cashRecordDone.getPaymentCurrency()== null){ throw new RuntimeException("未输入付款币种"); } if (cashRecordDone.getRefundModel()== null) { throw new RuntimeException("请填写退款类型"); } if (cashRecordDone.getRefundReason()== null) { throw new RuntimeException("请填写退款理由"); } int result = cashRefundMapper.update(cashRecordDone); return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode(); } @Override public int withdraw(CashRecordDone cashRecordDone) { return cashRefundMapper.withdraw(cashRecordDone.getId()); } @Override public int review(CashRecordDone cashRecordDone) { if(cashRecordDone.getStatus()== 12|| cashRecordDone.getStatus()== 22){ CashRecordDone cashRecordDone1 = new CashRecordDone(); cashRecordDone1.setOrderCode(cashRecordDone.getOrderCode().substring(2)); cashRecordDone1.setStatus(4); if (cashRecordDone1.getId()!=null||cashRecordDone1.getOrderCode()!= null){ cashRefundMapper.updateStatus(cashRecordDone1); } cashRefundMapper.updateAudit(cashRecordDone); int result = cashRefundMapper.review(cashRecordDone); return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode();} else return Result.error("提交失败").getCode(); } @Override public int executor(CashRecordDone cashRecordDone) { if(cashRecordDone.getRefundVoucher()== null){ throw new RuntimeException("未输入退款凭证"); } if(cashRecordDone.getRefundTime()== null){ throw new RuntimeException("未输入退款时间"); } if(cashRecordDone.getRefundRemark()== null){ throw new RuntimeException("未输入退款备注"); } if(cashRecordDone.getRefundChannels()== null){ throw new RuntimeException("未输入退款途径"); } if(cashRecordDone.getRefundCurrency()== null){ throw new RuntimeException("未输入退款币种"); } if(cashRecordDone.getRefundAmount()== null){ throw new RuntimeException("未输入退款金额"); } int result = cashRefundMapper.executor(cashRecordDone); return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode(); } @Override public int updateStatus(CashRecordDone cashRecordDone) { return cashRefundMapper.updateStatus(cashRecordDone); } @Override public int finalreview(CashRecordDone cashRecordDone) { if(cashRecordDone.getStatus()== 32){ CashRecordDone cashRecordDone1 = new CashRecordDone(); cashRecordDone1.setOrderCode(cashRecordDone.getOrderCode().substring(2)); cashRecordDone1.setStatus(4); if (cashRecordDone1.getId()!=null||cashRecordDone1.getOrderCode()!= null){ cashRefundMapper.updateStatus(cashRecordDone1); } if (cashRecordDone.getGoodsName() != null && (cashRecordDone.getGoodsName().equals("金币充值") || cashRecordDone.getGoodsName().contains("金币充值"))) { UserGoldRecord userGoldRecord = new UserGoldRecord(); userGoldRecord.setOrderCode(cashRecordDone.getOrderCode()); userGoldRecord.setType((byte) 2); userGoldRecord.setIsRefund((byte) 1); userGoldRecord.setRefundType("金币退款"); userGoldRecord.setCrefundModel(cashRecordDone.getRefundModel()); userGoldRecord.setJwcode(cashRecordDone.getJwcode()); userGoldRecord.setSumGold(cashRecordDone.getPermanentGold()+cashRecordDone.getFreeGold()); userGoldRecord.setPermanentGold(cashRecordDone.getPermanentGold()); int currentMonth = LocalDate.now().getMonthValue(); if (currentMonth >= 1 && currentMonth <= 6) { // 1-6月:设置12月额度,6月保持默认值 userGoldRecord.setFreeJune(0); userGoldRecord.setFreeDecember(cashRecordDone.getFreeGold()); } else { // 7-12月:设置6月额度,12月保持默认值 userGoldRecord.setFreeJune(cashRecordDone.getFreeGold()); userGoldRecord.setFreeDecember(0); } userGoldRecord.setGoodsName(cashRecordDone.getGoodsName()); userGoldRecord.setPayPlatform("金币系统"); userGoldRecord.setRemark(cashRecordDone.getRemark()); userGoldRecord.setAdminId(cashRecordDone.getAuditId()); userGoldRecord.setAuditStatus(1); String auditName = auditMapper.getName(cashRecordDone.getAuditId()); refundMapper.add(userGoldRecord); GoldTistV2.addCoinNew(userGoldRecord.getJwcode().toString(), 58, //退款免费+永久金币-充值 (double) (userGoldRecord.getFreeDecember()+userGoldRecord.getFreeJune()+userGoldRecord.getPermanentGold() ) /100, userGoldRecord.getRemark(),(double) userGoldRecord.getPermanentGold() / 100, auditName, "退款金币充值");} cashRefundMapper.updateAudit(cashRecordDone); int result = cashRefundMapper.review(cashRecordDone); return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode();} else return Result.error("提交失败").getCode(); } }