mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-25 13:35:15 +08:00
update 华为平台生成订单、结算订单方法
This commit is contained in:
@@ -144,6 +144,13 @@ public abstract class AbstractProgramLogic implements InitializingBean {
|
||||
*/
|
||||
public abstract void settleOrder(TransactionRecordsData data, OrderBasicInfo orderBasicInfo);
|
||||
|
||||
/**
|
||||
* 第三方平台结算订单(目前给华为用)
|
||||
* @param data
|
||||
* @param orderBasicInfo
|
||||
*/
|
||||
public abstract void settleOrderForThirdParty(TransactionRecordsData data, OrderBasicInfo orderBasicInfo);
|
||||
|
||||
/**
|
||||
* 订单退款
|
||||
*/
|
||||
@@ -546,6 +553,30 @@ public abstract class AbstractProgramLogic implements InitializingBean {
|
||||
return orderDetail;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取更新数据后的orderDetail对象(给第三方平台结算订单用)
|
||||
* @param orderBasicInfo
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
protected OrderDetail returnUpdateOrderDetailForThirdParty(OrderBasicInfo orderBasicInfo, TransactionRecordsData data){
|
||||
String orderCode = orderBasicInfo.getOrderCode();
|
||||
BigDecimal orderAmount = orderBasicInfo.getOrderAmount();
|
||||
// 更新订单详情 查询订单详情 修改订单数据
|
||||
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
|
||||
// 总用电量
|
||||
orderDetail.setTotalUsedElectricity(new BigDecimal(data.getTotalElectricity()));
|
||||
// 总电费
|
||||
orderDetail.setTotalElectricityAmount(new BigDecimal(data.getTotalElectricityAmount()));
|
||||
// 总服务费
|
||||
orderDetail.setTotalServiceAmount(new BigDecimal(data.getTotalServiceAmount()));
|
||||
// 总订单金额
|
||||
orderDetail.setTotalOrderAmount(orderAmount);
|
||||
|
||||
return orderDetail;
|
||||
}
|
||||
|
||||
/**
|
||||
* 余额支付 计算需要退回的金额
|
||||
* 【公共方法】
|
||||
|
||||
@@ -406,6 +406,45 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
|
||||
logger.info("结算订单end:{} OrderTransactionDTO:{}", orderBasicInfo.getOrderCode(), JSON.toJSONString(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 第三方平台结算订单(目前给华为用)
|
||||
* @param data
|
||||
* @param orderBasicInfo
|
||||
*/
|
||||
public void settleOrderForThirdParty(TransactionRecordsData data, OrderBasicInfo orderBasicInfo) {
|
||||
logger.info("第三方平台结算订单start data:{}, orderBasicInfo:{}", data.toString(), JSON.toJSONString(orderBasicInfo));
|
||||
// 判断订单状态
|
||||
if (StringUtils.equals(orderBasicInfo.getOrderStatus(), OrderStatusEnum.ORDER_COMPLETE.getValue())) {
|
||||
logger.info("结算订单:{}, 是订单完成状态", orderBasicInfo.getOrderCode());
|
||||
return;
|
||||
}
|
||||
// 获取更新数据后的orderBasicInfo对象
|
||||
returnUpdateOrderBasicInfo(orderBasicInfo, data);
|
||||
|
||||
// 获取更新数据后的orderDetail对象/更新订单详情 查询订单详情 修改订单数据
|
||||
OrderDetail orderDetail = returnUpdateOrderDetailForThirdParty(orderBasicInfo, data);
|
||||
|
||||
// 计算订单折扣
|
||||
// calculateOrderDiscountsV2(orderBasicInfo, orderDetail);
|
||||
|
||||
// 更新数据库
|
||||
OrderTransactionDTO dto = new OrderTransactionDTO();
|
||||
dto.setOrderBasicInfo(orderBasicInfo);
|
||||
dto.setOrderDetail(orderDetail);
|
||||
transactionService.doUpdateOrder(dto);
|
||||
|
||||
// 订单退款
|
||||
refundOrder(orderBasicInfo);
|
||||
|
||||
// 发送停止充电订阅消息
|
||||
sendMsg(orderBasicInfo);
|
||||
|
||||
// 从redis中取出实时记录保存到表中
|
||||
realTimeMonitorDataRedis2DB(orderBasicInfo.getTransactionCode(), orderBasicInfo.getOrderCode());
|
||||
|
||||
logger.info("结算订单end:{} OrderTransactionDTO:{}", orderBasicInfo.getOrderCode(), JSON.toJSONString(dto));
|
||||
}
|
||||
|
||||
// uniApp 发送停止充电订阅消息
|
||||
private void sendMsg(OrderBasicInfo orderBasicInfo) {
|
||||
try {
|
||||
|
||||
@@ -413,6 +413,46 @@ public class NotDelayMerchantProgramLogic extends AbstractProgramLogic {
|
||||
logger.info("结算订单end:{} OrderTransactionDTO:{}", orderBasicInfo.getOrderCode(), JSON.toJSONString(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 第三方平台结算订单(目前给华为用)
|
||||
* @param data
|
||||
* @param orderBasicInfo
|
||||
*/
|
||||
@Override
|
||||
public void settleOrderForThirdParty(TransactionRecordsData data, OrderBasicInfo orderBasicInfo) {
|
||||
logger.info("第三方平台结算订单start data:{}, orderBasicInfo:{}", data.toString(), JSON.toJSONString(orderBasicInfo));
|
||||
// 判断订单状态
|
||||
if (StringUtils.equals(orderBasicInfo.getOrderStatus(), OrderStatusEnum.ORDER_COMPLETE.getValue())) {
|
||||
logger.info("结算订单:{}, 是订单完成状态", orderBasicInfo.getOrderCode());
|
||||
return;
|
||||
}
|
||||
// 获取更新数据后的orderBasicInfo对象
|
||||
returnUpdateOrderBasicInfo(orderBasicInfo, data);
|
||||
|
||||
// 获取更新数据后的orderDetail对象/更新订单详情 查询订单详情 修改订单数据
|
||||
OrderDetail orderDetail = returnUpdateOrderDetailForThirdParty(orderBasicInfo, data);
|
||||
|
||||
// 计算订单折扣
|
||||
// calculateOrderDiscountsV2(orderBasicInfo, orderDetail);
|
||||
|
||||
// 更新数据库
|
||||
OrderTransactionDTO dto = new OrderTransactionDTO();
|
||||
dto.setOrderBasicInfo(orderBasicInfo);
|
||||
dto.setOrderDetail(orderDetail);
|
||||
transactionService.doUpdateOrder(dto);
|
||||
|
||||
// 订单退款
|
||||
refundOrder(orderBasicInfo);
|
||||
|
||||
// 发送停止充电订阅消息
|
||||
sendMsg(orderBasicInfo);
|
||||
|
||||
// 从redis中取出实时记录保存到表中
|
||||
realTimeMonitorDataRedis2DB(orderBasicInfo.getTransactionCode(), orderBasicInfo.getOrderCode());
|
||||
|
||||
logger.info("结算订单end:{} OrderTransactionDTO:{}", orderBasicInfo.getOrderCode(), JSON.toJSONString(dto));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void refundOrder(OrderBasicInfo orderBasicInfo) {
|
||||
BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
|
||||
|
||||
Reference in New Issue
Block a user