소스 검색

预充值支付

qzyReal 2 년 전
부모
커밋
193c7249f4

+ 1 - 1
sp-server/src/main/java/com/pj/api/open/service/OpenService.java

@@ -310,7 +310,7 @@ public class OpenService {
                 }
             }
         }
-        if (autoPayCount == businessList.size()&&businessMoney.intValue()>0) {
+        if (autoPayCount == businessList.size()) {
             log.info("车辆到达卡口进行扣停车费和业务费:{}", carNo);
             //自动缴费
           boolean flag=  automaticPay.payBusinessAndPartMoney(businessList,businessMoney,tbBusinessCar,chinaCarMoney,yueCarMoney);

+ 5 - 0
sp-server/src/main/java/com/pj/api/wx/service/WxService.java

@@ -17,6 +17,7 @@ import com.pj.api.wx.vo.PrePayVO;
 import com.pj.current.config.MyConfig;
 import com.pj.current.config.PartConfig;
 import com.pj.current.config.WxConfig;
+import com.pj.project.tb_account.AutomaticPay;
 import com.pj.project.tb_account.TbAccountService;
 import com.pj.project.tb_business.TbBusiness;
 import com.pj.project.tb_business.TbBusinessService;
@@ -88,6 +89,8 @@ public class WxService {
     private WxSendMsgService wxSendMsgService;
     @Resource
     private TbInvoiceOrderService tbInvoiceOrderService;
+    @Resource
+    private AutomaticPay automaticPay;
 
 
     /**
@@ -241,6 +244,8 @@ public class WxService {
                 }
                 car.setPay(1).setMoney(car.getMoney().add(price)).setPayTime(payTime).setPayType(TbBusinessCar.PayTypeEnum.HAS_PAY_TYPE.getType());
                 tbBusinessCarService.updateById(car);
+                //支付完之后要解绑
+                automaticPay.unbindRun(car.getCarNo());
             }
             tbFeeDetailsService.chargeParkFee(cars, transactionId, outTradeNo, payTime, TbBusiness.PayType.WX_PAY);//添加cars的收费明细
             String businessId = attach.getB();

+ 15 - 4
sp-server/src/main/java/com/pj/project/tb_account/AutomaticPay.java

@@ -586,6 +586,7 @@ public class AutomaticPay {
 
     /**
      * 支付停车费
+     *
      * @param tbBusinessCar
      * @param partMoney
      * @param now
@@ -623,6 +624,7 @@ public class AutomaticPay {
 
     /**
      * 支付停车费和业务费
+     *
      * @param businessList
      * @param businessMoney
      * @param tbBusinessCar
@@ -636,8 +638,17 @@ public class AutomaticPay {
                                            BigDecimal chinaCarMoney,
                                            BigDecimal yueCarMoney) {
         Date now = new Date();
-        String carNo = tbBusinessCar.getCarNo();
-        TbDeductionBind bind = tbDeductionBindService.getBindCarByPlate(carNo);
+        TbDeductionBind bind = null;
+        for (TbBusiness tbBusiness : businessList) {
+            List<TbBusinessCar> cars = tbBusinessCarService.findOtherBusinessCar(tbBusiness.getId());
+            for (TbBusinessCar car : cars) {
+                String carNo = car.getCarNo();
+                bind = tbDeductionBindService.getBindCarByPlate(carNo);
+                if (bind != null) {
+                    break;
+                }
+            }
+        }
         //未绑定
         if (bind == null) {
             return false;
@@ -667,11 +678,11 @@ public class AutomaticPay {
         List<PriceBO> priceBOList = new ArrayList<PriceBO>() {{
             add(new PriceBO(tbBusinessCar.getId(), tbBusinessCar.getMoney()));
         }};
-        String plate=tbBusinessCar.getCarNo();
+        String plate = tbBusinessCar.getCarNo();
         String no = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + RandomUtil.randomNumbers(4);
         List<TbFeeDetails> parkFeeDetailsList = tbFeeDetailsService.chargeParkFee(priceBOList, null, null, now, TbBusiness.PayType.PER_PAY);
         this.createTbDeductionRecord(parkFeeDetailsList, tbAccount, plate, bind.getCustomerName(), no);
-        List<TbFeeDetails> tbFeeDetails =  tbFeeDetailsService.chargeBusinessFee(tbBusinessItems, null, null, now, TbBusiness.PayType.PER_PAY);
+        List<TbFeeDetails> tbFeeDetails = tbFeeDetailsService.chargeBusinessFee(tbBusinessItems, null, null, now, TbBusiness.PayType.PER_PAY);
         createTbDeductionRecord(tbFeeDetails, tbAccount, plate, bind.getCustomerName(), no);
         tbFeeStatisticsService.addOrUpdateStatistic(now);//更新当前日期的日统计
         return true;