فهرست منبع

Merge branch 'master' of http://47.105.116.204:3000/suxinghua/JDD-PAY-NEW

jk-GitHub-coder 3 سال پیش
والد
کامیت
78823ea5e1
1فایلهای تغییر یافته به همراه50 افزوده شده و 16 حذف شده
  1. 50 16
      YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

+ 50 - 16
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -1219,22 +1219,56 @@ public class PayController {
                             stationInfo.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));
                             StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
                             if(stationInfos.getIsLngFlagGroup() !=null && stationInfos.getIsLngFlagGroup().equals("1")){
-                                //等于1表示次要业务:LNG集团平台加气(可能会出现); 插入油站余额记录
-                                StationBalanceChange stationBalanceChange = new StationBalanceChange();
-                                stationBalanceChange.setStationId(stationInfos.getStationId());
-                                stationBalanceChange.setAmt(Double.valueOf(infoMap.get("sellAmt").toString()));
-                                stationBalanceChange.setCreateTime(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(infoMap.get("payDate").toString()));
-                                stationBalanceChange.setType("-");
-                                stationBalanceChange.setOrderNo(ordNo);
-                                //生成记录
-                                payOrderService.insertStationBalanceExchange(stationBalanceChange);
-                                StationInfo s = new StationInfo();
-                                BigDecimal subtract = new BigDecimal(String.valueOf(stationInfos.getBalance())).subtract(new BigDecimal(infoMap.get("sellAmt").toString()));
-                                s.setBalance(subtract.doubleValue());
-                                s.setStationId(stationInfos.getStationId());
-                                //更新油站余额
-                                stationService.updateStationBalance(s);
-                                logger.info("LNG加气平台支付更新余额完成!");
+
+                                //余额减少加锁
+                                synchronized (this){
+                                    //Thread.currentThread().getName();
+                                    logger.info("当前线程Id:" + Thread.currentThread().getId());
+                                    logger.info("当前线程名称:" + Thread.currentThread().getName());
+                                    logger.info("随行付返回的订单号:" + ordNo);
+                                    logger.info("当前要扣减余额的订单号:" + infoMap.get("orderNo").toString());
+                                    //等于1表示次要业务:LNG集团平台加气(可能会出现); 插入油站余额记录
+                                    StationInfo sta= new StationInfo();
+                                    sta.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));
+                                    StationInfo staInfoResult = stationService.selectStationBalance(stationInfo);
+
+                                    //扣余额
+                                    StationBalanceChange stationBalanceChange = new StationBalanceChange();
+                                    stationBalanceChange.setStationId(staInfoResult.getStationId());
+                                    stationBalanceChange.setAmt(Double.valueOf(infoMap.get("sellAmt").toString()));
+                                    stationBalanceChange.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(infoMap.get("payDate").toString()));
+                                    stationBalanceChange.setType("-");
+                                    stationBalanceChange.setOrderNo(ordNo);
+                                    stationBalanceChange.setNowAmt(staInfoResult.getBalance());
+                                    //生成记录
+                                    payOrderService.insertStationBalanceExchange(stationBalanceChange);
+                                    StationInfo s = new StationInfo();
+                                    logger.info("当前油站余额:" + staInfoResult.getBalance().toString());
+                                    BigDecimal subtract = new BigDecimal(String.valueOf(staInfoResult.getBalance())).subtract(new BigDecimal(infoMap.get("sellAmt").toString()));
+                                    s.setBalance(subtract.doubleValue());
+                                    s.setStationId(staInfoResult.getStationId());
+                                    //更新油站余额
+                                    logger.info("本次订单: "+ infoMap.get("orderNo").toString() +"后油站余额:" + subtract.toString());
+                                    stationService.updateStationBalance(s);
+                                    logger.info("LNG加气平台支付更新余额完成!");
+                                }
+
+//                                //等于1表示次要业务:LNG集团平台加气(可能会出现); 插入油站余额记录
+//                                StationBalanceChange stationBalanceChange = new StationBalanceChange();
+//                                stationBalanceChange.setStationId(stationInfos.getStationId());
+//                                stationBalanceChange.setAmt(Double.valueOf(infoMap.get("sellAmt").toString()));
+//                                stationBalanceChange.setCreateTime(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(infoMap.get("payDate").toString()));
+//                                stationBalanceChange.setType("-");
+//                                stationBalanceChange.setOrderNo(ordNo);
+//                                //生成记录
+//                                payOrderService.insertStationBalanceExchange(stationBalanceChange);
+//                                StationInfo s = new StationInfo();
+//                                BigDecimal subtract = new BigDecimal(String.valueOf(stationInfos.getBalance())).subtract(new BigDecimal(infoMap.get("sellAmt").toString()));
+//                                s.setBalance(subtract.doubleValue());
+//                                s.setStationId(stationInfos.getStationId());
+//                                //更新油站余额
+//                                stationService.updateStationBalance(s);
+//                                logger.info("LNG加气平台支付更新余额完成!");
                             }else {
 
                                 if(stationInfos.getCouponEnabledFlag() !=null && stationInfos.getCouponEnabledFlag().equals("1")){