From 76368e3f45acaf795f6f0faf56044c786341f726 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 11 二月 2023 19:06:26 +0800
Subject: [PATCH] 更新代码
---
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java | 96 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 77 insertions(+), 19 deletions(-)
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
index ffd2b29..bf2d89d 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -21,9 +21,11 @@
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.IOrderService;
import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
+import com.stylefeng.guns.modular.system.service.ITransactionDetailsService;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
+import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
import com.stylefeng.guns.modular.system.warpper.OrderListWarpper;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -79,11 +81,8 @@
@Autowired
private IOrderLogisticsService orderLogisticsService;
- @Value("${pushMinistryOfTransport}")
- private boolean pushMinistryOfTransport;
-
@Autowired
- private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
+ private ITransactionDetailsService transactionDetailsService;
@@ -234,7 +233,7 @@
Integer orderSource = Integer.valueOf(String.valueOf(map.get("orderSource")));
if(orderSource == 1 || orderSource == 2 || orderSource == 3){
if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
- map.put("type", "乘客下单");
+ map.put("type", "乘客创建");
}
if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
map.put("type", "改派");
@@ -248,7 +247,7 @@
}
if(orderSource == 5){
if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
- map.put("type", "调度下单");
+ map.put("type", "调度创建");
}
if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
map.put("type", "改派");
@@ -331,7 +330,7 @@
// }
// }
break;
- case 4://同城小件物流
+ case 4://市内小件物流
map = orderLogisticsService.queryPushOrder(orderId);
DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon));
map.put("startDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0);
@@ -343,7 +342,7 @@
Integer orderSource3 = Integer.valueOf(String.valueOf(map.get("orderSource")));
if(orderSource3 == 1 || orderSource3 == 2 || orderSource3 == 3){
if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
- map.put("type", "乘客下单");
+ map.put("type", "乘客创建");
}
if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
map.put("type", "改派");
@@ -351,7 +350,7 @@
}
if(orderSource3 == 5){
if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
- map.put("type", "调度下单");
+ map.put("type", "调度创建");
}
if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
map.put("type", "改派");
@@ -530,8 +529,11 @@
*/
@Override
public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone) throws Exception {
- Map<String, String> geocode = gdMapGeocodingUtil.geocode(String.valueOf(lon), String.valueOf(lat));
- String address = geocode.get("address");
+ ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lon);
+ if(null == reverseGeocode){
+ return ResultUtil.error("无效的经纬度");
+ }
+ String address = reverseGeocode.getAddress();
switch (orderType){
case 1://专车
return orderPrivateCarService.process(orderId, state, lon, lat, address,phone);
@@ -933,14 +935,6 @@
driverId = orderPrivateCar.getDriverId();
state = orderPrivateCar.getState();
- new Thread(new Runnable() {
- @Override
- public void run() {
- if(pushMinistryOfTransport){//上传数据
- pushMinistryOfTransportUtil.operatePay(orderId);
- }
- }
- }).start();
break;
case 2:
OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
@@ -1056,6 +1050,70 @@
orderPrivateCarService.updateBatchById(orderList);
}
}
+
+
+ @Override
+ public ResultUtil payOrder(Integer uid, Integer orderId, Integer orderType, Integer payType, Integer language) throws Exception {
+ Double money = 0D;
+ if(orderType == 1){//专车
+ OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+ money = orderPrivateCar.getPayMoney();
+ if(orderPrivateCar.getPayType() != 4){
+ return ResultUtil.error(language == 1 ? "无法进行支付" : language == 2 ? "Unable to pay" : "Impossibilité de procéder au paiement");
+ }
+ if(orderPrivateCar.getDriverPay() == 2){
+ return ResultUtil.error(language == 1 ? "不能重复支付" : language == 2 ? "Non-repeatable payment" : "Aucun paiement en double");
+ }
+ if(payType == 2){//余额支付
+ Driver driver = driverService.selectById(uid);
+ if(driver.getBalance().compareTo(money) < 0){
+ return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde insuffisant du compte");
+ }
+ }
+ orderPrivateCar.setDriverPay(2);
+ orderPrivateCarService.updateById(orderPrivateCar);
+ }
+ if(orderType == 4){//小件
+ OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
+ money = orderLogistics.getPayMoney();
+ if(orderLogistics.getPayType() != 4){
+ return ResultUtil.error(language == 1 ? "无法进行支付" : language == 2 ? "Unable to pay" : "Impossibilité de procéder au paiement");
+ }
+ if(orderLogistics.getDriverPay() == 2){
+ return ResultUtil.error(language == 1 ? "不能重复支付" : language == 2 ? "Non-repeatable payment" : "Aucun paiement en double");
+ }
+ if(payType == 2){//余额支付
+ Driver driver = driverService.selectById(uid);
+ if(driver.getBalance().compareTo(money) < 0){
+ return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde insuffisant du compte");
+ }
+ }
+ orderLogistics.setDriverPay(2);
+ orderLogisticsService.updateById(orderLogistics);
+ }
+
+ if(0 < money){
+ if(payType == 1){//线上支付
+
+ }
+ if(payType == 2){//余额支付
+ Driver driver = driverService.selectById(uid);
+ driver.setBalance(driver.getBalance() - money);
+ if(driver.getLaveBusinessMoney().compareTo(money) < 0){
+ double b = money - driver.getLaveBusinessMoney();
+ driver.setLaveBusinessMoney(0D);
+ driver.setLaveActivityMoney(driver.getLaveActivityMoney() - b);
+ driverService.updateById(driver);
+ }else{
+ driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - money);
+ driverService.updateById(driver);
+ }
+ }
+
+ transactionDetailsService.saveData(uid, "现金收款代付", money, 2, 1, 2, orderType, orderId);
+ }
+ return ResultUtil.success();
+ }
}
--
Gitblit v1.7.1