mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-14 20:30:04 +08:00
订单详情页新增退款信息
This commit is contained in:
@@ -11,6 +11,7 @@ import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.huifu.adapay.core.AdapayCore;
|
||||
import com.huifu.adapay.core.util.AdapaySign;
|
||||
import com.jsowell.adapay.response.PaymentReverseResponse;
|
||||
import com.jsowell.common.constant.Constants;
|
||||
import com.jsowell.common.core.domain.vo.AuthorizedDeptVO;
|
||||
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
||||
@@ -474,6 +475,25 @@ public class OrderService {
|
||||
vo.setPayRecordList(payRecordList);
|
||||
}
|
||||
|
||||
// 查询退款明细
|
||||
List<OrderDetailInfoVO.OrderRefundInfo> orderRefundInfoList = Lists.newArrayList();
|
||||
List<PaymentReverseResponse> paymentReverseResponses = orderBasicInfoService.queryOrderAdapayRefund(orderBasicInfo);
|
||||
if (CollectionUtils.isNotEmpty(paymentReverseResponses)) {
|
||||
OrderDetailInfoVO.OrderRefundInfo refundInfo;
|
||||
for (PaymentReverseResponse reverseResponse : paymentReverseResponses) {
|
||||
refundInfo = new OrderDetailInfoVO.OrderRefundInfo();
|
||||
refundInfo.setReverseId(reverseResponse.getId());
|
||||
refundInfo.setPaymentId(reverseResponse.getPayment_id());
|
||||
refundInfo.setReverseAmt(reverseResponse.getReverse_amt());
|
||||
LocalDateTime createdTime = DateUtils.timestampToDatetime(Long.parseLong(reverseResponse.getCreated_time()));
|
||||
refundInfo.setCreatedTime(DateUtils.formatDateTime(createdTime));
|
||||
LocalDateTime succeedTime = DateUtils.timestampToDatetime(Long.parseLong(reverseResponse.getSucceed_time()));
|
||||
refundInfo.setSucceedTime(DateUtils.formatDateTime(succeedTime));
|
||||
orderRefundInfoList.add(refundInfo);
|
||||
}
|
||||
}
|
||||
vo.setOrderRefundInfoList(orderRefundInfoList);
|
||||
|
||||
// 查订单明细
|
||||
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
|
||||
if (orderDetail != null) {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.jsowell.common.util;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -14,11 +13,7 @@ import java.lang.management.ManagementFactory;
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.*;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
@@ -973,4 +968,19 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||
String lastDayOfMonth = sdf.format(cale.getTime());
|
||||
return lastDayOfMonth;
|
||||
}
|
||||
|
||||
/**
|
||||
* 时间戳 转 LocalDateTime
|
||||
* @param timestamp 时间戳(单位:毫秒)
|
||||
* @return
|
||||
*/
|
||||
public static LocalDateTime timestampToDatetime(long timestamp){
|
||||
Instant instant = Instant.ofEpochMilli(timestamp);
|
||||
return LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
|
||||
}
|
||||
|
||||
public static long datetimeToTimestamp(LocalDateTime localDateTime){
|
||||
long timestamp = localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli();
|
||||
return timestamp;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.jsowell.pile.service;
|
||||
|
||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||
import com.jsowell.adapay.response.PaymentReverseResponse;
|
||||
import com.jsowell.adapay.vo.OrderSettleResult;
|
||||
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
||||
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
|
||||
@@ -336,7 +337,9 @@ public interface IOrderBasicInfoService {
|
||||
*/
|
||||
void payOrderSuccessCallback(PayOrderSuccessCallbackDTO dto);
|
||||
|
||||
/**
|
||||
List<PaymentReverseResponse> queryOrderAdapayRefund(OrderBasicInfo orderBasicInfo);
|
||||
|
||||
/**
|
||||
* 重试订单退款
|
||||
* @param orderCode 订单编号
|
||||
*/
|
||||
|
||||
@@ -2766,6 +2766,33 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询订单推款记录
|
||||
* @param orderBasicInfo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<PaymentReverseResponse> queryOrderAdapayRefund(OrderBasicInfo orderBasicInfo) {
|
||||
List<PaymentReverseResponse> resultList = Lists.newArrayList();
|
||||
// 查到原汇付支付id
|
||||
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderBasicInfo.getOrderCode());
|
||||
if (adapayCallbackRecord == null) {
|
||||
return resultList;
|
||||
}
|
||||
|
||||
// 获取appId
|
||||
String wechatAppId = pileMerchantInfoService.queryAppIdByMerchantId(orderBasicInfo.getMerchantId());
|
||||
|
||||
// 通过支付id查询退款记录
|
||||
String paymentId = adapayCallbackRecord.getPaymentId();
|
||||
try {
|
||||
resultList = adapayMemberService.queryPaymentReverse(paymentId, wechatAppId);
|
||||
} catch (BaseAdaPayException e) {
|
||||
logger.error("查询支付撤销对象发生异常", e);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 重试订单退款
|
||||
* @param orderCode 订单编号
|
||||
@@ -2788,6 +2815,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
throw new BusinessException("", "订单不是微信支付");
|
||||
}
|
||||
|
||||
String memberId = orderBasicInfo.getMemberId();
|
||||
BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
|
||||
|
||||
// 查到原汇付支付id
|
||||
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode);
|
||||
if (adapayCallbackRecord == null) {
|
||||
@@ -2799,9 +2829,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
|
||||
// 通过支付id查询退款记录
|
||||
String paymentId = adapayCallbackRecord.getPaymentId();
|
||||
String memberId = orderBasicInfo.getMemberId();
|
||||
BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
|
||||
List<PaymentReverseResponse> paymentReverses = adapayMemberService.queryPaymentReverse(paymentId, wechatAppId);
|
||||
|
||||
List<PaymentReverseResponse> paymentReverses = queryOrderAdapayRefund(orderBasicInfo);
|
||||
if (CollectionUtils.isEmpty(paymentReverses)) {
|
||||
// 如果没有退款过,重新执行一遍退款
|
||||
PaymentReverseResponse response = adapayMemberService.createPaymentReverseRequest(
|
||||
|
||||
@@ -29,7 +29,7 @@ public class OrderDetailInfoVO {
|
||||
// 支付信息
|
||||
private List<PayRecord> payRecordList;
|
||||
|
||||
|
||||
private List<OrderRefundInfo> orderRefundInfoList;
|
||||
|
||||
// 枪口监控信息
|
||||
private List<PileMonitorData> realTimeMonitorDataList;
|
||||
@@ -87,4 +87,13 @@ public class OrderDetailInfoVO {
|
||||
private String SOC; // soc
|
||||
private String chargingTime; // 充电时长(分钟)
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class OrderRefundInfo{
|
||||
private String paymentId; // 支付交易对象id
|
||||
private String reverseId; // 支付撤销对象id
|
||||
private String reverseAmt; // 退款金额
|
||||
private String createdTime; // 退款创建时间
|
||||
private String succeedTime; // 退款成功时间
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ charset = utf-8
|
||||
# 缩进风格,可选space、tab
|
||||
indent_style = space
|
||||
# 缩进的空格数
|
||||
indent_size = 4
|
||||
indent_size = 2
|
||||
# 结尾换行符,可选lf、cr、crlf
|
||||
end_of_line = lf
|
||||
# 在文件结尾插入新行
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
<div class="marginTop"></div>
|
||||
</el-card>
|
||||
|
||||
<!-- 支付信息-->
|
||||
<!-- 支付信息-->
|
||||
<el-card class="cardStyle">
|
||||
<h3>支付信息</h3>
|
||||
<el-table style="width: 100%" :data="payDetail" border>
|
||||
@@ -168,12 +168,25 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="payTime" label="支付时间" align="center"/>
|
||||
<el-table-column prop="outTradeNo" label="商务单号" align="center"/>
|
||||
<el-table-column prop="outTradeNo" label="支付流水号" align="center"/>
|
||||
<el-table-column prop="refundAmount" label="退款金额" align="center"/>
|
||||
</el-table>
|
||||
<div class="marginTop"></div>
|
||||
</el-card>
|
||||
|
||||
<!-- 退款信息 -->
|
||||
<el-card class="cardStyle">
|
||||
<h3>退款信息</h3>
|
||||
<el-table style="width: 100%" :data="orderRefundInfoList" border>
|
||||
<el-table-column prop="paymentId" label="支付流水号" align="center"/>
|
||||
<el-table-column prop="reverseId" label="退款流水号" align="center"/>
|
||||
<el-table-column prop="reverseAmt" label="退款金额" align="center"/>
|
||||
<el-table-column prop="createdTime" label="退款申请时间" align="center"/>
|
||||
<el-table-column prop="succeedTime" label="退款成功时间" align="center"/>
|
||||
</el-table>
|
||||
<div class="marginTop"></div>
|
||||
</el-card>
|
||||
|
||||
<!-- 设备信息 -->
|
||||
<el-card class="cardStyle">
|
||||
<h3>设备信息</h3>
|
||||
@@ -232,6 +245,7 @@ export default {
|
||||
orderList: this.$route.params.orderCode,
|
||||
orderInfo: [],
|
||||
payDetail: [],
|
||||
orderRefundInfoList: [],
|
||||
userInfo: [],
|
||||
obj: {},
|
||||
orderDetail:[],
|
||||
@@ -304,6 +318,7 @@ export default {
|
||||
console.log("this.orderInfo", this.orderDetail);
|
||||
this.payDetail = data.payRecordList;
|
||||
console.log("this.payDetail", this.payDetail);
|
||||
this.orderRefundInfoList = data.orderRefundInfoList;
|
||||
this.userInfo = [data.memberInfo];
|
||||
console.log("this.userInfo", this.userInfo);
|
||||
this.pileIn = [data.pileInfo];
|
||||
|
||||
Reference in New Issue
Block a user