|  |  |  | 
|---|
|  |  |  | private TransactionsMapper transactionsMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Transactional(rollbackFor = Exception.class) | 
|---|
|  |  |  | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) | 
|---|
|  |  |  | public Refund wxRefund(RefundDTO refundDTO) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | // 发送退款请求 | 
|---|
|  |  |  | 
|---|
|  |  |  | WxPayRefundRequest request = new WxPayRefundRequest(); | 
|---|
|  |  |  | request.setOutTradeNo(refundDTO.getOrderId()); | 
|---|
|  |  |  | request.setOutRefundNo(refNum); | 
|---|
|  |  |  | request.setTotalFee(BaseWxPayRequest.yuanToFen(refundDTO.getTotalAmount().toString())); | 
|---|
|  |  |  | request.setRefundFee(BaseWxPayRequest.yuanToFen(refundDTO.getRefundAmount().toString())); | 
|---|
|  |  |  | request.setTotalFee(refundDTO.getTotalAmount().intValue()); | 
|---|
|  |  |  | request.setRefundFee(refundDTO.getRefundAmount().intValue()); | 
|---|
|  |  |  | System.out.println("实际总金额" + refundDTO.getTotalAmount()); | 
|---|
|  |  |  | System.out.println("实际退款金额" + refundDTO.getRefundAmount()); | 
|---|
|  |  |  | //            request.setTotalFee(1); | 
|---|
|  |  |  | //            request.setRefundFee(1); | 
|---|
|  |  |  | WxPayRefundResult response = WxMiniConfig.wxPayService.refund(request); | 
|---|
|  |  |  | if ("SUCCESS".equals(response.getReturnCode()) && "SUCCESS".equals(response.getResultCode())) { | 
|---|
|  |  |  | //存储退款记录 与 流水记录 | 
|---|
|  |  |  | Refund refund = new Refund(); | 
|---|
|  |  |  | refund.setId(Constants.getUUID()); | 
|---|
|  |  |  | refund.setCreateDate(new Date()); | 
|---|
|  |  |  | refund.setMemberId(refundDTO.getMemberId()); | 
|---|
|  |  |  | refund.setMoney(refundDTO.getRefundAmount()); | 
|---|
|  |  |  | refund.setOnlineOrderid(refNum); | 
|---|
|  |  |  | refund.setPayWay(Constants.ZERO); | 
|---|
|  |  |  | refund.setStatus(Constants.TWO); | 
|---|
|  |  |  | refund.setDoneDate(new Date()); | 
|---|
|  |  |  | refund.setCreator(refundDTO.getCreator()); | 
|---|
|  |  |  | refund.setType(refundDTO.getType()); | 
|---|
|  |  |  | refund.setObjId(refundDTO.getOrderId()); | 
|---|
|  |  |  | refund.setReason(refundDTO.getReason()); | 
|---|
|  |  |  | 
|---|
|  |  |  | refundMapper.insert(refund); | 
|---|
|  |  |  | //存储交易流水表 | 
|---|
|  |  |  | Transactions transactions = new Transactions(); | 
|---|
|  |  |  | transactions.setId(Constants.getUUID()); | 
|---|
|  |  |  | transactions.setMemberId(refundDTO.getMemberId()); | 
|---|
|  |  |  | transactions.setCreateDate(new Date()); | 
|---|
|  |  |  | transactions.setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | transactions.setOrderId(refundDTO.getOrderId()); | 
|---|
|  |  |  | transactions.setMoney(refundDTO.getRefundAmount()); | 
|---|
|  |  |  | transactions.setType(refundDTO.getType()==Constants.transactionsType.refund?Constants.transactionsType.platformRefund:Constants.transactionsType.refund); | 
|---|
|  |  |  | transactions.setType(refundDTO.getType()==Constants.TRANSACTIONS_TYPE.REFUND.getKey()?Constants.TRANSACTIONS_TYPE.PLATFORMREFUND.getKey():Constants.REFUND_TYPE.BACK.getKey()); | 
|---|
|  |  |  | transactions.setPreOrderid(refundDTO.getOrderId()); | 
|---|
|  |  |  | transactions.setOnlineOrderid(refNum); | 
|---|
|  |  |  | transactions.setDoneDate(new Date()); | 
|---|
|  |  |  | transactions.setTitle("退款"); | 
|---|
|  |  |  | transactions.setContent(refundDTO.getType()==Constants.transactionsType.refund?"平台退款":"结算退款"); | 
|---|
|  |  |  | transactions.setTitle(Constants.TRANSACTIONS_TYPE.get(transactions.getType()).getName()); | 
|---|
|  |  |  | transactions.setContent(Constants.TRANSACTIONS_TYPE.get(transactions.getType()).getInfo()); | 
|---|
|  |  |  | transactions.setBalance(BigDecimal.ZERO); | 
|---|
|  |  |  | transactions.setObjId(refund.getId()); | 
|---|
|  |  |  | transactions.setObjType(Constants.ONE); | 
|---|