|
@@ -1,5 +1,6 @@
|
|
|
package com.miaxis.film.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
@@ -16,6 +17,7 @@ import org.apache.http.client.HttpClient;
|
|
|
import org.apache.http.client.methods.HttpPost;
|
|
|
import org.apache.http.entity.StringEntity;
|
|
|
import org.apache.http.util.EntityUtils;
|
|
|
+import org.joda.time.DateTime;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -61,7 +63,8 @@ public class RefundRecordServiceImpl extends ServiceImpl<RefundRecordMapper, Ref
|
|
|
|
|
|
rootNode.put("out_trade_no", filmOrder.getOutTradeNo())
|
|
|
.put("out_refund_no", refundCode)
|
|
|
- .put("reason", "电影购票失败");
|
|
|
+ .put("reason", "电影购票失败")
|
|
|
+ .put("notify_url",wxpayConfig.getNotifyUrlRefund());
|
|
|
rootNode.putObject("amount")
|
|
|
.put("refund", filmOrder.getTotal())
|
|
|
.put("total", filmOrder.getTotal())
|
|
@@ -74,7 +77,31 @@ public class RefundRecordServiceImpl extends ServiceImpl<RefundRecordMapper, Ref
|
|
|
// 返回数据:
|
|
|
String bodyAsString = EntityUtils.toString(response.getEntity());
|
|
|
if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
|
|
|
- //to-do 保存数据到数据库
|
|
|
+ // 保存退款数据到数据库
|
|
|
+ RefundRecord refundRecord = new RefundRecord();
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(bodyAsString);
|
|
|
+ refundRecord.setOutRefundNo(jsonObject.getString("refund_id"));
|
|
|
+ refundRecord.setTransactionId(jsonObject.getString("out_refund_no"));
|
|
|
+ refundRecord.setOutTradeNo(jsonObject.getString("out_trade_no"));
|
|
|
+ refundRecord.setChannel(jsonObject.getString("channel"));
|
|
|
+ refundRecord.setUserReceivedAccount(jsonObject.getString("user_received_account"));
|
|
|
+ if (jsonObject.getString("success_time")!=null){
|
|
|
+ refundRecord.setSuccessTime(new DateTime(jsonObject.getString("success_time")).toDate());
|
|
|
+ }
|
|
|
+ refundRecord.setCreateTime(new DateTime(jsonObject.getString("create_time")).toDate());
|
|
|
+ refundRecord.setStatus(jsonObject.getString("status"));
|
|
|
+ refundRecord.setFundsAccount(jsonObject.getString("funds_account"));
|
|
|
+ JSONObject amount = jsonObject.getJSONObject("amount");
|
|
|
+ refundRecord.setTotal(amount.getInteger("total"));
|
|
|
+ refundRecord.setRefund(amount.getInteger("refund"));
|
|
|
+ refundRecord.setPayerTotal(amount.getInteger("payer_total"));
|
|
|
+ refundRecord.setPayerRefund(amount.getInteger("payer_refund"));
|
|
|
+ refundRecord.setSettlementRefund(amount.getInteger("settlement_refund"));
|
|
|
+ refundRecord.setSettlementTotal(amount.getInteger("settlement_total"));
|
|
|
+ refundRecord.setDiscountRefund(amount.getInteger("discount_refund"));
|
|
|
+ refundRecord.setCurrency(amount.getString("currency"));
|
|
|
+ this.save(refundRecord);
|
|
|
+
|
|
|
WxNotifyReturnDTO wxNotifyReturnDTO = new WxNotifyReturnDTO();
|
|
|
wxNotifyReturnDTO.setCode("SUCCESS");
|
|
|
wxNotifyReturnDTO.setMessage("成功");
|
|
@@ -84,4 +111,9 @@ public class RefundRecordServiceImpl extends ServiceImpl<RefundRecordMapper, Ref
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public RefundRecord getByRefundId(String refundId) {
|
|
|
+ return refundRecordMapper.getByRefundId(refundId);
|
|
|
+ }
|
|
|
}
|