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远程停机指令 // push远程停机指令
pileRemoteService.remoteStopCharging(dto.getPileSn(), dto.getConnectorCode()); pileRemoteService.remoteStopCharging(dto.getPileSn(), dto.getConnectorCode());
// 桩计算的消费金额
// 对比一下,是否需要退款
} }
/** /**

View File

@@ -123,9 +123,21 @@ public class OrderBasicInfo extends BaseEntity {
/** /**
* 订单总金额 = 电费总金额 + 服务费总金额 * 订单总金额 = 电费总金额 + 服务费总金额
*/ */
@Excel(name = "订单总金额 = 电费总金额 + 服务费总金额") @Excel(name = "订单总金额")
private BigDecimal orderAmount; 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.domain.ykc.TransactionRecordsData;
import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.MemberWalletEnum; import com.jsowell.common.enums.MemberWalletEnum;
import com.jsowell.common.enums.ykc.BillingTimeEnum; import com.jsowell.common.enums.ykc.*;
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.exception.BusinessException; import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.SecurityUtils; 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.bean.BeanUtils;
import com.jsowell.common.util.id.IdUtils; import com.jsowell.common.util.id.IdUtils;
import com.jsowell.common.util.id.SnowflakeIdWorker; import com.jsowell.common.util.id.SnowflakeIdWorker;
import com.jsowell.pile.domain.OrderAbnormalRecord; import com.jsowell.pile.domain.*;
import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.dto.*;
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.mapper.OrderBasicInfoMapper; import com.jsowell.pile.mapper.OrderBasicInfoMapper;
import com.jsowell.pile.service.IMemberBasicInfoService; import com.jsowell.pile.service.*;
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.transaction.dto.OrderTransactionDTO; import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService; import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.vo.base.OrderAmountDetailVO; 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.OrderVO;
import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO; import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO;
import com.jsowell.pile.vo.uniapp.SendMessageVO; import com.jsowell.pile.vo.uniapp.SendMessageVO;
import com.jsowell.pile.vo.web.BillingTemplateVO; import com.jsowell.pile.vo.web.*;
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.wxpay.common.WeChatPayParameter; import com.jsowell.wxpay.common.WeChatPayParameter;
import com.jsowell.wxpay.dto.WeChatRefundDTO; import com.jsowell.wxpay.dto.WeChatRefundDTO;
import com.jsowell.wxpay.dto.WechatSendMsgDTO; import com.jsowell.wxpay.dto.WechatSendMsgDTO;
@@ -92,11 +52,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Comparator; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.function.Function; import java.util.function.Function;
@@ -545,6 +501,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
orderAmount = payAmount; orderAmount = payAmount;
} }
// 虚拟金额 指订单消费中使用赠送金额支付的部分
BigDecimal virtualAmount = BigDecimal.ZERO;
// 剩余需要退回的金额 residue // 剩余需要退回的金额 residue
BigDecimal residue = payAmount.subtract(orderAmount); BigDecimal residue = payAmount.subtract(orderAmount);
if (residue.compareTo(BigDecimal.ZERO) > 0) { if (residue.compareTo(BigDecimal.ZERO) > 0) {
@@ -584,6 +543,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
if (returnGift != null && giftPayRecord != null) { if (returnGift != null && giftPayRecord != null) {
giftPayRecord.setRefundAmount(returnGift); giftPayRecord.setRefundAmount(returnGift);
updatePayRecordList.add(giftPayRecord); updatePayRecordList.add(giftPayRecord);
// 支付的赠送金额-退回的赠送金额 = 实际使用赠送金额消费的部分
virtualAmount = giftPay.subtract(returnGift);
} }
UpdateMemberBalanceDTO updateMemberBalanceDTO = UpdateMemberBalanceDTO.builder() UpdateMemberBalanceDTO updateMemberBalanceDTO = UpdateMemberBalanceDTO.builder()
.memberId(orderBasicInfo.getMemberId()) .memberId(orderBasicInfo.getMemberId())
@@ -626,6 +587,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// 把交易记录中的用电量,金额等信息 更新到orderBasicInfo和orderDetail // 把交易记录中的用电量,金额等信息 更新到orderBasicInfo和orderDetail
orderBasicInfo.setOrderAmount(orderAmount); // 订单总金额 orderBasicInfo.setOrderAmount(orderAmount); // 订单总金额
orderBasicInfo.setVirtualAmount(virtualAmount); // 虚拟金额
orderBasicInfo.setSettleAmount(orderAmount.subtract(virtualAmount)); // 结算金额
orderBasicInfo.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue()); orderBasicInfo.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue());
orderBasicInfo.setReason(data.getStopReasonMsg()); // 充电停止原因 orderBasicInfo.setReason(data.getStopReasonMsg()); // 充电停止原因
orderBasicInfo.setSettlementTime(DateUtils.getNowDate()); // 结算时间 orderBasicInfo.setSettlementTime(DateUtils.getNowDate()); // 结算时间

View File

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

View File

@@ -208,7 +208,9 @@
<el-table-column label="终止soc" align="center" prop="endSoc" /> <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="chargeStartTime" width="180"/>
<el-table-column label="结束充电时间" align="center" prop="chargeEndTime" 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"> <!--<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button