From 1c40baaf9ca0183945b9881d11ceed5aeebc8290 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 23 十月 2025 11:35:44 +0800
Subject: [PATCH] 修改bug
---
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 520 +++++++++++++++++++++++++++++++++------------------------
1 files changed, 302 insertions(+), 218 deletions(-)
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index c1209cb..1ed8aa6 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -48,6 +48,8 @@
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
@@ -165,7 +167,8 @@
@Autowired
private TDriverPromotionActivityService driverPromotionActivityService;
-
+ private CarMapper carMapper;
+
/**
* 专车下单操作
*
@@ -244,7 +247,15 @@
return ResultUtil.error("有未完成的订单");
}
}
-
+ String serverCarModel = "";
+ if(2 == orderSource){
+ Driver driver = driverService.selectById(driverId);
+ CarService carService = new CarService();
+ carService.setType(1);
+ carService.setCarId(driver.getCarId());
+ CarService carService1 = carServiceMapper.selectOne(carService);
+ serverCarModel = "[{\"serverCarModelId\":" + carService1.getServerCarModelId() + ",\"rideType\":1}]";
+ }
startAddress = startAddress.replaceAll("& #40;", "(");
startAddress = startAddress.replaceAll("& #41;", ")");
@@ -260,6 +271,7 @@
orderPrivateCar.setType(type);
orderPrivateCar.setUserId(uid);
orderPrivateCar.setServerCarModelId(serverCarModelId);
+ orderPrivateCar.setServerCarModel(serverCarModel);
orderPrivateCar.setOrderNum(this.getOrderNum());
orderPrivateCar.setPlacementLon(Double.valueOf(placementLon));
orderPrivateCar.setPlacementLat(Double.valueOf(placementLat));
@@ -398,7 +410,7 @@
JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent());
//判断时间
if (travelTime.getTime() >= order.getTravelTime().getTime() - jsonObject.getInteger("num5") * 60000L && travelTime.getTime() <= order.getTravelTime().getTime() + jsonObject.getInteger("num6") * 60000L) {
- String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(order.getDriverId()));
+ String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(order.getDriverId()));
// Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString());
// Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString());
@@ -553,6 +565,15 @@
return ResultUtil.error("有未完成的订单");
}
}
+
+ if(2 == orderSource){
+ Driver driver = driverService.selectById(driverId);
+ CarService carService = new CarService();
+ carService.setType(1);
+ carService.setCarId(driver.getCarId());
+ CarService carService1 = carServiceMapper.selectOne(carService);
+ serverCarModel = "[{\"serverCarModelId\":" + carService1.getServerCarModelId() + ",\"rideType\":1}]";
+ }
startAddress = startAddress.replaceAll("& #40;", "(");
startAddress = startAddress.replaceAll("& #41;", ")");
@@ -561,7 +582,7 @@
if (ToolUtil.isEmpty(serverCarModel)) {
return ResultUtil.error("请选择服务车型");
}
-
+
OrderPrivateCar orderPrivateCar = new OrderPrivateCar();
orderPrivateCar.setPeopleNum(peopleNum);
orderPrivateCar.setType(3);
@@ -603,16 +624,6 @@
orderPrivateCar.setIsReassign(1);
orderPrivateCar.setIsDelete(1);
- // 是否推广订单
- Integer promotion = isPromotion(uid);
- if(promotion!=null){
- orderPrivateCar.setPromotion(2);
- Driver driver = driverService.selectById(promotion);
- orderPrivateCar.setPromotionUser(driver.getName());
- orderPrivateCar.setPromotionPhone(driver.getPhone());
- orderPrivateCar.setPromotionDriverId(promotion);
- }
-
//判断独享,一口价,拼车
JSONArray jsonArray = JSON.parseArray(serverCarModel);
this.insert(orderPrivateCar);
@@ -638,14 +649,13 @@
} else {
OrderPrivateCar orderPrivateCar1 = null;
OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
+ TbSpellOrderRule spellOrderRule = spellOrderRuleService.selectOne(new EntityWrapper<TbSpellOrderRule>().eq("openCityId", openCity.getId()));
//判断是否有相同线路的拼车-有直接拼成功,或者推送拼车订单
List<OrderPrivateCar> orderList = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().eq("rideType", 3).in("state", "2,3,4").le("totalPeopleNum", 4 - peopleNum));
for (OrderPrivateCar order : orderList) {
- TbSpellOrderRule spellOrderRule = spellOrderRuleService.selectOne(new EntityWrapper<TbSpellOrderRule>().eq("openCityId", openCity.getId()));
if (spellOrderRule != null) {
JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent());
//判断时间
-
if (travelTime.getTime() >= order.getTravelTime().getTime() - jsonObject.getInteger("num5") * 60000L && travelTime.getTime() <= order.getTravelTime().getTime() + jsonObject.getInteger("num6") * 60000L) {
// Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), order.getStartLon() + "," + order.getStartLat(), 1).get("distance").toString());
// Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString());
@@ -663,12 +673,11 @@
if (orderPrivateCar1 == null) {
orderList = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().eq("rideType", 3).eq("state", 5).le("totalPeopleNum", 4 - peopleNum));
for (OrderPrivateCar order : orderList) {
- TbSpellOrderRule spellOrderRule = spellOrderRuleService.selectOne(new EntityWrapper<TbSpellOrderRule>().eq("openCityId", openCity.getId()));
if (spellOrderRule != null) {
JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent());
//判断时间
if (travelTime.getTime() >= order.getTravelTime().getTime() - jsonObject.getInteger("num5") * 60000L && travelTime.getTime() <= order.getTravelTime().getTime() + jsonObject.getInteger("num6") * 60000L) {
- String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(order.getDriverId()));
+ String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(order.getDriverId()));
// Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString());
// Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString());
@@ -703,6 +712,15 @@
orderPrivateCar.setIsDelete(1);
orderPrivateCar.setPid(orderPrivateCar1.getPid() == null ? orderPrivateCar1.getId() : orderPrivateCar1.getPid());
+ Integer promotion1 = isPromotion(orderPrivateCar.getUserId(), driver.getPlaceOfEmployment());
+ if(promotion1!=null){
+ orderPrivateCar.setPromotion(2);
+ Driver driver1 = driverService.selectById(promotion1);
+ orderPrivateCar.setPromotionUser(driver1.getName());
+ orderPrivateCar.setPromotionPhone(driver1.getPhone());
+ orderPrivateCar.setPromotionDriverId(promotion1);
+ }
+
Company company = companyService.selectById(driver.getCompanyId());
//调三方订单中心创建行程单
CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
@@ -717,8 +735,8 @@
request.setServiceType(2);
String travelItinerary = OrderUtil.createTravelItinerary(request);
orderPrivateCar.setTravelId(travelItinerary);
-
this.insertOrUpdate(orderPrivateCar);
+
//修改总订单人数
OrderPrivateCar orderPrivateCar2 = new OrderPrivateCar();
orderPrivateCar2.setSpellSuccess(1);
@@ -753,7 +771,6 @@
//添加消息
systemNoticeService.addSystemNotice(1, "您的快车订单已下单成功,我们正在为您指派司机,请稍后!", orderPrivateCar.getUserId(), 1);
-
baseWarpper.setId(orderPrivateCar.getId());
} catch (Exception e) {
e.printStackTrace();
@@ -767,11 +784,11 @@
}
- private Integer isPromotion(Integer userId){
+ private Integer isPromotion(Integer userId, String code){
UserInfo userInfo = userInfoService.selectById(userId);
- if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){
- String registAreaCode = userInfo.getRegistAreaCode();
- TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).eq("state",1).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 1 + ", bizType) limit 1"));
+ if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()>=System.currentTimeMillis()){
+ TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", code)
+ .eq("state",1).le("startTime", new Date()).ge("endTime", new Date()).last("AND FIND_IN_SET(" + 1 + ", bizType) limit 1"));
if(tDriverPromotionActivity!=null){
return userInfo.getBindDriverId();
}
@@ -860,7 +877,7 @@
JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent());
//判断时间
if (orderPrivateCar.getTravelTime().getTime() >= order.getTravelTime().getTime() - jsonObject.getInteger("num5") * 60000L && orderPrivateCar.getTravelTime().getTime() <= order.getTravelTime().getTime() + jsonObject.getInteger("num6") * 60000L) {
- String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(order.getDriverId()));
+ String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(order.getDriverId()));
// Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString());
// Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString());
// TODO: 2023/11/4 已改成计算直线距离
@@ -932,6 +949,15 @@
if (null == orderPrivateCar) {
return ResultUtil.error("获取数据失败,订单信息有误");
}
+ if (orderPrivateCar.getState() == 5) {
+ return ResultUtil.error("订单已开始服务,不能取消订单");
+ }
+ if (orderPrivateCar.getState() == 6 || orderPrivateCar.getState() == 7 || orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9) {
+ return ResultUtil.error("订单已完成,不能取消订单");
+ }
+ if (orderPrivateCar.getState() == 10) {
+ return ResultUtil.error("订单已被取消,不能重复操作");
+ }
OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
double amount = 0;
CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, openCity.getId());
@@ -966,7 +992,7 @@
// return ResultUtil.error("司机已到达预约点,取消会产生一定的费用");
// }
if (orderPrivateCar.getState() >= 5 && orderPrivateCar.getState() != 11) {
- return ResultUtil.error("取消订单失败,不合法的操作");
+ return ResultUtil.error("订单已取消,请刷新页面");
}
Integer number1 = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid", orderPrivateCar.getPid() == null ? orderPrivateCar.getId() : orderPrivateCar.getPid()).lt("state", 6));
Integer number2 = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("id", orderPrivateCar.getPid() == null ? orderPrivateCar.getId() : orderPrivateCar.getPid()).lt("state", 6));
@@ -991,73 +1017,17 @@
orderCancelService.saveData(orderPrivateCar1.getId(), 1, "无司机接单", "无司机接单", null, null, 2, 1, uid);
orderPrivateCar1.setState(10);
this.updateById(orderPrivateCar1);
-
- Driver driver1 = null;
- Company company = null;
- //中台修改订单状态
- ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
- request.setOrderId(orderPrivateCar1.getTravelId());
- request.setStatus(orderPrivateCar1.getState());
- if (null != orderPrivateCar1.getDriverId()) {
- driver1 = driverService.selectById(orderPrivateCar1.getDriverId());
- company = companyService.selectById(driver1.getCompanyId());
- request.setDriverId(driver1.getEmpId().toString());
- request.setSupplierShopId(company.getEnterCode());
- }
- if (2 == orderPrivateCar1.getPromotion()) {
- Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId());
- request.setPromoterId(driver2.getEmpId().toString());
- }
- OrderUtil.modifyTravelItinerary(request);
}
List<OrderTaxi> list1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace()));
for (OrderTaxi orderTaxi : list1) {
orderCancelService.saveData(orderTaxi.getId(), 2, "无司机接单", "无司机接单", null, null, 2, 1, uid);
orderTaxi.setState(10);
orderTaxiService.updateById(orderTaxi);
-
- Driver driver1 = null;
- Company company = null;
- //中台修改订单状态
- ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
- request.setOrderId(orderTaxi.getTravelId());
- request.setStatus(orderTaxi.getState());
- if (null != orderTaxi.getDriverId()) {
- driver1 = driverService.selectById(orderTaxi.getDriverId());
- company = companyService.selectById(driver1.getCompanyId());
- request.setDriverId(driver1.getEmpId().toString());
- request.setSupplierShopId(company.getEnterCode());
- }
- if (2 == orderTaxi.getPromotion()) {
- Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
- request.setPromoterId(driver2.getEmpId().toString());
- }
- OrderUtil.modifyTravelItinerary(request);
}
} else {
integer = orderCancelService.saveData(id, 1, "无司机接单", "无司机接单", null, null, 2, 1, uid);
orderPrivateCar.setState(10);
this.updateById(orderPrivateCar);
-
- Driver driver1 = null;
- Company company = null;
- //中台修改订单状态
- ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
- request.setOrderId(orderPrivateCar.getTravelId());
- request.setStatus(orderPrivateCar.getState());
- if (null != orderPrivateCar.getDriverId()) {
- driver1 = driverService.selectById(orderPrivateCar.getDriverId());
- company = companyService.selectById(driver1.getCompanyId());
- request.setDriverId(driver1.getEmpId().toString());
- request.setSupplierShopId(company.getEnterCode());
- }
- if (2 == orderPrivateCar.getPromotion()) {
- Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
- request.setPromoterId(driver2.getEmpId().toString());
- }
- if(orderPrivateCar.getTravelId()!=null){
- OrderUtil.modifyTravelItinerary(request);
- }
}
} else {
OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
@@ -1075,23 +1045,25 @@
}
this.deleteTask(id);//删除定时任务
- Driver driver1 = null;
- Company company = null;
- //中台修改订单状态
- ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
- request.setOrderId(orderPrivateCar.getTravelId());
- request.setStatus(orderPrivateCar.getState());
- if (null != orderPrivateCar.getDriverId()) {
- driver1 = driverService.selectById(orderPrivateCar.getDriverId());
- company = companyService.selectById(driver1.getCompanyId());
- request.setDriverId(driver1.getEmpId().toString());
- request.setSupplierShopId(company.getEnterCode());
+ if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
+ Driver driver1 = null;
+ Company company = null;
+ //中台修改订单状态
+ ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+ request.setOrderId(orderPrivateCar.getTravelId());
+ request.setStatus(orderPrivateCar.getState());
+ if (null != orderPrivateCar.getDriverId()) {
+ driver1 = driverService.selectById(orderPrivateCar.getDriverId());
+ company = companyService.selectById(driver1.getCompanyId());
+ request.setDriverId(driver1.getEmpId().toString());
+ request.setSupplierShopId(company.getEnterCode());
+ }
+ if (2 == orderPrivateCar.getPromotion()) {
+ Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+ request.setPromoterId(driver2.getEmpId().toString());
+ }
+ OrderUtil.modifyTravelItinerary(request);
}
- if (2 == orderPrivateCar.getPromotion()) {
- Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
- request.setPromoterId(driver2.getEmpId().toString());
- }
- OrderUtil.modifyTravelItinerary(request);
new Thread(new Runnable() {
@Override
@@ -1154,7 +1126,7 @@
return ResultUtil.error("取消订单失败,订单信息有误", "");
}
if (orderPrivateCar.getState() != 12) {
- return ResultUtil.error("取消订单失败,不合法的操作", "");
+ return ResultUtil.error("订单已取消,请刷新页面", "");
}
OrderCancel orderCancel = null;
if (null == cancleId) {
@@ -1210,23 +1182,25 @@
orderPrivateCar.setBindId("");
this.updateById(orderPrivateCar);
- Driver driver = null;
- Company company = null;
- //中台修改订单状态
- ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
- request.setOrderId(orderPrivateCar.getTravelId());
- request.setStatus(orderPrivateCar.getState());
- if (null != orderPrivateCar.getDriverId()) {
- driver = driverService.selectById(orderPrivateCar.getDriverId());
- company = companyService.selectById(driver.getCompanyId());
- request.setDriverId(driver.getEmpId().toString());
- request.setSupplierShopId(company.getEnterCode());
+ if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
+ Driver driver = null;
+ Company company = null;
+ //中台修改订单状态
+ ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+ request.setOrderId(orderPrivateCar.getTravelId());
+ request.setStatus(orderPrivateCar.getState());
+ if (null != orderPrivateCar.getDriverId()) {
+ driver = driverService.selectById(orderPrivateCar.getDriverId());
+ company = companyService.selectById(driver.getCompanyId());
+ request.setDriverId(driver.getEmpId().toString());
+ request.setSupplierShopId(company.getEnterCode());
+ }
+ if (2 == orderPrivateCar.getPromotion()) {
+ Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+ request.setPromoterId(driver1.getEmpId().toString());
+ }
+ OrderUtil.modifyTravelItinerary(request);
}
- if (2 == orderPrivateCar.getPromotion()) {
- Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
- request.setPromoterId(driver1.getEmpId().toString());
- }
- OrderUtil.modifyTravelItinerary(request);
orderCancel.setState(2);
orderCancel.setPayType(3);
@@ -1270,14 +1244,10 @@
if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
map.put("state", map.get("oldState"));
}
- if(Integer.valueOf(String.valueOf(map.get("state"))) ==7 && (map.get("responsibilityType")==null || Integer.valueOf(String.valueOf(map.get("responsibilityType")))<4)){
- map.put("appealButton", 1);
- }
if(map.get("abnormalIntro")!=null){
map.put("appealStatus", 1);
}
-
-
+
if(Integer.valueOf(String.valueOf(map.get("state"))) != 8 && Integer.valueOf(String.valueOf(map.get("state"))) != 9){
map.put("redPacketMoney", null);
map.put("couponMoney", null);
@@ -1302,7 +1272,7 @@
return orderTaxiService.queryOrderServer(orderId, uid);
}
//计算预计距离和剩余时间
- String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
+ String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
if(null == value || "".equals(value)){
System.err.println("司机没有上传位置信息");
@@ -1898,7 +1868,7 @@
return ResultUtil.error("订单不在待支付状态,不允许支付", "");
}
Integer uid = orderPrivateCar.getUserId();
- Double orderMoney = orderPrivateCar.getOrderMoney();
+ Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
UserInfo userInfo = userInfoService.selectById(uid);
ResultUtil resultUtil = ResultUtil.success(new Object());
orderPrivateCar.setCouponMoney(0D);//初始化历史数据
@@ -1977,6 +1947,7 @@
orderPrivateCar.setState(8);
orderPrivateCar.setPayType(3);
orderPrivateCar.setPayMoney(orderMoney);
+ orderPrivateCar.setPayTime(new Date());
//处理优惠券和红包
if (null != userCouponRecord) {
@@ -1989,9 +1960,13 @@
query.setEndTime(new Date());
userRedPacketRecordService.updateById(query);
}
- //添加收入
- Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderPrivateCar.getOrderMoney());
- orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
+ //非追缴单才需要添加收入
+ if(0 == orderPrivateCar.getRecoveryOrder()){
+ //添加收入
+ Double orderMoney1 = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
+ Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderMoney1);
+ orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
+ }
// TODO: 2020/5/24 这里需要给司机和用户推送订单状态
new Thread(new Runnable() {
@@ -2028,8 +2003,9 @@
if (orderPrivateCar.getState() != 7) {
return ResultUtil.error("订单不在待支付状态,不允许支付", new ArrayList<>());
}
+
Integer uid = orderPrivateCar.getUserId();
- Double orderMoney = orderPrivateCar.getOrderMoney();
+ Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
UserInfo userInfo = userInfoService.selectById(uid);
ResultUtil resultUtil = ResultUtil.success(new Object());
orderPrivateCar.setCouponMoney(0D);//初始化历史数据
@@ -2192,19 +2168,58 @@
orderMoney = new BigDecimal(orderMoney).setScale(2, RoundingMode.HALF_UP).doubleValue();
System.out.println("!!!" + orderMoney + "!!!!");
orderMoney = orderMoney < 0 ? 0 : orderMoney;
+ orderPrivateCar.setPayMoney(orderMoney);
if (payType == 1) {//微信支付
if (orderMoney == 0) {
return ResultUtil.error("请使用余额支付");
}
// String app = type == 1 ? "APP" : "JSAPI";
// resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_1_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId());
-
+ //如果没有创建行程,需要先创建行程单
Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+ if(ToolUtil.isEmpty(orderPrivateCar.getTravelId())){
+ Company company = companyService.selectById(driver.getCompanyId());
+ //调三方订单中心创建行程单
+ CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+ request.setOrderNo("PR" + orderPrivateCar.getId());
+ request.setCustomerId(userInfo.getOnconUUID());
+ request.setDriverId(driver.getEmpId().toString());
+ request.setSupplierShopId(company.getEnterCode());
+ if(orderPrivateCar.getPromotion() !=null && 2 == orderPrivateCar.getPromotion()){
+ Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+ request.setPromoterId(driver1.getEmpId().toString());
+ }
+ request.setServiceType(2);
+ String travelItinerary = OrderUtil.createTravelItinerary(request);
+ orderPrivateCar.setTravelId(travelItinerary);
+
+ //创建订单
+ //中台修改订单状态
+ ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+ request1.setOrderId(orderPrivateCar.getTravelId());
+ request1.setStatus(orderPrivateCar.getState());
+ if (null != orderPrivateCar.getDriverId()) {
+ request1.setDriverId(driver.getEmpId().toString());
+ request1.setSupplierShopId(company.getEnterCode());
+ }
+ if (2 == orderPrivateCar.getPromotion()) {
+ Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+ request1.setPromoterId(driver2.getEmpId().toString());
+ }
+ OrderUtil.modifyTravelItinerary(request1);
+ }
+
+
if(null == orderPrivateCar.getIsCreated() || 0 == orderPrivateCar.getIsCreated()){
//调用中台创建订单及拉起支付接口
TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData();
tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString());
- tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
+ //追缴单不要分账
+ if(0 == orderPrivateCar.getRecoveryOrder()){
+ tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isCompensate\":\"0\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
+ }else{
+ tradeOrderCreateData.setField1("{\"profitSharing\":\"0\",\"isCompensate\":\"1\",\"isPromote\":\"0\"}");
+ }
tradeOrderCreateData.setCharge(new BigDecimal(orderMoney));
tradeOrderCreateData.setOrderId(orderPrivateCar.getTravelId());
tradeOrderCreateData.setOrderNo("PR" + orderPrivateCar.getId());
@@ -2214,13 +2229,19 @@
tradeOrderCreateData.setOrderDesc("完成订单");
tradeOrderCreateData.setRetUrl(path);
tradeOrderCreateData.setClientIp(ip);
-
+
List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
+ if(0 == orderPrivateCar.getRecoveryOrder()){
+ goodsInfoRequest.setProfitSharing("1");
+ }else{
+ goodsInfoRequest.setProfitSharing("0");
+ goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
+ }
goodsInfo.add(goodsInfoRequest);
tradeOrderCreateData.setGoodsInfo(goodsInfo);
- TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData);
+ TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData, orderPrivateCar.getRecoveryOrder());
PayInfo payInfo = tradeOrderCreate.getPayInfo();
if(!"000000".equals(payInfo.getRetCode())){
return ResultUtil.error(payInfo.getRetMsg());
@@ -2228,6 +2249,15 @@
orderPrivateCar.setIsCreated(1);
resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
}else{
+ //查询支付信息
+ GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
+ getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar.getTravelId());
+ GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
+ String status = getPaymentInfo.getStatus();
+ if("1".equals(status) || "2".equals(status)){
+ payOrderPrivateCarCallback(orderPrivateCar.getId(), getPaymentInfo.getPayId(), 1);
+ return ResultUtil.error("订单已完成支付,不允许重复支付", new ArrayList<>());
+ }
//拉起支付
TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
tradePayOff1Data.setPartnerPayId(orderPrivateCar.getTravelId());
@@ -2238,9 +2268,15 @@
List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
+ if(0 == orderPrivateCar.getRecoveryOrder()){
+ goodsInfoRequest.setProfitSharing("1");
+ }else{
+ goodsInfoRequest.setProfitSharing("0");
+ goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
+ }
goodsInfo.add(goodsInfoRequest);
tradePayOff1Data.setGoodsInfo(goodsInfo);
- PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data);
+ PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data, orderPrivateCar.getRecoveryOrder());
if(!"000000".equals(payInfo.getRetCode())){
return ResultUtil.error(payInfo.getRetMsg());
}
@@ -2267,11 +2303,11 @@
request.setDriverId(driver.getEmpId().toString());
ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request);
TravelItinerary travelItinerary = travelItineraryList.getList().get(0);
- if(travelItinerary.getStatus() != 7 || travelItinerary.getOrderStatus() == 11){
- GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
- getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar1.getTravelId());
- GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
- payOrderPrivateCarCallback(orderPrivateCar1.getId(), getPaymentInfo.getPayId(), 1);
+ if(travelItinerary.getStatus() != 7 || Arrays.asList(3, 11).contains(travelItinerary.getOrderStatus())){
+ GetPaymentInfoDataRequest getPaymentInfoDataRequest1 = new GetPaymentInfoDataRequest();
+ getPaymentInfoDataRequest1.setPartnerPayId(orderPrivateCar1.getTravelId());
+ GetPaymentInfo getPaymentInfo1 = OrderUtil.paymentInfo(getPaymentInfoDataRequest1);
+ payOrderPrivateCarCallback(orderPrivateCar1.getId(), getPaymentInfo1.getPayId(), 1);
break;
}
Thread.sleep(wait);
@@ -2312,7 +2348,7 @@
orderPrivateCar.setState(8);
orderPrivateCar.setPayType(3);
- orderPrivateCar.setPayMoney(orderMoney);
+ orderPrivateCar.setPayTime(new Date());
//处理优惠券和红包
if (null != userCouponRecord) {
@@ -2329,11 +2365,25 @@
query.setEndTime(new Date());
userRedPacketRecordService.updateById(query);
}
-
- //添加收入
- Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderPrivateCar.getOrderMoney());
- orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
-
+ //非追缴单才添加收入记录
+ if(0 == orderPrivateCar.getRecoveryOrder()){
+ //添加收入
+ Double orderMoney1 = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
+ Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderMoney1);
+ orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
+ }
+
+ //待审核的异常单修改状态为已关闭
+ if(2 == orderPrivateCar.getAbnormal() && 1 == orderPrivateCar.getAbnormalStatus()){
+ orderPrivateCar.setAbnormalStatus(3);
+ orderPrivateCar.setResponsibilityMoney(new BigDecimal(orderPrivateCar.getOrderMoney()));
+ orderPrivateCar.setResponsibilityType(3);
+ orderPrivateCar.setAbnormalRemark("乘客已支付订单,申诉已自动关闭");
+ }
+ this.updateAllColumnById(orderPrivateCar);
+ promotion(orderPrivateCar.getId());
+
+
// TODO: 2020/5/24 这里需要给司机和用户推送订单状态
new Thread(new Runnable() {
@Override
@@ -2357,12 +2407,17 @@
if (orderMoney == 0) {
return ResultUtil.error("请使用余额支付");
}
+ orderPrivateCar.setPayTime(new Date());
Integer integer = paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderId, 1, 4, orderMoney, "", 1);
resultUtil = appOrderController.placeAnOrder(new BigDecimal(orderMoney), 4, orderId, 6, integer);
}
-
- this.updateAllColumnById(orderPrivateCar);
+
+ if(payType != 3){
+ this.updateAllColumnById(orderPrivateCar);
+ }
+
+
return resultUtil;
}
@@ -2470,23 +2525,25 @@
orderPrivateCar.setTelX("");
this.updateById(orderPrivateCar);
- Driver driver = null;
- Company company = null;
- //中台修改订单状态
- ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
- request.setOrderId(orderPrivateCar.getTravelId());
- request.setStatus(orderPrivateCar.getState());
- if (null != orderPrivateCar.getDriverId()) {
- driver = driverService.selectById(orderPrivateCar.getDriverId());
- company = companyService.selectById(driver.getCompanyId());
- request.setDriverId(driver.getEmpId().toString());
- request.setSupplierShopId(company.getEnterCode());
+ if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
+ Driver driver = null;
+ Company company = null;
+ //中台修改订单状态
+ ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+ request.setOrderId(orderPrivateCar.getTravelId());
+ request.setStatus(orderPrivateCar.getState());
+ if (null != orderPrivateCar.getDriverId()) {
+ driver = driverService.selectById(orderPrivateCar.getDriverId());
+ company = companyService.selectById(driver.getCompanyId());
+ request.setDriverId(driver.getEmpId().toString());
+ request.setSupplierShopId(company.getEnterCode());
+ }
+ if (2 == orderPrivateCar.getPromotion()) {
+ Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+ request.setPromoterId(driver1.getEmpId().toString());
+ }
+ OrderUtil.modifyTravelItinerary(request);
}
- if (2 == orderPrivateCar.getPromotion()) {
- Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
- request.setPromoterId(driver1.getEmpId().toString());
- }
- OrderUtil.modifyTravelItinerary(request);
query.setState(2);
query.setCode(order_id);
@@ -2528,12 +2585,15 @@
orderPrivateCar.setState(8);
orderPrivateCar.setPayType(type);
orderPrivateCar.setPayMoney(query.getAmount());
+ orderPrivateCar.setPayTime(new Date());
UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
- userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
- userInfoService.updateById(userInfo);
+ if(null != query1){
+ userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
+ userInfoService.updateById(userInfo);
+ }
//处理优惠券和红包
if (null != orderPrivateCar.getCouponId()) {
@@ -2562,11 +2622,23 @@
query.setState(2);
query.setCode(order_id);
paymentRecordService.updateById(query);
-
- //添加收入
- Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderPrivateCar.getOrderMoney());
- orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
+
+ //非追缴单才需要记录收入
+ if(0 == orderPrivateCar.getRecoveryOrder()){
+ //添加收入
+ Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
+ Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderMoney);
+ orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
+ }
+ //待审核的异常单修改状态为已关闭
+ if(2 == orderPrivateCar.getAbnormal() && 1 == orderPrivateCar.getAbnormalStatus()){
+ orderPrivateCar.setAbnormalStatus(3);
+ orderPrivateCar.setResponsibilityMoney(new BigDecimal(orderPrivateCar.getOrderMoney()));
+ orderPrivateCar.setResponsibilityType(3);
+ orderPrivateCar.setAbnormalRemark("乘客已支付订单,申诉已自动关闭");
+ }
this.updateById(orderPrivateCar);
+ promotion(orderPrivateCar.getId());
// TODO: 2020/5/24 这里需要给司机和用户推送订单状态
new Thread(new Runnable() {
@@ -2644,7 +2716,7 @@
OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
List<PushOrder> querys = pushOrderService.querys(null, 2, openCity.getId());//获取需要推送的次数
int time = 0;
- for (int i = 1; i <= querys.size() + 5; i++) {
+ for (int i = 1; i <= querys.size() + 15; i++) {
int finalI = i;
PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
time += pushOrder.getPushTime() * 1000;
@@ -2808,49 +2880,66 @@
OpenCity openCity = openCityService.openCity1(startLon.toString(), startLat.toString());
List<PushOrder> querys = pushOrderService.querys(null, 1, openCity.getId());//获取需要推送的次数
//整轮派单结束,若无司机接单,系统自动增加派单5轮,若增加5轮后任无司机接单,则系统结束派单,乘客端显示无司机接单、是否再次打车
- for (int i = 1; i <= querys.size() + 5; i++) {
- OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id);
- if (null == orderPrivateCar || orderPrivateCar.getState() > 1) {
- break;
- }
- int finalI = i;
- PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
- System.out.println("pushOrder:" + pushOrder);
- if (orderPrivateCar.getState() > 1) {
- break;
- }
- //获取空闲司机
- List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, pushOrder.getPushDistance(), null);//所有附近空闲司机
- if (list.size() > 0) {
- double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
- int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
- lastIndex = lastIndex == 0 ? list.size() : lastIndex;
- list = list.subList(0, lastIndex);//获取空闲司机中占比数据
- for (Driver driver : list) {//开始进行推送
- boolean bo = false;
- for (Integer integer : integers) {
- if (integer.compareTo(driver.getId()) == 0) {
- bo = true;
- break;
+ int num = 0;
+ for (int j = 0; j < 6; j++) {
+ Boolean push = false;
+ for (int i = 1; i <= querys.size(); i++) {
+ num++;
+ OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id);
+ if (null == orderPrivateCar || orderPrivateCar.getState() > 1) {
+ push = true;
+ break;
+ }
+ int finalI = i;
+ PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
+ System.out.println("pushOrder:" + pushOrder);
+ if (orderPrivateCar.getState() > 1) {
+ push = true;
+ break;
+ }
+ //获取空闲司机
+ List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, pushOrder.getPushDistance(), null);//所有附近空闲司机
+ //随机排序
+ Collections.shuffle(list);
+ if (list.size() > 0) {
+ double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
+ int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
+ lastIndex = lastIndex == 0 ? list.size() : lastIndex;
+ list = list.subList(0, lastIndex);//获取空闲司机中占比数据
+ for (Driver driver : list) {//开始进行推送
+ boolean bo = false;
+ for (Integer integer : integers) {
+ if (integer.compareTo(driver.getId()) == 0) {
+ bo = true;
+ break;
+ }
}
+ if (bo) {
+ continue;
+ }
+ pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime());
}
- if (bo) {
- continue;
- }
- pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime());
+ }
+ Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
+ OrderPrivateCar orderPrivateCar1 = orderPrivateCarMapper.selectById(orderPrivateCar.getId());
+ Integer state =orderPrivateCar1.getState();
+ if (state > 1) {
+ orderIds.remove(orderPrivateCar.getId());
+ push = true;
+ break;
+ }
+ if (num == 18) {
+ orderPrivateCar1.setState(10);
+ orderPrivateCarMapper.updateById(orderPrivateCar1);
+ pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, 1);
+ orderIds.remove(orderPrivateCar.getId());
}
}
- Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
- Integer state = orderPrivateCarMapper.selectById(orderPrivateCar.getId()).getState();
- if (state > 1) {
- orderIds.remove(orderPrivateCar.getId());
+ if(push){
break;
}
- if (i == querys.size() + 5) {
- pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
- orderIds.remove(orderPrivateCar.getId());
- }
}
+
} catch (Exception e) {
e.printStackTrace();
}
@@ -2879,7 +2968,7 @@
}
OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
List<PushOrder> querys = pushOrderService.querys(null, 1, openCity.getId());//获取需要推送的次数
- for (int i = 1; i <= querys.size() + 5; i++) {
+ for (int i = 1; i <= querys.size() + 15; i++) {
OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id);
if (null == orderPrivateCar || orderPrivateCar.getState() > 1) {
break;
@@ -2922,8 +3011,8 @@
orderIds.remove(orderPrivateCar.getId());
return;
}
- if (i == querys.size() + 5 && state == 1) {
- pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
+ if (i == querys.size() + 15 && state == 1) {
+ pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, 1);
orderIds.remove(orderPrivateCar.getId());
}
}
@@ -2957,26 +3046,21 @@
UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
// if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){
// 开始绑定的 后面到期也结算
+ System.out.println("eeeee+"+orderPrivateCar.getPromotionDriverId());
if(orderPrivateCar.getPromotionDriverId()!=null ){
- String registAreaCode = userInfo.getRegistAreaCode();
- TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 1 + ", bizType) limit 1"));
+ String registAreaCode = driverService.selectById(orderPrivateCar.getPromotionDriverId()).getPlaceOfEmployment();
+ TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).le("startTime", new Date()).ge("endTime", new Date()).last("AND FIND_IN_SET(" + 1 + ", bizType) limit 1"));
+ System.out.println("ddddd"+tDriverPromotionActivity);
if(tDriverPromotionActivity!=null){
Double payMoney = orderPrivateCar.getPayMoney();
+ System.out.println(payMoney);
BigDecimal bigDecimal = tDriverPromotionActivity.getCommissionRatio().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(payMoney)).setScale(2, RoundingMode.HALF_UP);
+ System.out.println(bigDecimal);
orderPrivateCar.setPromotionDriverId(userInfo.getBindDriverId());
orderPrivateCar.setPromotionMoney(bigDecimal);
orderPrivateCar.setPromotionActivityId(tDriverPromotionActivity.getId());
+ orderPrivateCar.setSuccessTime(new Date());
this.baseMapper.updateById(orderPrivateCar);
- }
- }
-
- // 是否异常订单
- if (orderPrivateCar.getResponsibilityType() !=null && orderPrivateCar.getResponsibilityType() >2) {
- TAbnormalPayOrder tAbnormalPayOrder = abnormalPayOrderMapper.selectList(new EntityWrapper<TAbnormalPayOrder>().eq("type", 1).eq("orderNum", orderPrivateCar.getOrderNum())).stream().findFirst().orElse(null);
- if (tAbnormalPayOrder != null) {
- tAbnormalPayOrder.setPayStatus(2);
- tAbnormalPayOrder.setPayTime(new Date());
- abnormalPayOrderMapper.updateById(tAbnormalPayOrder);
}
}
}
--
Gitblit v1.7.1