This commit is contained in:
Lemon
2023-05-24 10:56:02 +08:00
5 changed files with 45 additions and 57 deletions

View File

@@ -590,11 +590,6 @@ public class OrderService {
// push远程停机指令
pileRemoteService.remoteStopCharging(dto.getPileSn(), dto.getConnectorCode());
// 桩计算的消费金额
// 对比一下,是否需要退款
}
/**

View File

@@ -123,9 +123,21 @@ public class OrderBasicInfo extends BaseEntity {
/**
* 订单总金额 = 电费总金额 + 服务费总金额
*/
@Excel(name = "订单总金额 = 电费总金额 + 服务费总金额")
@Excel(name = "订单总金额")
private BigDecimal orderAmount;
/**
* 虚拟金额
*/
@Excel(name = "虚拟金额")
private BigDecimal virtualAmount;
/**
* 结算金额
*/
@Excel(name = "结算金额")
private BigDecimal settleAmount;
/**
* 充电开始时间
*/

View File

@@ -14,15 +14,7 @@ import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.MemberWalletEnum;
import com.jsowell.common.enums.ykc.BillingTimeEnum;
import com.jsowell.common.enums.ykc.OrderPayModeEnum;
import com.jsowell.common.enums.ykc.OrderPayStatusEnum;
import com.jsowell.common.enums.ykc.OrderStatusEnum;
import com.jsowell.common.enums.ykc.PayModeEnum;
import com.jsowell.common.enums.ykc.PileConnectorDataBaseStatusEnum;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.enums.ykc.StartModeEnum;
import com.jsowell.common.enums.ykc.StartTypeEnum;
import com.jsowell.common.enums.ykc.*;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.SecurityUtils;
@@ -30,37 +22,10 @@ import com.jsowell.common.util.StringUtils;
import com.jsowell.common.util.bean.BeanUtils;
import com.jsowell.common.util.id.IdUtils;
import com.jsowell.common.util.id.SnowflakeIdWorker;
import com.jsowell.pile.domain.OrderAbnormalRecord;
import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.domain.OrderDetail;
import com.jsowell.pile.domain.OrderMonitorData;
import com.jsowell.pile.domain.OrderPayRecord;
import com.jsowell.pile.domain.PileAuthCard;
import com.jsowell.pile.domain.PileBasicInfo;
import com.jsowell.pile.domain.WxpayCallbackRecord;
import com.jsowell.pile.domain.WxpayRefundCallback;
import com.jsowell.pile.dto.GenerateOrderDTO;
import com.jsowell.pile.dto.IndexQueryDTO;
import com.jsowell.pile.dto.QueryOrderDTO;
import com.jsowell.pile.dto.QueryPersonPileDTO;
import com.jsowell.pile.dto.QueryStartChargeDTO;
import com.jsowell.pile.dto.QueryStationInfoDTO;
import com.jsowell.pile.dto.RefundableWxPayOrderData;
import com.jsowell.pile.domain.*;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.mapper.OrderBasicInfoMapper;
import com.jsowell.pile.service.IMemberBasicInfoService;
import com.jsowell.pile.service.IOrderAbnormalRecordService;
import com.jsowell.pile.service.IOrderBasicInfoService;
import com.jsowell.pile.service.IOrderPayRecordService;
import com.jsowell.pile.service.IPileAuthCardService;
import com.jsowell.pile.service.IPileBasicInfoService;
import com.jsowell.pile.service.IPileBillingTemplateService;
import com.jsowell.pile.service.IPileConnectorInfoService;
import com.jsowell.pile.service.IPileMerchantInfoService;
import com.jsowell.pile.service.IPileStationInfoService;
import com.jsowell.pile.service.OrderMonitorDataService;
import com.jsowell.pile.service.WechatPayService;
import com.jsowell.pile.service.WxpayCallbackRecordService;
import com.jsowell.pile.service.WxpayRefundCallbackService;
import com.jsowell.pile.service.*;
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
@@ -71,12 +36,7 @@ import com.jsowell.pile.vo.uniapp.MemberVO;
import com.jsowell.pile.vo.uniapp.OrderVO;
import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO;
import com.jsowell.pile.vo.uniapp.SendMessageVO;
import com.jsowell.pile.vo.web.BillingTemplateVO;
import com.jsowell.pile.vo.web.IndexOrderInfoVO;
import com.jsowell.pile.vo.web.OrderListVO;
import com.jsowell.pile.vo.web.OrderTotalDataVO;
import com.jsowell.pile.vo.web.PileConnectorInfoVO;
import com.jsowell.pile.vo.web.UpdateMemberBalanceDTO;
import com.jsowell.pile.vo.web.*;
import com.jsowell.wxpay.common.WeChatPayParameter;
import com.jsowell.wxpay.dto.WeChatRefundDTO;
import com.jsowell.wxpay.dto.WechatSendMsgDTO;
@@ -92,11 +52,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
@@ -545,6 +501,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
orderAmount = payAmount;
}
// 虚拟金额 指订单消费中使用赠送金额支付的部分
BigDecimal virtualAmount = BigDecimal.ZERO;
// 剩余需要退回的金额 residue
BigDecimal residue = payAmount.subtract(orderAmount);
if (residue.compareTo(BigDecimal.ZERO) > 0) {
@@ -584,6 +543,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
if (returnGift != null && giftPayRecord != null) {
giftPayRecord.setRefundAmount(returnGift);
updatePayRecordList.add(giftPayRecord);
// 支付的赠送金额-退回的赠送金额 = 实际使用赠送金额消费的部分
virtualAmount = giftPay.subtract(returnGift);
}
UpdateMemberBalanceDTO updateMemberBalanceDTO = UpdateMemberBalanceDTO.builder()
.memberId(orderBasicInfo.getMemberId())
@@ -626,6 +587,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// 把交易记录中的用电量,金额等信息 更新到orderBasicInfo和orderDetail
orderBasicInfo.setOrderAmount(orderAmount); // 订单总金额
orderBasicInfo.setVirtualAmount(virtualAmount); // 虚拟金额
orderBasicInfo.setSettleAmount(orderAmount.subtract(virtualAmount)); // 结算金额
orderBasicInfo.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue());
orderBasicInfo.setReason(data.getStopReasonMsg()); // 充电停止原因
orderBasicInfo.setSettlementTime(DateUtils.getNowDate()); // 结算时间

