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.

205 lines
9.0 KiB

2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
  1. package com.example.demo.serviceImpl.cash;
  2. import com.example.demo.Util.GoldTistV2;
  3. import com.example.demo.domain.entity.UserGoldRecord;
  4. import com.example.demo.domain.vo.cash.CashRecordDone;
  5. import com.example.demo.domain.vo.coin.Result;
  6. import com.example.demo.mapper.cash.CashRefundMapper;
  7. import com.example.demo.mapper.coin.AuditMapper;
  8. import com.example.demo.mapper.coin.RefundMapper;
  9. import com.example.demo.service.cash.RefundService;
  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.time.LocalDate;
  15. import java.util.List;
  16. import java.util.UUID;
  17. import static org.apache.commons.lang3.StringUtils.substring;
  18. /**
  19. * @program: GOLD
  20. * @ClassName CashRefundServiceImpl
  21. * @description:
  22. * @author: huangqizhen
  23. * @create: 202509-28 15:02
  24. * @Version 1.0
  25. **/
  26. @Service
  27. public class CashRefundServiceImpl implements RefundService {
  28. @Autowired
  29. private CashRefundMapper cashRefundMapper;
  30. @Autowired
  31. private RefundMapper refundMapper;
  32. @Autowired
  33. private AuditMapper auditMapper;
  34. @Override
  35. public PageInfo<CashRecordDone> select(Integer pageNum, Integer pageSize, CashRecordDone cashRecordDone) {
  36. PageHelper.startPage(pageNum, pageSize);
  37. // System.out.println(goldDetail.getMarkets());
  38. List<CashRecordDone> list = cashRefundMapper.select(cashRecordDone);
  39. return new PageInfo<>(list);
  40. }
  41. @Override
  42. public int add(CashRecordDone cashRecordDone) throws Exception {
  43. if(cashRecordDone.getHandlingCharge()== null){
  44. throw new Exception("未输入手续费") ;
  45. }
  46. if(cashRecordDone.getJwcode()==null){
  47. throw new Exception("未输入精网号") ;
  48. }
  49. if(cashRecordDone.getPaymentAmount()== null){
  50. throw new Exception("未输入付款金额") ;
  51. }
  52. if(cashRecordDone.getPaymentCurrency()== null){
  53. throw new Exception("未输入付款币种") ;
  54. }
  55. if(cashRecordDone.getRefundModel()== null){
  56. throw new Exception("请填充退款类型") ;
  57. }
  58. if(cashRecordDone.getRefundReason()== null){
  59. throw new Exception("请填写退款理由") ;
  60. }
  61. CashRecordDone cashRecordDonetwo = new CashRecordDone();
  62. cashRecordDonetwo.setAreaServise(cashRecordDone.getAreaServise());
  63. cashRefundMapper.addAudit(cashRecordDonetwo);
  64. cashRecordDone.setAuditId(cashRecordDonetwo.getId());
  65. cashRecordDone.setOrderType(2);
  66. cashRecordDone.setStatus(10);
  67. //生成订单号后半部分
  68. String orderNumber = cashRecordDone.getOrderCode();
  69. //构建订单信息
  70. cashRecordDone.setOrderCode("TK_" + orderNumber); //订单号
  71. cashRefundMapper.insert(cashRecordDone);
  72. CashRecordDone cashRecordDone1 = new CashRecordDone();
  73. cashRecordDone1.setId(cashRecordDone.getId());
  74. cashRecordDone1.setStatus(6);
  75. if (cashRecordDone1.getId()!=null||cashRecordDone1.getOrderCode()!= null)
  76. return cashRefundMapper.updateStatus(cashRecordDone1);
  77. else return Result.error("提交失败").getCode();
  78. }
  79. @Override
  80. public int update(CashRecordDone cashRecordDone) {
  81. if (cashRecordDone.getJwcode()== null) {
  82. throw new RuntimeException("未输入精网号");
  83. }
  84. if (cashRecordDone.getPaymentAmount()== null) {
  85. throw new RuntimeException("未输入付款金额");
  86. }
  87. if (cashRecordDone.getPaymentCurrency()== null){
  88. throw new RuntimeException("未输入付款币种");
  89. }
  90. if (cashRecordDone.getRefundModel()== null) {
  91. throw new RuntimeException("请填写退款类型");
  92. }
  93. if (cashRecordDone.getRefundReason()== null) {
  94. throw new RuntimeException("请填写退款理由");
  95. }
  96. int result = cashRefundMapper.update(cashRecordDone);
  97. return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode();
  98. }
  99. @Override
  100. public int withdraw(CashRecordDone cashRecordDone) {
  101. return cashRefundMapper.withdraw(cashRecordDone.getId());
  102. }
  103. @Override
  104. public int review(CashRecordDone cashRecordDone) {
  105. if(cashRecordDone.getStatus()== 12|| cashRecordDone.getStatus()== 22){
  106. CashRecordDone cashRecordDone1 = new CashRecordDone();
  107. cashRecordDone1.setOrderCode(cashRecordDone.getOrderCode().substring(2));
  108. cashRecordDone1.setStatus(4);
  109. if (cashRecordDone1.getId()!=null||cashRecordDone1.getOrderCode()!= null){
  110. cashRefundMapper.updateStatus(cashRecordDone1);
  111. }
  112. cashRefundMapper.updateAudit(cashRecordDone);
  113. int result = cashRefundMapper.review(cashRecordDone);
  114. return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode();}
  115. else return Result.error("提交失败").getCode();
  116. }
  117. @Override
  118. public int executor(CashRecordDone cashRecordDone) {
  119. if(cashRecordDone.getRefundVoucher()== null){
  120. throw new RuntimeException("未输入退款凭证");
  121. }
  122. if(cashRecordDone.getRefundTime()== null){
  123. throw new RuntimeException("未输入退款时间");
  124. }
  125. if(cashRecordDone.getRefundRemark()== null){
  126. throw new RuntimeException("未输入退款备注");
  127. }
  128. if(cashRecordDone.getRefundChannels()== null){
  129. throw new RuntimeException("未输入退款途径");
  130. }
  131. if(cashRecordDone.getRefundCurrency()== null){
  132. throw new RuntimeException("未输入退款币种");
  133. }
  134. if(cashRecordDone.getRefundAmount()== null){
  135. throw new RuntimeException("未输入退款金额");
  136. }
  137. int result = cashRefundMapper.executor(cashRecordDone);
  138. return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode();
  139. }
  140. @Override
  141. public int updateStatus(CashRecordDone cashRecordDone) {
  142. return cashRefundMapper.updateStatus(cashRecordDone);
  143. }
  144. @Override
  145. public int finalreview(CashRecordDone cashRecordDone) {
  146. if(cashRecordDone.getStatus()== 32){
  147. CashRecordDone cashRecordDone1 = new CashRecordDone();
  148. cashRecordDone1.setOrderCode(cashRecordDone.getOrderCode().substring(2));
  149. cashRecordDone1.setStatus(4);
  150. if (cashRecordDone1.getId()!=null||cashRecordDone1.getOrderCode()!= null){
  151. cashRefundMapper.updateStatus(cashRecordDone1);
  152. }
  153. if (cashRecordDone.getGoodsName() != null &&
  154. (cashRecordDone.getGoodsName().equals("金币充值") ||
  155. cashRecordDone.getGoodsName().contains("金币充值"))) {
  156. UserGoldRecord userGoldRecord = new UserGoldRecord();
  157. userGoldRecord.setOrderCode(cashRecordDone.getOrderCode());
  158. userGoldRecord.setType((byte) 2);
  159. userGoldRecord.setIsRefund((byte) 1);
  160. userGoldRecord.setRefundType("金币退款");
  161. userGoldRecord.setCrefundModel(cashRecordDone.getRefundModel());
  162. userGoldRecord.setJwcode(cashRecordDone.getJwcode());
  163. userGoldRecord.setSumGold(cashRecordDone.getPermanentGold()+cashRecordDone.getFreeGold());
  164. userGoldRecord.setPermanentGold(cashRecordDone.getPermanentGold());
  165. int currentMonth = LocalDate.now().getMonthValue();
  166. if (currentMonth >= 1 && currentMonth <= 6) {
  167. // 1-6月:设置12月额度,6月保持默认值
  168. userGoldRecord.setFreeJune(0);
  169. userGoldRecord.setFreeDecember(cashRecordDone.getFreeGold());
  170. } else {
  171. // 7-12月:设置6月额度,12月保持默认值
  172. userGoldRecord.setFreeJune(cashRecordDone.getFreeGold());
  173. userGoldRecord.setFreeDecember(0);
  174. }
  175. userGoldRecord.setGoodsName(cashRecordDone.getGoodsName());
  176. userGoldRecord.setPayPlatform("金币系统");
  177. userGoldRecord.setRemark(cashRecordDone.getRemark());
  178. userGoldRecord.setAdminId(cashRecordDone.getAuditId());
  179. userGoldRecord.setAuditStatus(1);
  180. String auditName = auditMapper.getName(cashRecordDone.getAuditId());
  181. refundMapper.add(userGoldRecord);
  182. GoldTistV2.addCoinNew(userGoldRecord.getJwcode().toString(), 58, //退款免费+永久金币-充值
  183. (double) (userGoldRecord.getFreeDecember()+userGoldRecord.getFreeJune()+userGoldRecord.getPermanentGold() ) /100,
  184. userGoldRecord.getRemark(),(double) userGoldRecord.getPermanentGold() / 100, auditName, "退款金币充值");}
  185. cashRefundMapper.updateAudit(cashRecordDone);
  186. int result = cashRefundMapper.review(cashRecordDone);
  187. return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode();}
  188. else return Result.error("提交失败").getCode();
  189. }
  190. }