From 9317fed1cea5372d9997a8273c07f041db94f99c Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期二, 28 五月 2024 09:40:11 +0800
Subject: [PATCH] 新增功能
---
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java | 96 +++++++++++++++++++++++++++++++++++++++--------
1 files changed, 79 insertions(+), 17 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 5dfc072..d63347f 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,10 +16,7 @@
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.BankCard;
-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.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
@@ -93,6 +91,18 @@
@Autowired
private IBankCardService bankCardService;
+
+ @Autowired
+ private ICancleOrderService cancleOrderService;
+
+ @Autowired
+ private ISettlementDetailService settlementDetailService;
+
+ @Autowired
+ private ISettlementRecordService settlementRecordService;
+
+ @Resource
+ private IBalanceUsageRecordService balanceUsageRecordService;
@@ -199,12 +209,30 @@
// datas.addAll(list);
//专车
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", 1);
+ 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", 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, language);
+ for (Map<String, Object> map : list3) {
+ Integer id = Integer.valueOf(map.get("id").toString());
+ map.put("settleAccounts", 1);
+ 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", settlementRecord.getPaymentStatus() == 1 ? 0 : 1);
+ }
+ }
datas.addAll(list3);
List<OrderListWarpper> orderListWarpper = OrderListWarpper.getOrderListWarpper(datas);
@@ -493,6 +521,13 @@
if(null != map.get("telX")){
map.put("phone", map.get("telX"));
}
+ Integer companyId = 1;
+ if(null != map.get("driverId")){
+ companyId = Integer.valueOf(String.valueOf(map.get("companyId")));
+ }
+ CancleOrder cancleOrder = cancleOrderService.selectOne(new EntityWrapper<CancleOrder>().eq("companyId", companyId));
+ JSONObject jsonObject = JSON.parseObject(cancleOrder.getContent());
+ map.put("timeOutCancel", jsonObject.getIntValue("driverTimeout"));
return map;
}
@@ -539,7 +574,7 @@
* @throws Exception
*/
@Override
- public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, Integer language) throws Exception {
+ public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, String pickUpCode, Integer language) throws Exception {
ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lon);
if(null == reverseGeocode){
return ResultUtil.error(language == 1 ? "无效的经纬度" : language == 2 ? "Invalid longitude and latitude" : "Longitude et latitude non valides");
@@ -553,7 +588,7 @@
case 3://城际
// return orderCrossCityService.process(orderId, state, lon, lat, address);
case 4://同城小件
- return orderLogisticsService.process(orderId, state, lon, lat, address, language);
+ return orderLogisticsService.process(orderId, state, lon, lat, address, pickUpCode, language);
case 5://跨城小件
// return orderLogisticsService.process(orderId, state, lon, lat, address);
case 6:
@@ -575,16 +610,16 @@
* @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) throws Exception {
switch (orderType){
case 1://专车
- return orderPrivateCarService.confirmFees(orderId, type, parkingFee, crossingFee);
+ return orderPrivateCarService.confirmFees(language, orderId, type, parkingFee, crossingFee);
case 2://出租
return orderTaxiService.confirmFees(orderId, type, travelFee, parkingFee, crossingFee);
case 3://城际(没有此流程)
break;
case 4://
- break;
+ return orderLogisticsService.confirmFees(language, orderId, type, parkingFee, crossingFee);
case 5:
break;
case 6:
@@ -675,7 +710,7 @@
case 3://城际(没有此流程)
return null;
case 4://
- break;
+ return orderLogisticsService.queryOrderInfo(language, orderId);
case 5:
break;
case 6:
@@ -721,8 +756,8 @@
@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));
+ int i = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driverId)
+ .between("insertTime", start, end).in("state", Arrays.asList(6, 7, 8, 9)));
return i;
}
@@ -980,6 +1015,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;
}
@@ -1011,6 +1066,8 @@
return orderPrivateCarService.queryMoneyInfo(orderId);
case 2:
break;
+ case 4:
+ return orderLogisticsService.queryMoneyInfo(orderId);
}
return null;
}
@@ -1027,13 +1084,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);
//发送短信
@@ -1041,7 +1099,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()){
@@ -1053,7 +1111,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());
}
}
}
@@ -1152,14 +1210,18 @@
}
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);
}
if(orderType == 1){//专车
--
Gitblit v1.7.1