View File

@@ -20,6 +20,8 @@
<result property="payAmount" column="pay_amount"/>
<result property="payTime" column="pay_time"/>
<result property="orderAmount" column="order_amount"/>
<result property="virtualAmount" column="virtual_amount"/>
<result property="settleAmount" column="settle_amount"/>
<result property="chargeStartTime" column="charge_start_time"/>
<result property="chargeEndTime" column="charge_end_time"/>
<result property="startType" column="start_type"/>
@@ -98,6 +100,8 @@
pay_amount,
pay_time,
order_amount,
virtual_amount,
settle_amount,
charge_start_time,
charge_end_time,
start_type,
@@ -320,6 +324,12 @@
<if test="orderAmount != null">
order_amount,
</if>
<if test="virtualAmount != null">
virtual_amount,
</if>
<if test="settleAmount != null">
settle_amount,
</if>
<if test="chargeStartTime != null">
charge_start_time,
</if>
@@ -499,6 +509,12 @@
<if test="orderAmount != null">
order_amount = #{orderAmount},
</if>
<if test="virtualAmount != null">
virtual_amount = #{virtualAmount},
</if>
<if test="settleAmount != null">
settle_amount = #{settleAmount},
</if>
<if test="chargeStartTime != null">
charge_start_time = #{chargeStartTime},
</if>

View File

@@ -208,7 +208,9 @@
<el-table-column label="终止soc" align="center" prop="endSoc" />
<el-table-column label="开始充电时间" align="center" prop="chargeStartTime" width="180"/>
<el-table-column label="结束充电时间" align="center" prop="chargeEndTime" width="180"/>
<el-table-column label="订单总金额" align="center" prop="orderAmount" width="100px" fixed="right"/>
<el-table-column label="总消费金额" align="center" prop="orderAmount" width="100px" fixed="right"/>
<el-table-column label="虚拟金额" align="center" prop="orderAmount" width="100px" fixed="right"/>
<el-table-column label="对账金额" align="center" prop="orderAmount" width="100px" fixed="right"/>
<!--<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button