DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -104,6 +104,9 @@ @Autowired private FleetEngineUtil fleetEngineUtil; @Autowired private IOrderCancelService orderCancelService; @@ -1283,6 +1286,7 @@ continue; } List<Income> incomes3 = incomeService.queryData(1, null, 2, orderLogistics.getId(), 4); map1.put("travelMoney", orderLogistics != null ? orderLogistics.getOrderMoney() : 0);//行程费 map1.put("parkMoney", orderLogistics != null ? orderLogistics.getParkMoney() : 0);//停车费 map1.put("tipMoney", 0);//小费 map1.put("roadTollMoney", orderLogistics != null ? orderLogistics.getRoadTollMoney() : 0);//过路费 @@ -1295,9 +1299,9 @@ } List<Income> incomes4 = incomeService.queryData(1, null, 2, orderLogistics1.getId(), 5); map1.put("travelMoney", orderLogistics1 != null ? orderLogistics1.getOrderMoney() : 0);//行程费 map1.put("parkMoney", 0);//停车费 map1.put("parkMoney", orderLogistics1 != null ? orderLogistics1.getParkMoney() : 0);//停车费 map1.put("tipMoney", 0);//小费 map1.put("roadTollMoney", 0);//过路费 map1.put("roadTollMoney", orderLogistics1 != null ? orderLogistics1.getRoadTollMoney() : 0);//过路费 map1.put("rakeMoney", incomes4.size() > 0 ? incomes4.get(0).getMoney() : 0);//抽成 break; } @@ -1325,6 +1329,10 @@ baseWarpper.setName(language == 1 ? "取消订单费用" : language == 2 ? "Cancellation fee" : "Frais d'annulation"); List<Income> incomes = incomeService.queryData(1, 1, 3, Integer.valueOf(map.get("incomeId").toString()), Integer.valueOf(map.get("orderType").toString())); Map<String, Object> map1 = new HashMap<>(); OrderCancel orderCancel = orderCancelService.selectOne(new EntityWrapper<OrderCancel>().eq("orderType", map.get("orderType")) .eq("orderId", map.get("incomeId")).eq("state", 2)); map1.put("travelMoney", orderCancel.getMoney());//支付金额 map1.put("rakeMoney", incomes.size() > 0 ? incomes.get(0).getMoney() : 0);//抽成 baseWarpper.setData(map1); } DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -156,6 +156,9 @@ @Resource private CarModelMapper carModelMapper; @Autowired private ISettlementRecordService settlementRecordService; @Override @@ -1264,7 +1267,6 @@ if(car.getAuthState()==4){ return ResultUtil.error(language == 1 ? "请完善资料后再出车" : language == 2 ? "Please complete data before driving." : "Veuillez compléter les données avant de conduire."); } driverWork = new DriverWork(); driverWork.setState(1); DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
@@ -6,22 +6,25 @@ import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.dao.CarModelMapper; import com.stylefeng.guns.modular.system.dao.SettlementRecordMapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.DateUtil; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil; 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.QueryHistoricalSettlement; import com.stylefeng.guns.modular.system.warpper.QuerySettlementAmount; import com.stylefeng.guns.modular.system.warpper.QuerySettlementAmountDetails; import org.apache.shiro.util.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; @@ -55,6 +58,24 @@ @Resource private IBalanceUsageRecordService balanceUsageRecordService; @Resource private IDriverWorkService driverWorkService; @Autowired private PushUtil pushUtil; @Autowired private RedisUtil redisUtil; @Autowired private ICarService carService; @Autowired private FleetEngineUtil fleetEngineUtil; @Resource private CarModelMapper carModelMapper; @@ -69,9 +90,8 @@ SettlementAllocation settlementAllocation = settlementAllocationService.selectOne(null); if(null != settlementAllocation) { JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); Double maxPrice = jsonObject.getDouble("maxPrice"); Integer type = jsonObject.getInteger("type"); querySettlementAmount.setType(null != maxPrice ? 1 : type); querySettlementAmount.setType(type); List<SettlementRecord> settlementRecords = this.selectList(new EntityWrapper<SettlementRecord>().eq("driverId", driverId).eq("paymentStatus", 1)); double sum = settlementRecords.stream().mapToDouble(SettlementRecord::getPayMoney).sum(); List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driverId).isNull("settlementRecordId")); @@ -124,7 +144,6 @@ SettlementAllocation settlementAllocation = settlementAllocationService.selectOne(null); if(null == settlementAllocation){ JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); Double maxPrice = jsonObject.getDouble("maxPrice"); Integer type = jsonObject.getInteger("type"); List<SettlementDetail> settlementDetails = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driverId).isNull("settlementRecordId")); @@ -133,7 +152,7 @@ SettlementRecord settlementRecord = new SettlementRecord(); settlementRecord.setDay(new Date()); settlementRecord.setDriverId(driverId); settlementRecord.setType(null != maxPrice ? 1 : type); settlementRecord.setType(type); settlementRecord.setPaymentStatus(1); settlementRecord.setPayMoney(new BigDecimal(sum).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); settlementRecord.setInsertTime(new Date()); @@ -351,6 +370,64 @@ JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); Integer type = jsonObject.getInteger("type"); Integer day = jsonObject.getInteger("day"); if(type == 1){//日结算 List<Map<String, Object>> list = settlementDetailService.queryGroupDriver(); for (Map<String, Object> map : list) { Integer driverId = Integer.valueOf(map.get("driverId").toString()); Double price = Double.valueOf(map.get("price").toString()); SettlementRecord settlementRecord = new SettlementRecord(); settlementRecord.setDay(new Date()); settlementRecord.setDriverId(driverId); settlementRecord.setType(1); settlementRecord.setPaymentStatus(1); settlementRecord.setPayMoney(price); settlementRecord.setInsertTime(new Date()); this.insert(settlementRecord); List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driverId).isNull("settlementRecordId")); settlementDetailList.forEach(s -> { s.setSettlementRecordId(settlementRecord.getId()); }); if(settlementDetailList.size() > 0){ settlementDetailService.updateBatchById(settlementDetailList); } //强制司机下班 DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>() .eq("driverId", driverId).eq("state", 1)); if(null != driverWork){ driverWork.setEndTime(new Date()); driverWork.setState(2); driverWorkService.updateById(driverWork); Driver driver = driverService.selectById(driverId); driver.setState(1); driverService.updateById(driver); Car car = carService.selectById(driver.getCarId()); if(!StringUtils.hasLength(car.getVehicleId())){ car.setVehicleId(UUIDUtil.getRandomCode()); carService.updateById(car); } //司机下班,修改谷歌上的车辆信息 new Thread(()->{ try { CarModel carModel = carModelMapper.selectById(car.getCarModelId()); String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); if(ToolUtil.isEmpty(vehicles)){ fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); }else{ fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); } }catch (Exception e){ e.printStackTrace(); } }).start(); } } } if(type == 2 && w == day){//周结算 List<Map<String, Object>> list = settlementDetailService.queryGroupDriver(); for (Map<String, Object> map : list) { @@ -372,6 +449,39 @@ }); if(settlementDetailList.size() > 0){ settlementDetailService.updateBatchById(settlementDetailList); } //强制司机下班 DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>() .eq("driverId", driverId).eq("state", 1)); if(null != driverWork){ driverWork.setEndTime(new Date()); driverWork.setState(2); driverWorkService.updateById(driverWork); Driver driver = driverService.selectById(driverId); driver.setState(1); driverService.updateById(driver); Car car = carService.selectById(driver.getCarId()); if(!StringUtils.hasLength(car.getVehicleId())){ car.setVehicleId(UUIDUtil.getRandomCode()); carService.updateById(car); } //司机下班,修改谷歌上的车辆信息 new Thread(()->{ try { CarModel carModel = carModelMapper.selectById(car.getCarModelId()); String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); if(ToolUtil.isEmpty(vehicles)){ fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); }else{ fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); } }catch (Exception e){ e.printStackTrace(); } }).start(); } } } @@ -397,6 +507,39 @@ if(settlementDetailList.size() > 0){ settlementDetailService.updateBatchById(settlementDetailList); } //强制司机下班 DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>() .eq("driverId", driverId).eq("state", 1)); if(null != driverWork){ driverWork.setEndTime(new Date()); driverWork.setState(2); driverWorkService.updateById(driverWork); Driver driver = driverService.selectById(driverId); driver.setState(1); driverService.updateById(driver); Car car = carService.selectById(driver.getCarId()); if(!StringUtils.hasLength(car.getVehicleId())){ car.setVehicleId(UUIDUtil.getRandomCode()); carService.updateById(car); } //司机下班,修改谷歌上的车辆信息 new Thread(()->{ try { CarModel carModel = carModelMapper.selectById(car.getCarModelId()); String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); if(ToolUtil.isEmpty(vehicles)){ fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); }else{ fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); } }catch (Exception e){ e.printStackTrace(); } }).start(); } } } } ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/PlatformController.java
@@ -1054,7 +1054,7 @@ private IOrderCancelService orderCancelService; @RequestMapping(value = "/water/list") @ResponseBody public Object list1(Integer time,String insertTime,Integer payType,Integer type) { public Object list1(Integer time,String insertTime,Integer payType,Integer type, String code) { if (payType!=null){ switch (payType){ case 1: @@ -1248,6 +1248,13 @@ break; } }else{ if(ToolUtil.isNotEmpty(code)){ tOrderPrivateCarEntityWrapper.like("orderNum", code); tOrderLogisticsEntityWrapper.like("orderNum", code); orderType.like("", code); } // 只查询用户订单 tOrderPrivateCars = orderPrivateCarService.selectList(tOrderPrivateCarEntityWrapper); tOrderLogistics = orderLogisticsService.selectList(tOrderLogisticsEntityWrapper); @@ -1277,6 +1284,10 @@ if (tOrderPrivateCar.getPayType()!=payType){ continue; } } String orderNum = tOrderPrivateCar.getOrderNum(); if(ToolUtil.isNotEmpty(code) && !orderNum.contains(code)){ continue; } WaterVO waterVO = new WaterVO(); waterVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime())); @@ -1310,6 +1321,10 @@ if (tOrderLogistic.getPayType()!=payType){ continue; } } String orderNum = tOrderLogistic.getOrderNum(); if(ToolUtil.isNotEmpty(code) && !orderNum.contains(code)){ continue; } WaterVO waterVO = new WaterVO(); waterVO.setInsertTime(format.format(tOrderLogistic.getInsertTime())); @@ -1348,6 +1363,11 @@ if (tOrderPrivateCar == null){ continue; } String orderNum = tOrderPrivateCar.getOrderNum(); if(ToolUtil.isNotEmpty(code) && !orderNum.contains(code)){ continue; } waterVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime())); waterVO.setType("用户订单消费"); if (payType!=null){ @@ -1386,6 +1406,10 @@ continue; } } String orderNum1 = tOrderLogistics1.getOrderNum(); if(ToolUtil.isNotEmpty(code) && !orderNum1.contains(code)){ continue; } WaterVO waterVO1 = new WaterVO(); waterVO1.setInsertTime(format.format(tOrderLogistics1.getInsertTime())); waterVO1.setType("用户订单消费"); @@ -1422,6 +1446,10 @@ if(payType!=null && payType == 2){ break; } String code1 = tPubWithdrawal.getCode(); if(ToolUtil.isNotEmpty(code) && !code1.contains(code)){ continue; } WaterVO waterVO = new WaterVO(); waterVO.setInsertTime(format.format(tPubWithdrawal.getHandleTime())); waterVO.setCode(tPubWithdrawal.getCode()); @@ -1442,6 +1470,10 @@ for (TPubWithdrawal tPubWithdrawal : user) { if(payType!=null && payType == 2){ break; } String code1 = tPubWithdrawal.getCode(); if(ToolUtil.isNotEmpty(code) && !code1.contains(code)){ continue; } WaterVO waterVO = new WaterVO(); waterVO.setInsertTime(format.format(tPubWithdrawal.getHandleTime())); @@ -1466,6 +1498,10 @@ if (paymentRecord!=null){ if (paymentRecord.getState() == 1){ // 临时数据 continue; } String code1 = paymentRecord.getCode(); if(ToolUtil.isNotEmpty(code) && !code1.contains(code)){ continue; } waterVO.setInsertTime(format.format(paymentRecord.getInsertTime())); @@ -1550,6 +1586,10 @@ // 查询订单信息 TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(income.getOrderId()); if (tOrderPrivateCar==null){ continue; } String code1 = tOrderPrivateCar.getOrderNum(); if(ToolUtil.isNotEmpty(code) && !code1.contains(code)){ continue; } platformVO.setCode(tOrderPrivateCar.getOrderNum()); @@ -1640,6 +1680,10 @@ case 4: continue; } String code2 = tOrderLogistics1.getOrderNum(); if(ToolUtil.isNotEmpty(code) && !code2.contains(code)){ continue; } platformVO.setCode(tOrderLogistics1.getOrderNum()); TDriver tDriver1 = driverService.selectById(tOrderLogistics1.getDriverId()); if (tDriver1!=null){ ManagementIGOTravel/guns-admin/src/main/resources/application-dev.yml
@@ -42,7 +42,7 @@ spring: datasource: url: jdbc:mysql://192.168.110.80:3306/igotravel2.0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B0 url: jdbc:mysql://127.0.0.1:3306/igotravel2.0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B0 username: root # password: HjKbXilb9zajmXbl password: 123456 ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/platform/watter.html
@@ -93,6 +93,9 @@ <option value="2">手机支付</option> </#SelectCon> </div> <div class="col-sm-3"> <#NameCon id="code" name="订单号" /> </div> <div class="col-sm-3"> <#button name="查询" icon="fa-search" clickFun="TUser.search()"/> <#button name="重置" icon="fa-trash" clickFun="TUser.resetSearch()" space="true"/> ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/settlementAllocation/settlementAllocation.html
@@ -10,6 +10,10 @@ <div class="col-sm-12"> <div class="row" style="padding: 20px;"> <#button name="修改" icon="fa-edit" clickFun="SettlementAllocation.setSettlementAllocation()"/> <div class="form-group"> <input type="radio" name="type" value="1" ${null != item && item.type == '1' ? 'checked' : ''}> 每天超过 <input type="number" min="1" max="31"class="date" value="${null != item && item.type == '1' ? item.maxPrice : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> 必须结算 </div> <div class="form-group"> <input type="radio" name="type" value="3" ${null != item && item.type == '3' ? 'checked' : ''}> 每月 每月<input type="number" min="1" max="31" class="date" value="${null != item && item.type == '3' ? item.day : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> 号可结算 @@ -19,7 +23,7 @@ 每周 <input type="number" min="1" max="7" class="date" value="${null != item && item.type == '2' ? item.day : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> (几)可结算 </div> <div class="form-group"> 每天超过 <input type="number" min="1" max="31" id="maxPrice" value="${null != item ? item.maxPrice : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> 必须结算 每天超过 <input type="number" min="1" max="31" id="maxPrice" value="${null != item && item.type != '1' ? item.maxPrice : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> 必须结算 </div> </div> <div class="row"> ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/platform/water.js
@@ -225,6 +225,7 @@ queryData['insertTime'] = $("#insertTime").val(); queryData['type'] = $("#type").val(); queryData['payType'] = $("#payType").val(); queryData['code'] = $("#code").val(); TUser.table.refresh({query: queryData}); TUser.getCount(); }; @@ -233,6 +234,7 @@ $("#insertTime").val(""); $("#type").val(""); $("#payType").val(""); $("#code").val(""); TUser.search(); }; @@ -245,12 +247,12 @@ TUser.table = table.init(); }); TUser.sendAjaxRequest = function(url,type,data){ TUser.sendAjaxRequest = function(url,type,data){ $.ajax({ url : url, type : type, data : data, success : function(result) { url : url, type : type, data : data, success : function(result) { if(result.code==500) { Feng.info(result.message); }else { @@ -258,18 +260,18 @@ } TUser.table.refresh(); }, error : function() { error : function() { Feng.error("excel上传失败!"); }, cache : false, contentType : false, processData : false cache : false, contentType : false, processData : false }); }; var agreement; var agreement; $(function(){ agreement = new agreement(); agreement = new agreement(); agreement.init(); }); ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/settlementAllocation/settlementAllocation.js
@@ -72,6 +72,9 @@ return } let maxPrice = $('#maxPrice').val(); if(1 == $(type).val()){ maxPrice = day; } // if('' == maxPrice || null == maxPrice){ // Feng.error("请输入每日结算金额") // return UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -1736,6 +1736,7 @@ if(null != settlementAllocation){ JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); Double maxPrice = jsonObject.getDouble("maxPrice"); Integer type1 = jsonObject.getInteger("type"); if(null != maxPrice){ List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driver.getId()) .isNull("settlementRecordId").last(" and DATE_FORMAT(now(), '%Y-%m-%d') = DATE_FORMAT(createTime, '%Y-%m-%d')")); @@ -1746,12 +1747,12 @@ //日结算 if(maxPrice.compareTo(total.doubleValue()) <= 0){ SettlementRecord settlementRecord = settlementRecordService.selectOne(new EntityWrapper<SettlementRecord>().eq("driverId", orderLogistics.getDriverId()) .eq("type", 1).eq("paymentStatus", 1).last(" and day = DATE_FORMAT(now(), '%Y-%m-%d')")); .eq("type", type1).eq("paymentStatus", 1).last(" and day = DATE_FORMAT(now(), '%Y-%m-%d')")); if(null == settlementRecord){ settlementRecord = new SettlementRecord(); settlementRecord.setDay(new Date()); settlementRecord.setDriverId(orderLogistics.getDriverId()); settlementRecord.setType(1); settlementRecord.setType(type1); settlementRecord.setPaymentStatus(1); settlementRecord.setPayMoney(total.doubleValue()); settlementRecord.setInsertTime(new Date()); @@ -1764,6 +1765,37 @@ detail.setSettlementRecordId(settlementRecord.getId()); settlementDetailService.updateById(detail); } //强制司机下班 DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>() .eq("driverId", orderLogistics.getDriverId()).eq("state", 1)); if(null != driverWork){ driverWork.setEndTime(new Date()); driverWork.setState(2); driverWorkService.updateById(driverWork); driver.setState(1); driverService.updateById(driver); Car car = carService.selectById(driver.getCarId()); if(!org.apache.shiro.util.StringUtils.hasLength(car.getVehicleId())){ car.setVehicleId(UUIDUtil.getRandomCode()); carService.updateById(car); } //司机下班,修改谷歌上的车辆信息 new Thread(()->{ try { CarModel carModel = carModelMapper.selectById(car.getCarModelId()); String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); if(ToolUtil.isEmpty(vehicles)){ fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); }else{ fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); } }catch (Exception e){ e.printStackTrace(); } }).start(); } } } } UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -1912,6 +1912,7 @@ if(null != settlementAllocation){ JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); Double maxPrice = jsonObject.getDouble("maxPrice"); Integer type1 = jsonObject.getInteger("type"); if(null != maxPrice){ List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driver.getId()) .isNull("settlementRecordId").last(" and DATE_FORMAT(now(), '%Y-%m-%d') = DATE_FORMAT(createTime, '%Y-%m-%d')")); @@ -1922,12 +1923,12 @@ //日结算 if(maxPrice.compareTo(total.doubleValue()) <= 0){ SettlementRecord settlementRecord = settlementRecordService.selectOne(new EntityWrapper<SettlementRecord>().eq("driverId", orderPrivateCar.getDriverId()) .eq("type", 1).eq("paymentStatus", 1).last(" and day = DATE_FORMAT(now(), '%Y-%m-%d')")); .eq("type", type1).eq("paymentStatus", 1).last(" and day = DATE_FORMAT(now(), '%Y-%m-%d')")); if(null == settlementRecord){ settlementRecord = new SettlementRecord(); settlementRecord.setDay(new Date()); settlementRecord.setDriverId(orderPrivateCar.getDriverId()); settlementRecord.setType(1); settlementRecord.setType(type1); settlementRecord.setPaymentStatus(1); settlementRecord.setPayMoney(total.doubleValue()); settlementRecord.setInsertTime(new Date()); @@ -1940,6 +1941,37 @@ detail.setSettlementRecordId(settlementRecord.getId()); settlementDetailService.updateById(detail); } //强制司机下班 DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>() .eq("driverId", orderPrivateCar.getDriverId()).eq("state", 1)); if(null != driverWork){ driverWork.setEndTime(new Date()); driverWork.setState(2); driverWorkService.updateById(driverWork); driver.setState(1); driverService.updateById(driver); Car car = carService.selectById(driver.getCarId()); if(!org.apache.shiro.util.StringUtils.hasLength(car.getVehicleId())){ car.setVehicleId(UUIDUtil.getRandomCode()); carService.updateById(car); } //司机下班,修改谷歌上的车辆信息 new Thread(()->{ try { CarModel carModel = carModelMapper.selectById(car.getCarModelId()); String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); if(ToolUtil.isEmpty(vehicles)){ fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); }else{ fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); } }catch (Exception e){ e.printStackTrace(); } }).start(); } } } } UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverWork.java
@@ -5,7 +5,8 @@ import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; import java.sql.Date; import java.util.Date; /** * 司机上下班记录 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -401,8 +401,6 @@ } /** * 摆渡抢单成功后推单 * @param type UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/TransactionDetailsWarpper.java
@@ -40,6 +40,11 @@ */ @ApiModelProperty("充值状态 1=充值失败 2=充值成功") private Integer state; /** * 第三方支付流水号 */ @ApiModelProperty("第三方支付流水号") private String code; public Integer getId() { return id; @@ -80,7 +85,15 @@ public void setState(Integer state) { this.state = state; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } @Override public String toString() { return "TransactionDetailsWarpper{" + @@ -103,6 +116,7 @@ transactionDetailsWarpper.setInsertTime(null != map.get("insertTime") ? String.valueOf(map.get("insertTime")) : ""); transactionDetailsWarpper.setMoney(null!=map.get("amount")? Double.valueOf(String.valueOf(map.get("amount"))) : 0.00); transactionDetailsWarpper.setState(null!=map.get("state")? Integer.valueOf(String.valueOf(map.get("state"))) : 1); transactionDetailsWarpper.setCode(null != map.get("code") ? String.valueOf(map.get("code")) : ""); list.add(transactionDetailsWarpper); } }