|
@@ -141,7 +141,7 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
|
|
|
}
|
|
|
|
|
|
|
|
|
- public void chargeParkFee(List<PriceBO> cars, String transactionId) {
|
|
|
+ public void chargeParkFee(List<PriceBO> cars, String transactionId, String outTradeNo) {
|
|
|
for (PriceBO bo1 : cars) {
|
|
|
if(bo1.getP().compareTo(BigDecimal.valueOf(0)) == 0){
|
|
|
continue;
|
|
@@ -154,9 +154,11 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
|
|
|
TbFeeDetails nightParkFee = new TbFeeDetails();
|
|
|
TbFeeDetails dayParkFee = new TbFeeDetails();
|
|
|
String transactionIdStr = "";
|
|
|
+ String outTradeNoStr = "";
|
|
|
for (TbFeeDetails oldFee : oldFeeList) {
|
|
|
if(!StrUtil.isEmpty(oldFee.getTransactionId())){
|
|
|
transactionIdStr = oldFee.getTransactionId();
|
|
|
+ outTradeNoStr = oldFee.getOutTradeNo();
|
|
|
}
|
|
|
if(StrUtil.equals(oldFee.getItemTypeName(), "白天停车")){
|
|
|
dayParkFee = oldFee;
|
|
@@ -166,13 +168,14 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
|
|
|
}
|
|
|
}
|
|
|
transactionIdStr = transactionIdStr.equals("") ? transactionId : transactionIdStr + "," + transactionId;
|
|
|
+ outTradeNoStr = outTradeNoStr.equals("") ? outTradeNo : outTradeNoStr + "," + outTradeNo;
|
|
|
BigDecimal baseNightPrice = partConfig.getBasePrice().add(partConfig.getExtraPrice());
|
|
|
BigDecimal[] qr = paidMoney.divideAndRemainder(baseNightPrice);//商和余数的数组,商为夜间停车次数,余数为白天停车费用。
|
|
|
BigDecimal nightFeeNum = qr[0];
|
|
|
if(nightFeeNum.compareTo(BigDecimal.valueOf(0)) > 0){
|
|
|
nightParkFee.setNum(nightFeeNum.intValue()).setItemTypeName("夜间停车")
|
|
|
.setUnitPrice(baseNightPrice).setItemPrice(baseNightPrice.multiply(nightFeeNum));
|
|
|
- setFee(nightParkFee, car, business, transactionIdStr);
|
|
|
+ setFee(nightParkFee, car, business, transactionIdStr, outTradeNoStr);
|
|
|
saveOrUpdate(nightParkFee);
|
|
|
if(qr[1].compareTo(BigDecimal.valueOf(0)) == 0 && dayParkFee.getId() != null){
|
|
|
delete(Long.valueOf(dayParkFee.getId()));
|
|
@@ -180,14 +183,14 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
|
|
|
}
|
|
|
if(qr[1].compareTo(BigDecimal.valueOf(0)) > 0){
|
|
|
dayParkFee.setNum(1).setItemTypeName("白天停车").setUnitPrice(qr[1]).setItemPrice(qr[1]);
|
|
|
- setFee(dayParkFee, car, business, transactionIdStr);
|
|
|
+ setFee(dayParkFee, car, business, transactionIdStr, outTradeNoStr);
|
|
|
saveOrUpdate(dayParkFee);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void setFee(TbFeeDetails parkFee, TbBusinessCar car, TbBusiness business, String transactionId){
|
|
|
+ private void setFee(TbFeeDetails parkFee, TbBusinessCar car, TbBusiness business, String transactionId, String outTradeNo){
|
|
|
Date now = new Date();
|
|
|
String nowStr = DateUtil.format(now, "yyyy-MM-dd HH:mm:ss");
|
|
|
String toDay = DateUtil.format(now, "yyyy-MM-dd");
|
|
@@ -200,7 +203,7 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
|
|
|
.setFeeType(TbFeeDetails.fee.PARK_FEE.getCode())
|
|
|
.setPayDay(toDay).setPayType(3).setCreateTime(now)
|
|
|
.setIsSettle(1).setPayMode(1).setPayTime(nowStr)
|
|
|
- .setTransactionId(transactionId)
|
|
|
+ .setTransactionId(transactionId).setOutTradeNo(outTradeNo)
|
|
|
.setBusinessCarNo(car.getNo());
|
|
|
if (business!=null){
|
|
|
parkFee.setWeight(business.getNetWeight()).setBusinessNo(business.getNo());
|