From bfa0b11dfbfe5b71e11f4544e688e4d9f325d1b5 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 09 六月 2025 10:26:51 +0800
Subject: [PATCH] 修改bug和管理后台报表
---
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java | 638 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 475 insertions(+), 163 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 bf2d89d..9d8d1a9 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
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.core.common.constant.state.Order;
import com.stylefeng.guns.core.util.DateUtil;
@@ -15,17 +16,15 @@
import com.stylefeng.guns.modular.system.dao.PhoneMapper;
import com.stylefeng.guns.modular.system.dao.RegionMapper;
import com.stylefeng.guns.modular.system.dao.SysReformistMapper;
-import com.stylefeng.guns.modular.system.model.Driver;
-import com.stylefeng.guns.modular.system.model.OrderPosition;
-import com.stylefeng.guns.modular.system.model.Region;
-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.model.*;
+import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
+import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
+import com.stylefeng.guns.modular.system.util.Tingg.TinggPayUtil;
+import com.stylefeng.guns.modular.system.util.Tingg.model.CheckoutRequest;
import com.stylefeng.guns.modular.system.warpper.OrderListWarpper;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -34,6 +33,9 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -84,6 +86,37 @@
@Autowired
private ITransactionDetailsService transactionDetailsService;
+ @Value("${callbackPath}")
+ private String callbackPath;
+
+ @Autowired
+ private IPaymentRecordService paymentRecordService;
+
+ @Autowired
+ private IBankCardService bankCardService;
+
+ @Autowired
+ private ICancleOrderService cancleOrderService;
+
+ @Autowired
+ private ISettlementDetailService settlementDetailService;
+
+ @Autowired
+ private ISettlementRecordService settlementRecordService;
+
+ @Resource
+ private IBalanceUsageRecordService balanceUsageRecordService;
+
+ @Resource
+ private FleetEngineUtil fleetEngineUtil;
+
+ @Autowired
+ private IOrderPositionService orderPositionService;
+
+ @Autowired
+ private ICarService carService;
+
+
@@ -99,20 +132,20 @@
* @throws Exception
*/
@Override
- public List<Map<String, Object>> queryOrderList(Integer state, Integer pageNum, Integer size, Integer uid) throws Exception {
+ public List<Map<String, Object>> queryOrderList(Integer state, Integer pageNum, Integer size, Integer uid, Integer language) throws Exception {
pageNum = (pageNum - 1) * size;
List<Map<String, Object>> datas = new ArrayList<>();
//出租车
// List<Map<String, Object>> list = orderTaxiService.queryOrderList(state, uid);
// datas.addAll(list);
//专车
- List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid);
+ List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid, language);
datas.addAll(list1);
//跨城
// List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(state, uid);
// datas.addAll(list2);
//小件物流
- List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid);
+ List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(state, uid, language);
datas.addAll(list3);
//分页
@@ -138,21 +171,21 @@
* @throws Exception
*/
@Override
- public List<Map<String, Object>> queryOrderList1(Integer state, Integer type, Integer pageNum, Integer size, Integer uid) throws Exception {
+ public List<Map<String, Object>> queryOrderList1(Integer state, Integer type, Integer pageNum, Integer size, Integer uid, Integer language) throws Exception {
pageNum = (pageNum - 1) * size;
List<Map<String, Object>> datas = new ArrayList<>();
if(type == 1){
//出租车
- List<Map<String, Object>> list = orderTaxiService.queryOrderList(state, uid);
+ List<Map<String, Object>> list = orderTaxiService.queryOrderList(language, state, uid);
datas.addAll(list);
//专车
- List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid);
+ List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid, language);
datas.addAll(list1);
//跨城
- List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(state, uid);
+ List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(language, state, uid);
datas.addAll(list2);
}else{//小件物流
- List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid);
+ List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(state, uid, language);
datas.addAll(list3);
}
@@ -180,20 +213,38 @@
* @throws Exception
*/
@Override
- public List<OrderListWarpper> queryMyAllOrder(Integer state, Integer pageNum, Integer size, Integer uid) throws Exception {
+ public List<OrderListWarpper> queryMyAllOrder(Integer state, Integer pageNum, Integer size, Integer uid, Integer language) throws Exception {
pageNum = (pageNum - 1) * size;
List<Map<String, Object>> datas = new ArrayList<>();
//出租车
// List<Map<String, Object>> list = orderTaxiService.queryMyAllOrder(state, uid);
// datas.addAll(list);
//专车
- List<Map<String, Object>> list1 = orderPrivateCarService.queryMyAllOrder(state, uid);
+ List<Map<String, Object>> list1 = orderPrivateCarService.queryMyAllOrder(state, uid, language);
+ for (Map<String, Object> map : list1) {
+ Integer id = Integer.valueOf(map.get("id").toString());
+ map.put("settleAccounts", 0);
+ SettlementDetail settlementDetail = settlementDetailService.selectOne(new EntityWrapper<SettlementDetail>().eq("orderId", id).eq("orderType", 1));
+ if(null != settlementDetail){
+ SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
+ map.put("settleAccounts", null == settlementRecord || settlementRecord.getPaymentStatus() == 1 ? 0 : 1);
+ }
+ }
datas.addAll(list1);
//跨城
// List<Map<String, Object>> list2 = orderCrossCityService.queryMyAllOrder(state, uid);
// datas.addAll(list2);
//小件物流
- List<Map<String, Object>> list3 = orderLogisticsService.queryMyAllOrder(state, uid);
+ List<Map<String, Object>> list3 = orderLogisticsService.queryMyAllOrder(state, uid, language);
+ for (Map<String, Object> map : list3) {
+ Integer id = Integer.valueOf(map.get("id").toString());
+ map.put("settleAccounts", 0);
+ SettlementDetail settlementDetail = settlementDetailService.selectOne(new EntityWrapper<SettlementDetail>().eq("orderId", id).eq("orderType", 4));
+ if(null != settlementDetail){
+ SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
+ map.put("settleAccounts", null == settlementRecord || settlementRecord.getPaymentStatus() == 1 ? 0 : 1);
+ }
+ }
datas.addAll(list3);
List<OrderListWarpper> orderListWarpper = OrderListWarpper.getOrderListWarpper(datas);
@@ -218,45 +269,47 @@
* @return
*/
@Override
- public Map<String, Object> queryPushOrder(Integer orderId, Integer orderType, String lon, String lat) throws Exception{
+ public Map<String, Object> queryPushOrder(Integer orderId, Integer orderType, String lon, String lat, Integer language) throws Exception{
Map<String, Object> map = null;
switch (orderType){
case 1://专车
- map = orderPrivateCarService.queryPushOrder(orderId);
- DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon));
- map.put("startDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0);
+ map = orderPrivateCarService.queryPushOrder(orderId, language);
+ OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+ String tripId = redisUtil.getValue("trip" + orderPrivateCar.getUserId());
+ DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon), tripId);
+ map.put("startDistance", null != distancematrix ? new BigDecimal(distancematrix.getDistance()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() : 0);
//总距离
- distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()));
- map.put("totalDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0);
+ distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()), tripId);
+ map.put("totalDistance", null != distancematrix ? new BigDecimal(distancematrix.getDistance()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() : 0);
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", language == 1 ? "乘客创建" : language == 2 ? "Passenger creation" : "Créé par passager");
}
if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
- map.put("type", "改派");
+ map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté");
}
if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
- map.put("type", "预约");
+ map.put("type", language == 1 ? "预约" : language == 2 ? "Make an appointment" : "rendez-vous");
}
if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
- map.put("type", "改派");
+ map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté");
}
}
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", language == 1 ? "调度创建" : language == 2 ? "Scheduling creation" : "Création de planning");
}
if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
- map.put("type", "改派");
+ map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté");
}
if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
- map.put("type", "预约");
+ map.put("type", language == 1 ? "预约" : language == 2 ? "Make an appointment" : "rendez-vous");
}
if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
- map.put("type", "改派");
+ map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté");
}
}
break;
@@ -331,29 +384,31 @@
// }
break;
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);
+ map = orderLogisticsService.queryPushOrder(orderId, language);
+ OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
+ String tripId1 = redisUtil.getValue("trip" + orderLogistics.getUserId());
+ DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon), tripId1);
+ map.put("startDistance", null != distancematrix1 ? new BigDecimal(distancematrix1.getDistance()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() : 0);
//总距离
- distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()));
- map.put("totalDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0);
+ distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()), tripId1);
+ map.put("totalDistance", null != distancematrix1 ? new BigDecimal(distancematrix1.getDistance()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() : 0);
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", language == 1 ? "乘客创建" : language == 2 ? "Passenger creation" : "Créé par passager");
}
if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
- map.put("type", "改派");
+ map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté");
}
}
if(orderSource3 == 5){
if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
- map.put("type", "调度创建");
+ map.put("type", language == 1 ? "调度创建" : language == 2 ? "Scheduling creation" : "Création de planning");
}
if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
- map.put("type", "改派");
+ map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté");
}
}
break;
@@ -402,16 +457,16 @@
* @throws Exception
*/
@Override
- public synchronized ResultUtil grabOrder(Integer orderId, Integer orderType, Integer uid) throws Exception {
+ public synchronized ResultUtil grabOrder(Integer orderId, Integer orderType, Integer uid, Integer language) throws Exception {
switch (orderType){
case 1://专车
- return orderPrivateCarService.grabOrder(orderId, uid);
+ return orderPrivateCarService.grabOrder(orderId, uid, language);
case 2://出租
// return orderTaxiService.grabOrder(orderId, uid);
case 3://城际
return ResultUtil.success();//不作任何操作,跨城默认选择的司机
case 4://同城小件
- return orderLogisticsService.grabOrder(orderId, uid);
+ return orderLogisticsService.grabOrder(orderId, uid, language);
case 5://跨城小件
// return orderLogisticsService.grabOrder(orderId, uid);
case 6:
@@ -439,9 +494,9 @@
case 3://城际
break;
case 4://同城小件
- return orderLogisticsService.grabOrder_(orderId, uid);
+// return orderLogisticsService.grabOrder_(orderId, uid);
case 5://跨城小件
- return orderLogisticsService.grabOrder_(orderId, uid);
+// return orderLogisticsService.grabOrder_(orderId, uid);
case 6:
break;
}
@@ -458,11 +513,11 @@
* @throws Exception
*/
@Override
- public Map<String, Object> queryOrderInfo(Integer orderId, Integer orderType) throws Exception {
+ public Map<String, Object> queryOrderInfo(Integer language, Integer orderId, Integer orderType) throws Exception {
Map<String, Object> map = null;
switch (orderType){
case 1://专车
- map = orderPrivateCarService.queryOrderInfo(orderId);
+ map = orderPrivateCarService.queryOrderInfo(language, orderId);
break;
case 2://出租
// map = orderTaxiService.queryOrderInfo(orderId);
@@ -471,7 +526,7 @@
// map = orderCrossCityService.queryOrderCrossCityInfo(orderId);
break;
case 4://同城小件
- map = orderLogisticsService.queryOrderInfo(orderId);
+ map = orderLogisticsService.queryOrderInfo(language, orderId);
break;
case 5://跨城小件
// map = orderLogisticsService.queryOrderInfo(orderId);
@@ -528,21 +583,16 @@
* @throws Exception
*/
@Override
- public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone) throws Exception {
- ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lon);
- if(null == reverseGeocode){
- return ResultUtil.error("无效的经纬度");
- }
- String address = reverseGeocode.getAddress();
+ public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, String pickUpCode, Integer language) throws Exception {
switch (orderType){
case 1://专车
- return orderPrivateCarService.process(orderId, state, lon, lat, address,phone);
+ return orderPrivateCarService.process(orderId, state, lon, lat, phone, language, uid);
case 2://出租
// return orderTaxiService.process(orderId, state, lon, lat, address);
case 3://城际
// return orderCrossCityService.process(orderId, state, lon, lat, address);
case 4://同城小件
- return orderLogisticsService.process(orderId, state, lon, lat, address);
+ return orderLogisticsService.process(orderId, state, lon, lat, pickUpCode, language, uid);
case 5://跨城小件
// return orderLogisticsService.process(orderId, state, lon, lat, address);
case 6:
@@ -564,16 +614,17 @@
* @throws Exception
*/
@Override
- public ResultUtil confirmFees(Integer orderId, Integer orderType, Integer type, Double travelFee, Double parkingFee, Double crossingFee) throws Exception {
+ public ResultUtil confirmFees(Integer language, Integer orderId, Integer orderType, Integer type, Double travelFee,
+ Double parkingFee, Double crossingFee, Integer uid) throws Exception {
switch (orderType){
case 1://专车
- return orderPrivateCarService.confirmFees(orderId, type, parkingFee, crossingFee);
+ return orderPrivateCarService.confirmFees(language, orderId, type, parkingFee, crossingFee, uid);
case 2://出租
return orderTaxiService.confirmFees(orderId, type, travelFee, parkingFee, crossingFee);
case 3://城际(没有此流程)
break;
case 4://
- break;
+ return orderLogisticsService.confirmFees(language, orderId, type, parkingFee, crossingFee, uid);
case 5:
break;
case 6:
@@ -655,16 +706,16 @@
* @return
*/
@Override
- public Map<String, Object> queryToBePaidPage(Integer orderId, Integer orderType) throws Exception{
+ public Map<String, Object> queryToBePaidPage(Integer language, Integer orderId, Integer orderType) throws Exception{
switch (orderType){
case 1://专车
- return orderPrivateCarService.queryOrderInfo(orderId);
+ return orderPrivateCarService.queryOrderInfo(language, orderId);
case 2://出租
- return orderTaxiService.queryOrderInfo(orderId);
+ return orderTaxiService.queryOrderInfo(language, orderId);
case 3://城际(没有此流程)
return null;
case 4://
- break;
+ return orderLogisticsService.queryOrderInfo(language, orderId);
case 5:
break;
case 6:
@@ -689,7 +740,7 @@
case 3://城际
return orderCrossCityService.calculateMileage(orderPosition);
case 4://
- break;
+ return orderLogisticsService.calculateMileage(orderPosition.getOrderId(), orderPosition.getLon(), orderPosition.getLat());
case 5:
break;
case 6:
@@ -709,10 +760,11 @@
*/
@Override
public Integer queryOrderNum(Integer driverId, Date start, Date end) throws Exception {
- //出租车
- Integer[] state = new Integer[]{6, 7, 8, 9};
- int i = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driverId).between("insertTime", start, end).in("", state));
- return i;
+ int i = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driverId)
+ .between("insertTime", start, end).in("state", Arrays.asList(6, 7, 8, 9)));
+ int i1 = orderLogisticsService.selectCount(new EntityWrapper<OrderLogistics>().eq("driverId", driverId)
+ .between("insertTime", start, end).in("state", Arrays.asList(6, 7, 8, 9)));
+ return i + i1;
}
@@ -747,31 +799,31 @@
*/
@Override
public void taskMidAxbUnBindSend() throws Exception {
- List<OrderTaxi> list = orderTaxiService.taskMidAxbUnBindSend();
- for(OrderTaxi orderTaxi : list){
- Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX());
- if(!String.valueOf(map.get("code")).equals("200")){
- System.err.println(String.valueOf(map.get("msg")));
- }
- orderTaxi.setTelX("");
- orderTaxi.setBindId("");
- }
- if(list.size() > 0){
- orderTaxiService.updateBatchById(list);
- }
-
- List<OrderPrivateCar> list1 = orderPrivateCarService.taskMidAxbUnBindSend();
- for(OrderPrivateCar orderPrivateCar : list1){
- Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
- if(!String.valueOf(map.get("code")).equals("200")){
- System.err.println(String.valueOf(map.get("msg")));
- }
- orderPrivateCar.setTelX("");
- orderPrivateCar.setBindId("");
- }
- if(list1.size() > 0){
- orderPrivateCarService.updateBatchById(list1);
- }
+// List<OrderTaxi> list = orderTaxiService.taskMidAxbUnBindSend();
+// for(OrderTaxi orderTaxi : list){
+// Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX());
+// if(!String.valueOf(map.get("code")).equals("200")){
+// System.err.println(String.valueOf(map.get("msg")));
+// }
+// orderTaxi.setTelX("");
+// orderTaxi.setBindId("");
+// }
+// if(list.size() > 0){
+// orderTaxiService.updateBatchById(list);
+// }
+//
+// List<OrderPrivateCar> list1 = orderPrivateCarService.taskMidAxbUnBindSend();
+// for(OrderPrivateCar orderPrivateCar : list1){
+// Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
+// if(!String.valueOf(map.get("code")).equals("200")){
+// System.err.println(String.valueOf(map.get("msg")));
+// }
+// orderPrivateCar.setTelX("");
+// orderPrivateCar.setBindId("");
+// }
+// if(list1.size() > 0){
+// orderPrivateCarService.updateBatchById(list1);
+// }
}
@@ -787,57 +839,57 @@
case 1:
OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
if(ToolUtil.isNotEmpty(orderPrivateCar.getBindId())){
- Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
- if(!String.valueOf(map1.get("code")).equals("200")){
- System.err.println(String.valueOf(map1.get("msg")));
- }
+// Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
+// if(!String.valueOf(map1.get("code")).equals("200")){
+// System.err.println(String.valueOf(map1.get("msg")));
+// }
//调用移动的小号接口
- Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
- Region region = regionMapper.query(geocode.get("districtCode"));
- Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
- Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
- if(String.valueOf(map.get("code")).equals("200")){
- orderPrivateCar.setTelX(map.get("telX"));
- orderPrivateCar.setBindId(map.get("bindId"));
- }
+// Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
+// Region region = regionMapper.query(geocode.get("districtCode"));
+// Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
+// if(String.valueOf(map.get("code")).equals("200")){
+// orderPrivateCar.setTelX(map.get("telX"));
+// orderPrivateCar.setBindId(map.get("bindId"));
+// }
orderPrivateCarService.updateById(orderPrivateCar);
}
break;
case 2:
OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
if(ToolUtil.isNotEmpty(orderTaxi.getBindId())){
- Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX());
- if(!String.valueOf(map1.get("code")).equals("200")){
- System.err.println(String.valueOf(map1.get("msg")));
- }
+// Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX());
+// if(!String.valueOf(map1.get("code")).equals("200")){
+// System.err.println(String.valueOf(map1.get("msg")));
+// }
//调用移动的小号接口
- Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
- Region region = regionMapper.query(geocode.get("districtCode"));
- Driver driver = driverService.selectById(orderTaxi.getDriverId());
- Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
- if(String.valueOf(map.get("code")).equals("200")){
- orderTaxi.setTelX(map.get("telX"));
- orderTaxi.setBindId(map.get("bindId"));
- }
+// Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
+// Region region = regionMapper.query(geocode.get("districtCode"));
+// Driver driver = driverService.selectById(orderTaxi.getDriverId());
+// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
+// if(String.valueOf(map.get("code")).equals("200")){
+// orderTaxi.setTelX(map.get("telX"));
+// orderTaxi.setBindId(map.get("bindId"));
+// }
orderTaxiService.updateById(orderTaxi);
}
break;
case 3:
OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
if(ToolUtil.isNotEmpty(orderCrossCity.getBindId())){
- Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX());
- if(!String.valueOf(map1.get("code")).equals("200")){
- System.err.println(String.valueOf(map1.get("msg")));
- }
+// Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX());
+// if(!String.valueOf(map1.get("code")).equals("200")){
+// System.err.println(String.valueOf(map1.get("msg")));
+// }
//调用移动的小号接口
- Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
- Region region = regionMapper.query(geocode.get("districtCode"));
- Driver driver = driverService.selectById(orderCrossCity.getDriverId());
- Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
- if(String.valueOf(map.get("code")).equals("200")){
- orderCrossCity.setTelX(map.get("telX"));
- orderCrossCity.setBindId(map.get("bindId"));
- }
+// Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
+// Region region = regionMapper.query(geocode.get("districtCode"));
+// Driver driver = driverService.selectById(orderCrossCity.getDriverId());
+// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
+// if(String.valueOf(map.get("code")).equals("200")){
+// orderCrossCity.setTelX(map.get("telX"));
+// orderCrossCity.setBindId(map.get("bindId"));
+// }
orderCrossCityService.updateById(orderCrossCity);
}
break;
@@ -910,7 +962,7 @@
* @throws Exception
*/
@Override
- public ResultUtil completeOrder(Integer orderId, Integer orderType) throws Exception {
+ public ResultUtil completeOrder(Integer orderId, Integer orderType, Integer language) throws Exception {
Integer userId = 0;
Integer driverId = 0;
Integer state = 0;
@@ -918,10 +970,10 @@
case 1:
OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
if(orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9){
- return ResultUtil.error("订单已完成支付,不允许重复支付");
+ return ResultUtil.error(language == 1 ? "订单已完成支付,不允许重复支付" : language == 2 ? "The order has been paid, recurring payments is not allowed." : "La commande a été payée, les paiements récurrents ne sont pas autorisés.");
}
if(orderPrivateCar.getState() != 7){
- return ResultUtil.error("订单不在待支付,无法完成订单");
+ return ResultUtil.error(language == 1 ? "订单不在待支付,无法完成订单" : language == 2 ? "The order is no longer with Pending Payment, unable to complete the order." : "La commande n’est plus en attente de paiement, il est impossible de terminer la commande.");
}
orderPrivateCar.setPayManner(2);//其他方式支付
orderPrivateCar.setRedPacketMoney(0D);
@@ -939,10 +991,10 @@
case 2:
OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
if(orderTaxi.getState() == 8 || orderTaxi.getState() == 9){
- return ResultUtil.error("订单已完成支付,不允许重复支付");
+ return ResultUtil.error(language == 1 ? "订单已完成支付,不允许重复支付" : language == 2 ? "The order has been paid, recurring payments is not allowed." : "La commande a été payée, les paiements récurrents ne sont pas autorisés.");
}
if(orderTaxi.getState() != 7){
- return ResultUtil.error("订单不在待支付,无法完成订单");
+ return ResultUtil.error(language == 1 ? "订单不在待支付,无法完成订单" : language == 2 ? "The order is no longer with Pending Payment, unable to complete the order." : "La commande n’est plus en attente de paiement, il est impossible de terminer la commande.");
}
orderTaxi.setPayManner(2);//其他方式支付
orderTaxi.setRedPacketMoney(0D);
@@ -969,6 +1021,26 @@
redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());
}
break;
+ case 4:
+ OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
+ if(orderLogistics.getState() == 8 || orderLogistics.getState() == 9){
+ return ResultUtil.error(language == 1 ? "订单已完成支付,不允许重复支付" : language == 2 ? "The order has been paid, recurring payments is not allowed." : "La commande a été payée, les paiements récurrents ne sont pas autorisés.");
+ }
+ if(orderLogistics.getState() != 7){
+ return ResultUtil.error(language == 1 ? "订单不在待支付,无法完成订单" : language == 2 ? "The order is no longer with Pending Payment, unable to complete the order." : "La commande n’est plus en attente de paiement, il est impossible de terminer la commande.");
+ }
+ orderLogistics.setPayManner(2);//其他方式支付
+ orderLogistics.setRedPacketMoney(0D);
+ orderLogistics.setCouponMoney(0D);
+ orderLogistics.setDiscount(0D);
+ orderLogistics.setDiscountMoney(0D);
+ orderLogistics.setPayMoney(orderLogistics.getOrderMoney());
+ orderLogistics.setState(8);
+ orderLogisticsService.updateById(orderLogistics);
+ userId = orderLogistics.getUserId();
+ driverId = orderLogistics.getDriverId();
+ state = orderLogistics.getState();
+ break;
}
@@ -978,8 +1050,8 @@
new Thread(new Runnable() {
@Override
public void run() {
- pushUtil.pushOrderState(1, finalUserId, orderId, orderType, finalState);
- pushUtil.pushOrderState(2, finalDriverId, orderId, orderType, finalState);
+ pushUtil.pushOrderState(1, finalUserId, orderId, orderType, finalState, 0, "", "driver");
+ pushUtil.pushOrderState(2, finalDriverId, orderId, orderType, finalState, 0, "", "driver");
}
}).start();
return ResultUtil.success();
@@ -1000,6 +1072,8 @@
return orderPrivateCarService.queryMoneyInfo(orderId);
case 2:
break;
+ case 4:
+ return orderLogisticsService.queryMoneyInfo(orderId);
}
return null;
}
@@ -1016,13 +1090,14 @@
*/
@Override
public void taskSmsSend() throws Exception {
+ Integer language = 2;
//获取未支付订单
Date day = new Date();
List<OrderPrivateCar> orderList = orderPrivateCarService.getSmsOrderList();
for(OrderPrivateCar order : orderList){
if(order.getSmsTime()==null ){
- if(order.getGetoffTime().getTime()+24*60*60*1000L<day.getTime()){
+ if(null != order.getGetoffTime() && order.getGetoffTime().getTime()+24*60*60*1000L<day.getTime()){
order.setSmsNumber(order.getSmsNumber()+1);
order.setSmsTime(day);
//发送短信
@@ -1030,7 +1105,7 @@
String sData = aLiSendSms.sendSms1(order.getPassengersPhone(), "SMS_215342869", "{\"time\":\"" + DateUtil.format(order.getGetoffTime(),"yyyy-MM-dd HH:mm:ss") + "\",\"money\":\"" + order.getOrderMoney() + "\"}");
}
//添加消息记录
- systemNoticeService.addSystemNotice(1, "有一笔订单未付款,请前往支付!", order.getUserId());
+ systemNoticeService.addSystemNotice(1, language == 1 ? "有一笔订单未付款,请前往支付!" : language == 2 ? "There is an order pending payment, please pay." : "Il y a une commande en attente de paiement, veuillez payer.", order.getUserId());
}
}else{
if(order.getSmsTime().getTime()+24*60*60*1000L<day.getTime()){
@@ -1042,7 +1117,7 @@
}
//添加消息记录
- systemNoticeService.addSystemNotice(1, "有一笔订单未付款,请前往支付!", order.getUserId());
+ systemNoticeService.addSystemNotice(1, language == 1 ? "有一笔订单未付款,请前往支付!" : language == 2 ? "There is an order pending payment, please pay." : "Il y a une commande en attente de paiement, veuillez payer.", order.getUserId());
}
}
}
@@ -1053,67 +1128,304 @@
@Override
- public ResultUtil payOrder(Integer uid, Integer orderId, Integer orderType, Integer payType, Integer language) throws Exception {
+ public ResultUtil payOrder(Integer uid, Integer orderId, Integer orderType, Integer payType, Integer bankCardId, Integer language) throws Exception {
Double money = 0D;
+ Driver driver = driverService.selectById(uid);
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");
+ return ResultUtil.error(language == 1 ? "无法进行支付" : language == 2 ? "Unable to make payments" : "Impossible d’effectuer des paiements");
}
if(orderPrivateCar.getDriverPay() == 2){
- return ResultUtil.error(language == 1 ? "不能重复支付" : language == 2 ? "Non-repeatable payment" : "Aucun paiement en double");
+ return ResultUtil.error(language == 1 ? "不能重复支付" : language == 2 ? "Unable to recur payments" : "Impossible de récurrence des paiements");
}
- if(payType == 2){//余额支付
- Driver driver = driverService.selectById(uid);
+ if(payType == 3){//余额支付
if(driver.getBalance().compareTo(money) < 0){
- return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde insuffisant du compte");
+ return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
}
}
- 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");
+ return ResultUtil.error(language == 1 ? "无法进行支付" : language == 2 ? "Unable to make payments" : "Impossible d’effectuer des paiements");
}
if(orderLogistics.getDriverPay() == 2){
- return ResultUtil.error(language == 1 ? "不能重复支付" : language == 2 ? "Non-repeatable payment" : "Aucun paiement en double");
+ return ResultUtil.error(language == 1 ? "不能重复支付" : language == 2 ? "Unable to recur payments" : "Impossible de récurrence des paiements");
}
- if(payType == 2){//余额支付
- Driver driver = driverService.selectById(uid);
+ if(payType == 3){//余额支付
if(driver.getBalance().compareTo(money) < 0){
- return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde insuffisant du compte");
+ return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
}
}
- orderLogistics.setDriverPay(2);
- orderLogisticsService.updateById(orderLogistics);
}
if(0 < money){
- if(payType == 1){//线上支付
-
+ if(payType == 1) {//手机支付
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ String merchantTransactionId = sdf.format(new Date()) + "4" + language + orderId;
+ CheckoutRequest checkoutRequest = new CheckoutRequest();
+ checkoutRequest.setMsisdn(Long.valueOf(driver.getPhone()));
+ checkoutRequest.setCustomerEmail(driver.getEmail());
+ checkoutRequest.setAccountNumber(driver.getPhone());
+ checkoutRequest.setCustomerFirstName(driver.getFirstName());
+ checkoutRequest.setCustomerLastName(driver.getLastName());
+ checkoutRequest.setRequestAmount(money);
+ checkoutRequest.setMerchantTransactionId(merchantTransactionId);
+ checkoutRequest.setRequestDescription("Travel completion payment");
+ checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi");
+ checkoutRequest.setPendingRedirectUrl("");
+ checkoutRequest.setSuccessRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html");
+ checkoutRequest.setFailRedirectUrl("https://igo.i-go.group/payMoney/pages/fail.html");
+ ResultUtil resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest);
+ if(resultUtil.getCode()==200){
+ paymentRecordService.saveData(1, uid, 2, orderId, orderType, 1, money, null, 1);//添加预支付数据
+ }else{
+ resultUtil = ResultUtil.error(language == 1 ? "支付失败" : language == 2 ? "Payment failure" : "Échec de paiement", "");
+ }
+ return resultUtil;
}
- if(payType == 2){//余额支付
- Driver driver = driverService.selectById(uid);
+
+ if(payType == 2) {//银行卡支付
+ BankCard bankCard = bankCardService.selectById(bankCardId);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ String merchantTransactionId = sdf.format(new Date()) + "4" + language + orderId;
+ CheckoutRequest checkoutRequest = new CheckoutRequest();
+ checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode()));
+ checkoutRequest.setCustomerEmail(driver.getEmail());
+ checkoutRequest.setAccountNumber(bankCard.getCode());
+ checkoutRequest.setCustomerFirstName(bankCard.getFirstName());
+ checkoutRequest.setCustomerLastName(bankCard.getLastName());
+ checkoutRequest.setRequestAmount(money);
+ checkoutRequest.setMerchantTransactionId(merchantTransactionId);
+ checkoutRequest.setRequestDescription("Travel completion payment");
+ checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi");
+ checkoutRequest.setPendingRedirectUrl("");
+ checkoutRequest.setSuccessRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html");
+ checkoutRequest.setFailRedirectUrl("https://igo.i-go.group/payMoney/pages/fail.html");
+ ResultUtil resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest);
+
+ if(resultUtil.getCode()==200){
+ paymentRecordService.saveData(1, uid, 2, orderId, orderType, 2, money, null, 1);//添加预支付数据
+ }else{
+ resultUtil = ResultUtil.error(language == 1 ? "支付失败" : language == 2 ? "Payment failure" : "Échec de paiement", "");
+ }
+ return resultUtil;
+ }
+ if(payType == 3){//余额支付
driver.setBalance(driver.getBalance() - money);
- if(driver.getLaveBusinessMoney().compareTo(money) < 0){
- double b = money - driver.getLaveBusinessMoney();
+ Double laveBusinessMoney = driver.getLaveBusinessMoney();
+ if(laveBusinessMoney.compareTo(money) < 0){
+ double b = money - laveBusinessMoney;
driver.setLaveBusinessMoney(0D);
driver.setLaveActivityMoney(driver.getLaveActivityMoney() - b);
driverService.updateById(driver);
+ balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 1, b, orderType == 1 ? 1 : 2);
+ balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 2, laveBusinessMoney, orderType == 1 ? 1 : 2);
}else{
driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - money);
driverService.updateById(driver);
+ balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 2, money, orderType == 1 ? 1 : 2);
}
- }
- transactionDetailsService.saveData(uid, "现金收款代付", money, 2, 1, 2, orderType, orderId);
+ if(orderType == 1){//专车
+ OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+ orderPrivateCar.setDriverPay(2);
+ orderPrivateCarService.updateById(orderPrivateCar);
+ }
+ if(orderType == 4){//小件
+ OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
+ orderLogistics.setDriverPay(2);
+ orderLogisticsService.updateById(orderLogistics);
+ }
+ transactionDetailsService.saveData(uid, "现金收款代付", money, 2, 1, 2, orderType, orderId);
+ }
}
return ResultUtil.success();
}
+
+
+ @Override
+ public void getDriverNowPosition() {
+ for (OrderPrivateCar orderPrivateCar : orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("state", 5))) {
+ String trackId = orderPrivateCar.getTrackId();
+ if(ToolUtil.isNotEmpty(trackId)){
+ String trip = fleetEngineUtil.getTrip(trackId);
+ JSONObject lastLocation = JSON.parseObject(trip).getJSONObject("lastLocation");
+ JSONObject location = lastLocation.getJSONObject("location");
+ Double latitude = location.getDouble("latitude");
+ Double longitude = location.getDouble("longitude");
+ OrderPosition orderPosition = new OrderPosition();
+ orderPosition.setOrderId(orderPrivateCar.getId());
+ orderPosition.setOrderType(1);
+ orderPosition.setDriverId(orderPrivateCar.getDriverId());
+ orderPosition.setLat(latitude.toString());
+ orderPosition.setLon(longitude.toString());
+ orderPosition.setInsertTime(new Date());
+ try {
+ orderPositionService.saveData(orderPosition);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ List<OrderLogistics> orderLogisticsList = orderLogisticsService.selectList(new EntityWrapper<OrderLogistics>().eq("state", 5));
+ for (OrderLogistics orderLogistics : orderLogisticsList) {
+ String trackId = orderLogistics.getTrackId();
+ if(ToolUtil.isNotEmpty(trackId)){
+ String trip = fleetEngineUtil.getTrip(trackId);
+ JSONObject lastLocation = JSON.parseObject(trip).getJSONObject("lastLocation");
+ JSONObject location = lastLocation.getJSONObject("location");
+ Double latitude = location.getDouble("latitude");
+ Double longitude = location.getDouble("longitude");
+ OrderPosition orderPosition = new OrderPosition();
+ orderPosition.setOrderId(orderLogistics.getId());
+ orderPosition.setOrderType(1);
+ orderPosition.setDriverId(orderLogistics.getDriverId());
+ orderPosition.setLat(latitude.toString());
+ orderPosition.setLon(longitude.toString());
+ orderPosition.setInsertTime(new Date());
+ try {
+ orderPositionService.saveData(orderPosition);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+ }
+
+
+ /**
+ * 结束google订单状态
+ */
+ @Override
+ public void overGoogleOrder() {
+ List<OrderPrivateCar> privateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().isNotNull("tripId")
+ .eq("isover", 0).in("state", Arrays.asList(6, 7, 8, 9, 10, 12)).eq("isDelete", 1));
+ for (OrderPrivateCar privateCar : privateCars) {
+ Integer state = privateCar.getState();
+ String tripId = privateCar.getTripId();
+ String trip = fleetEngineUtil.getTrip(tripId);
+ if(null != trip && "" == trip){
+ privateCar.setIsover(1);
+ orderPrivateCarService.updateById(privateCar);
+ continue;
+ }
+ if(ToolUtil.isNotEmpty(trip)){
+ JSONObject jsonObject = JSON.parseObject(trip);
+ String tripStatus = jsonObject.getString("tripStatus");
+ Car car = carService.selectById(privateCar.getCarId());
+ if(Arrays.asList(10, 12).contains(state) && !"CANCELED".equals(tripStatus)){
+ //修改行程信息
+ boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, privateCar.getId(), 1);
+ if(!updateTrip){
+ for (int i = 0; i < 5; i++) {
+ updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, privateCar.getId(), 1);
+ if(updateTrip){
+ privateCar.setIsover(1);
+ orderPrivateCarService.updateById(privateCar);
+ break;
+ }
+ try {
+ Thread.sleep(3000L);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ privateCar.setIsover(1);
+ orderPrivateCarService.updateById(privateCar);
+ }
+ }
+ if(Arrays.asList(6, 7, 8, 9).contains(state) && !"COMPLETE".equals(tripStatus)){
+ //修改行程信息
+ boolean updateTrip = fleetEngineUtil.updateTrip("COMPLETE", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, privateCar.getId(), 1);
+ if(!updateTrip){
+ for (int i = 0; i < 5; i++) {
+ updateTrip = fleetEngineUtil.updateTrip("COMPLETE", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, privateCar.getId(), 1);
+ if(updateTrip){
+ privateCar.setIsover(1);
+ orderPrivateCarService.updateById(privateCar);
+ break;
+ }
+ try {
+ Thread.sleep(3000L);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ privateCar.setIsover(1);
+ orderPrivateCarService.updateById(privateCar);
+ }
+ }
+ }
+ }
+ List<OrderLogistics> orderLogisticsList = orderLogisticsService.selectList(new EntityWrapper<OrderLogistics>().isNotNull("tripId")
+ .eq("isover", 0).in("state", Arrays.asList(6, 7, 8, 9, 10, 12)).eq("isDelete", 1));
+ for (OrderLogistics orderLogistics : orderLogisticsList) {
+ Integer state = orderLogistics.getState();
+ String tripId = orderLogistics.getTripId();
+ String trip = fleetEngineUtil.getTrip(tripId);
+ if(null != trip && "" == trip){
+ orderLogistics.setIsover(1);
+ orderLogisticsService.updateById(orderLogistics);
+ continue;
+ }
+ if(ToolUtil.isNotEmpty(trip)){
+ JSONObject jsonObject = JSON.parseObject(trip);
+ String tripStatus = jsonObject.getString("tripStatus");
+ Car car = carService.selectById(orderLogistics.getCarId());
+ if(Arrays.asList(10, 12).contains(state) && !"CANCELED".equals(tripStatus)){
+ //修改行程信息
+ boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, orderLogistics.getId(), 4);
+ if(!updateTrip){
+ for (int i = 0; i < 5; i++) {
+ updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, orderLogistics.getId(), 4);
+ if(updateTrip){
+ orderLogistics.setIsover(1);
+ orderLogisticsService.updateById(orderLogistics);
+ break;
+ }
+ try {
+ Thread.sleep(3000L);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ orderLogistics.setIsover(1);
+ orderLogisticsService.updateById(orderLogistics);
+ }
+ }
+ if(Arrays.asList(6, 7, 8, 9).contains(state) && !"COMPLETE".equals(tripStatus)){
+ //修改行程信息
+ boolean updateTrip = fleetEngineUtil.updateTrip("COMPLETE", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, orderLogistics.getId(), 4);
+ if(!updateTrip){
+ for (int i = 0; i < 5; i++) {
+ updateTrip = fleetEngineUtil.updateTrip("COMPLETE", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, orderLogistics.getId(), 4);
+ if(updateTrip){
+ orderLogistics.setIsover(1);
+ orderLogisticsService.updateById(orderLogistics);
+ break;
+ }
+ try {
+ Thread.sleep(3000L);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ orderLogistics.setIsover(1);
+ orderLogisticsService.updateById(orderLogistics);
+ }
+ }
+ }
+ }
+ }
}
--
Gitblit v1.7.1