| | |
| | | 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 org.springframework.stereotype.Service; |
| | | import org.springframework.util.LinkedMultiValueMap; |
| | | import org.springframework.util.MultiValueMap; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | |
| | | @Autowired |
| | | private IPhoneService phoneService; |
| | | |
| | | @Autowired |
| | | private IRedEnvelopePaymentSettingsService redEnvelopePaymentSettingsService; |
| | | |
| | | @Autowired |
| | | private FleetEngineUtil fleetEngineUtil; |
| | | |
| | | @Resource |
| | | private CarModelMapper carModelMapper; |
| | | |
| | | @Autowired |
| | | private ICarService carService; |
| | | |
| | | |
| | | |
| | |
| | | if(orderPrivateCars.size() > 0){ |
| | | return ResultUtil.error(language == 1 ? "有未完成的订单" : language == 2 ? "Uncompleted order(s)" : "Commande(s) non complétée(s)"); |
| | | } |
| | | List<OrderTaxi> list = orderTaxiMapper.queryByState_(uid, 1, 1, 1, 2, 3, 4, 5, 6, 11); |
| | | if(list.size() > 0){ |
| | | int i1 = orderLogisticsService.selectCount(new EntityWrapper<OrderLogistics>().eq("userId", uid).in("state", Arrays.asList(1, 2, 3, 4, 5, 6, 7, 11, 12)).eq("isDelete", 1)); |
| | | if(i1 > 0){ |
| | | return ResultUtil.error(language == 1 ? "有未完成的订单" : language == 2 ? "Uncompleted order(s)" : "Commande(s) non complétée(s)"); |
| | | } |
| | | |
| | | orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 2, 1, 1, 2, 3, 4, 5, 6, 11); |
| | | orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 2, 1, 1, 2, 3, 4, 5, 6, 11); |
| | | if(orderPrivateCars.size() > 0 && reservation == 2){ |
| | | return ResultUtil.error(language == 1 ? "有未完成的订单" : language == 2 ? "Uncompleted order(s)" : "Commande(s) non complétée(s)"); |
| | | } |
| | | |
| | | orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 1, 1, 7,12); |
| | | orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 1, 1, 7, 12); |
| | | if(orderPrivateCars.size() > 0){ |
| | | BaseWarpper baseWarpper = new BaseWarpper(); |
| | | baseWarpper.setState(7); |
| | | baseWarpper.setId(orderPrivateCars.get(0).getId()); |
| | | return ResultUtil.success(baseWarpper); |
| | | } |
| | | |
| | | |
| | | list = orderTaxiMapper.queryByState_(uid, 2, 1, 1, 2, 3, 4, 5, 6, 11); |
| | | if(list.size() > 0 && reservation == 2){ |
| | | return ResultUtil.error(language == 1 ? "有未完成的订单" : language == 2 ? "Uncompleted order(s)" : "Commande(s) non complétée(s)"); |
| | | } |
| | | |
| | | startAddress = startAddress.replaceAll("& #40;", "("); |
| | |
| | | if(query.size() == 0){ |
| | | return ResultUtil.error(language == 1 ? "该司机不能服务此业务" : language == 2 ? "Driver has outstanding fees to pay, unable to receive orders." : "Le chauffeur a des frais impayés à payer, incapable de recevoir des commandes."); |
| | | } |
| | | |
| | | int count = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driverId).eq("driverPay", 1).in("state", Arrays.asList(7, 8, 9)).eq("isDelete", 1)); |
| | | int count = settlementRecordService.selectCount(new EntityWrapper<SettlementRecord>().eq("driverId", driverId).eq("paymentStatus", 1)); |
| | | if(count > 0){ |
| | | return ResultUtil.error(language == 1 ? "司机未支付订单费用,无法进行接单" : language == 2 ? "Driver has outstanding fees to pay, unable to receive orders." : "Le chauffeur a des frais impayés à payer, incapable de recevoir des commandes."); |
| | | } |
| | | int count1 = orderLogisticsService.selectCount(new EntityWrapper<OrderLogistics>().eq("driverId", driverId).eq("driverPay", 1).ne("state", 10).eq("isDelete", 1)); |
| | | if(count1 > 0){ |
| | | return ResultUtil.error(language == 1 ? "司机未支付订单费用,无法进行接单" : language == 2 ? "Driver has outstanding fees to pay, unable to receive orders." : "Le chauffeur a des frais impayés à payer, incapable de recevoir des commandes."); |
| | | } |
| | | |
| | |
| | | CarService query1 = carServiceMapper.query(1, driver.getCarId()); |
| | | orderPrivateCar.setServerCarModelId(query1.getServerCarModelId()); |
| | | orderPrivateCar.setSnatchOrderTime(new Date()); |
| | | |
| | | if(orderPrivateCar.getOrderType() == 1){ |
| | | String value = redisUtil.getValue("DRIVER" + driver.getId()); |
| | | if(ToolUtil.isNotEmpty(value)) { |
| | | String[] split = value.split(","); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0])); |
| | | //超时时间 |
| | | long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000); |
| | | orderPrivateCar.setEstimateArriveTime(new Date(timeOut)); |
| | | orderPrivateCar.setEstimateArriveMileage(distancematrix.getDistance()); |
| | | } |
| | | } |
| | | driver.setState(3); |
| | | driverService.updateById(driver); |
| | | } |
| | | |
| | | orderPrivateCar.setIsReassign(1); |
| | | orderPrivateCar.setIsDelete(1); |
| | | orderPrivateCar.setTripId(UUIDUtil.getRandomCode()); |
| | | DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), orderPrivateCar.getEndLat(), orderPrivateCar.getEndLon()); |
| | | Long distance1 = distancematrix1.getDistance(); |
| | | orderPrivateCar.setEstimatedMileage(new BigDecimal(distance1).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); |
| | | this.insert(orderPrivateCar); |
| | | |
| | | UserInfo userInfo = userInfoService.selectById(uid); |
| | | userInfo.setLanguage(language); |
| | | userInfoService.updateById(userInfo); |
| | | |
| | | new Thread(() -> { |
| | | try { |
| | | String vehicleId = null; |
| | | if(null != orderPrivateCar.getDriverId()){ |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | Car car = carMapper.selectById(driver.getCarId()); |
| | | if(!StringUtils.hasLength(car.getVehicleId())){ |
| | | car.setVehicleId(UUIDUtil.getRandomCode()); |
| | | carMapper.updateById(car); |
| | | } |
| | | //查询车辆信息,没有则创建信息 |
| | | String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); |
| | | if(ToolUtil.isEmpty(vehicles)){ |
| | | CarModel carModel = carModelMapper.selectById(car.getCarModelId()); |
| | | fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); |
| | | fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); |
| | | } |
| | | } |
| | | //创建行程数据 |
| | | fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(), |
| | | orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString()); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | }).start(); |
| | | |
| | | |
| | | if(orderSource == 2){//扫码下单 |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | Integer language1 = driver.getLanguage(); |
| | | String text = ""; |
| | | switch (language1){ |
| | | case 1: |
| | | text = "收到新的打车订单,从" + orderPrivateCar.getStartAddress() + "出发,全程约" + orderPrivateCar.getEstimatedMileage() + "公里"; |
| | | break; |
| | | case 2: |
| | | text = "Received a new ride order, starting from " + orderPrivateCar.getStartAddress() + ", the whole journey is about " + orderPrivateCar.getEstimatedMileage() + "kilometre"; |
| | | break; |
| | | case 3: |
| | | text = "J'ai reçu une nouvelle commande de course, à partir de " + orderPrivateCar.getStartAddress() + ", le trajet complet est d’environ " + orderPrivateCar.getEstimatedMileage() + "kilométrage"; |
| | | break; |
| | | |
| | | } |
| | | String audioUrl = ""; |
| | | String fileName = "pushOrder" + orderPrivateCar.getDriverId() + UUIDUtil.getRandomCode(5) + ".mp3"; |
| | | try { |
| | | audioUrl = TextToSpeechUtil.create(language1 == 1 ? "cmn-CN" : language1 == 2 ? "en-US" : "fr-FR", text, fileName); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | //定时任务删除语音文件 |
| | | new Timer().schedule(new TimerTask() { |
| | | @Override |
| | | public void run() { |
| | | Process process = null; |
| | | try { |
| | | process = Runtime.getRuntime().exec("rm -rf /usr/local/nginx/html/files/audio/" + fileName); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | if (process != null) { |
| | | process.destroy(); |
| | | } |
| | | } |
| | | }, 30000); |
| | | String finalAudioUrl = audioUrl; |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0); |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0); |
| | | pushUtil.pushDriverPosition(orderPrivateCar.getId(), 1); |
| | | pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0, ""); |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0, finalAudioUrl); |
| | | } |
| | | }).start(); |
| | | } |
| | |
| | | dr.setState(3); |
| | | driverService.updateById(dr); |
| | | this.updateById(orderPrivateCar); |
| | | |
| | | |
| | | Integer language1 = dr.getLanguage(); |
| | | String text = ""; |
| | | switch (language1){ |
| | | case 1: |
| | | text = "收到新的打车订单,从" + orderPrivateCar.getStartAddress() + "出发,全程约" + orderPrivateCar.getEstimatedMileage() + "公里"; |
| | | break; |
| | | case 2: |
| | | text = "Received a new ride order, starting from " + orderPrivateCar.getStartAddress() + ", the whole journey is about " + orderPrivateCar.getEstimatedMileage() + "kilometre"; |
| | | break; |
| | | case 3: |
| | | text = "J'ai reçu une nouvelle commande de course, à partir de " + orderPrivateCar.getStartAddress() + ", le trajet complet est d’environ " + orderPrivateCar.getEstimatedMileage() + "kilométrage"; |
| | | break; |
| | | |
| | | } |
| | | String audioUrl = ""; |
| | | String fileName = "pushOrder" + orderPrivateCar.getDriverId() + UUIDUtil.getRandomCode(5) + ".mp3"; |
| | | try { |
| | | audioUrl = TextToSpeechUtil.create(language1 == 1 ? "cmn-CN" : language1 == 2 ? "en-US" : "fr-FR", text, fileName); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | //定时任务删除语音文件 |
| | | new Timer().schedule(new TimerTask() { |
| | | @Override |
| | | public void run() { |
| | | Process process = null; |
| | | try { |
| | | process = Runtime.getRuntime().exec("rm -rf /usr/local/nginx/html/files/audio/" + fileName); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | if (process != null) { |
| | | process.destroy(); |
| | | } |
| | | } |
| | | }, 30000); |
| | | |
| | | String finalAudioUrl = audioUrl; |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0); |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0); |
| | | pushUtil.pushDriverPosition(orderPrivateCar.getId(), 1); |
| | | pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0, ""); |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0, finalAudioUrl); |
| | | } |
| | | }).start(); |
| | | } |
| | |
| | | //推单操作 |
| | | if(orderPrivateCar.getState() == 1){ |
| | | this.pushOrder(orderPrivateCar); |
| | | }else{ |
| | | // //接单后定时任务判断司机是否去接乘客,没有则推送提醒 |
| | | // CancleOrder cancleOrder = cancleOrderService.query(orderPrivateCar.getCompanyId()); |
| | | // if(null != cancleOrder){ |
| | | // JSONObject object = JSON.parseObject(cancleOrder.getContent()); |
| | | // long time = object.getInteger("driverTimeout") * 60000L; |
| | | // new Timer().schedule(new TimerTask() { |
| | | // @Override |
| | | // public void run() { |
| | | // OrderPrivateCar orderPrivateCar1 = OrderPrivateCarServiceImpl.this.selectById(orderPrivateCar.getId()); |
| | | // if(orderPrivateCar1.getState() == 2){ |
| | | // pushUtil.pushDriverTimeOut(1, orderPrivateCar1.getUserId(), orderPrivateCar1.getId(), 1); |
| | | // } |
| | | // } |
| | | // }, time); |
| | | // } |
| | | } |
| | | |
| | | |
| | |
| | | BaseWarpper baseWarpper = new BaseWarpper(); |
| | | baseWarpper.setState(orderPrivateCar.getState()); |
| | | baseWarpper.setId(orderPrivateCar.getId()); |
| | | baseWarpper.setContent(orderPrivateCar.getTripId()); |
| | | return ResultUtil.success(baseWarpper); |
| | | } |
| | | |
| | |
| | | } |
| | | return ResultUtil.success(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取取消需要支付的金额 |
| | | * @param id |
| | | * @param language |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer language) throws Exception { |
| | | OrderPrivateCar orderPrivateCar = this.selectById(id); |
| | | if(null == orderPrivateCar){ |
| | | return ResultUtil.error(language == 1 ? "获取数据失败,订单信息有误" : language == 2 ? "Failed to obtain data, order-information error." : "Impossible d’obtenir les données, erreur d’information de commande. "); |
| | | } |
| | | BaseWarpper baseWarpper = new BaseWarpper(); |
| | | double amount = 0; |
| | | CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId()); |
| | | if(null != orderPrivateCar.getDriverId() && orderPrivateCar.getSnatchOrderTime()!=null && |
| | | (orderPrivateCar.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < new Date().getTime()){//收费的情况 |
| | | if(null != query){ |
| | | amount += query.getMoney(); |
| | | CancleOrder query = cancleOrderService.query(orderPrivateCar.getCompanyId()); |
| | | if(null == query || null == orderPrivateCar.getDriverId()){ |
| | | baseWarpper.setAmount(amount); |
| | | return ResultUtil.success(baseWarpper); |
| | | } |
| | | JSONObject object = JSON.parseObject(query.getContent()); |
| | | long t = object.getInteger("driverTimeout") * 60000L; |
| | | //司机超时未到达起点,免费取消 |
| | | if(orderPrivateCar.getOrderType() == 1){ |
| | | if(orderPrivateCar.getState() <= 3 && orderPrivateCar.getEstimateArriveTime().getTime() + t <= System.currentTimeMillis()){ |
| | | baseWarpper.setAmount(amount); |
| | | return ResultUtil.success(baseWarpper); |
| | | } |
| | | }else{ |
| | | if(orderPrivateCar.getState() <= 3 && orderPrivateCar.getTravelTime().getTime() + t <= System.currentTimeMillis()){ |
| | | baseWarpper.setAmount(amount); |
| | | return ResultUtil.success(baseWarpper); |
| | | } |
| | | } |
| | | BaseWarpper baseWarpper = new BaseWarpper(); |
| | | |
| | | //非服务中且未超时 |
| | | if(orderPrivateCar.getState() != 5){ |
| | | //普通单 |
| | | if(1 == orderPrivateCar.getOrderType()){ |
| | | JSONObject order = object.getJSONObject("order"); |
| | | long m = order.getInteger("orderAcceptanceTime") * 60000L; |
| | | //超过免费时间,且没有超时,计算费用 |
| | | if(orderPrivateCar.getSnatchOrderTime().getTime() + m < System.currentTimeMillis() && orderPrivateCar.getEstimateArriveTime().getTime() + t > System.currentTimeMillis()){ |
| | | BigDecimal money = order.getBigDecimal("money"); |
| | | //里程费 |
| | | BigDecimal mileageFee = order.getBigDecimal("mileageFee").multiply(new BigDecimal(orderPrivateCar.getToStartPointMileage() / 1000)); |
| | | //时长费 |
| | | int s = Double.valueOf((System.currentTimeMillis() - orderPrivateCar.getSnatchOrderTime().getTime()) / 60000).intValue(); |
| | | BigDecimal durationFee = order.getBigDecimal("durationFee").multiply(new BigDecimal(s)); |
| | | money = money.add(durationFee).add(mileageFee); |
| | | amount = money.setScale(2, RoundingMode.HALF_EVEN).doubleValue(); |
| | | } |
| | | } |
| | | //预约单 |
| | | if(2 == orderPrivateCar.getOrderType()){ |
| | | JSONObject order = object.getJSONObject("reservationOrder"); |
| | | long m = order.getInteger("orderAcceptanceTime") * 60000L; |
| | | //超过免费时间,且没有超时,计算费用 |
| | | if(System.currentTimeMillis() + m > orderPrivateCar.getTravelTime().getTime() && orderPrivateCar.getTravelTime().getTime() + t > System.currentTimeMillis()){ |
| | | BigDecimal money = order.getBigDecimal("money"); |
| | | //里程费 |
| | | BigDecimal mileageFee = order.getBigDecimal("mileageFee").multiply(new BigDecimal(orderPrivateCar.getToStartPointMileage() / 1000)); |
| | | //时长费 |
| | | int s = Double.valueOf((System.currentTimeMillis() - orderPrivateCar.getSnatchOrderTime().getTime()) / 60000).intValue(); |
| | | BigDecimal durationFee = order.getBigDecimal("durationFee").multiply(new BigDecimal(s)); |
| | | //预定费用 |
| | | BigDecimal reservationFee = order.getBigDecimal("reservationFee"); |
| | | money = money.add(durationFee).add(mileageFee).add(reservationFee); |
| | | amount = money.setScale(2, RoundingMode.HALF_EVEN).doubleValue(); |
| | | } |
| | | } |
| | | } |
| | | baseWarpper.setAmount(amount); |
| | | return ResultUtil.success(baseWarpper); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 添加取消操作 |
| | | * @param id |
| | | * @param reason |
| | | * @param remark |
| | | * @param uid |
| | | * @param language |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid, Integer language) throws Exception { |
| | | public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid, Double lon, Double lat, String address, Integer language) throws Exception { |
| | | if(ToolUtil.isNotEmpty(remark)){ |
| | | if(ToolUtil.isNotEmpty(remark)){ |
| | | List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null); |
| | |
| | | if(null == orderPrivateCar){ |
| | | return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Failed to cancel order, order-information error." : "Échec de l’annulation de la commande, erreur d’information de commande."); |
| | | } |
| | | if(orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 11){ |
| | | if(orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 12){ |
| | | return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Failed to cancel order, illegal operation." : "Échec de l’annulation de la commande, opération illégale."); |
| | | } |
| | | |
| | | //服务中也可以取消订单,所以取消订单时需要计算订单费用 |
| | | if(null == orderPrivateCar.getDriverId()){//没有接单的情况 |
| | | if(orderPrivateCar.getType() == 2){//摆渡车 |
| | | OrderCrossCityServiceImpl.pushEndMap.remove(orderPrivateCar.getCrossCityOrderId());//删除标识数据 |
| | |
| | | this.updateById(orderPrivateCar); |
| | | } |
| | | }else { |
| | | CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId()); |
| | | if (null != query) { |
| | | if ((orderPrivateCar.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < System.currentTimeMillis() && query.getMoney().compareTo(0D) > 0) {//收费的情况 |
| | | orderPrivateCar.setState(12); |
| | | this.updateById(orderPrivateCar); |
| | | integer = orderCancelService.saveData(id, 1, reason, remark, null, query.getMoney(), 1, 1, uid); |
| | | } else { |
| | | integer = orderCancelService.saveData(id, 1, reason, remark, null, null, 2, 1, uid); |
| | | |
| | | BaseWarpper data = queryCancleAmount(id, language).getData(); |
| | | Double amount = data.getAmount(); |
| | | if(0 == amount){ |
| | | integer = orderCancelService.saveData(id, 1, reason, remark, null, null, 2, 1, uid); |
| | | if(5 == orderPrivateCar.getState()){ |
| | | orderPrivateCar.setState(6); |
| | | orderPrivateCar.setGetoffLon(lon); |
| | | orderPrivateCar.setGetoffLat(lat); |
| | | orderPrivateCar.setGetoffAddress(address); |
| | | orderPrivateCar.setGetoffTime(new Date()); |
| | | orderPrivateCar.setEndServiceTime(new Date()); |
| | | orderPrivateCar.setCancelMidway(1); |
| | | }else{ |
| | | orderPrivateCar.setState(10); |
| | | this.updateById(orderPrivateCar); |
| | | } |
| | | this.deleteTask(id);//删除定时任务 |
| | | |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); |
| | | System.err.println("推送取消操作---------------------"); |
| | | } |
| | | }).start(); |
| | | |
| | | //修改司机为空闲 |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | driver.setState(2); |
| | | driverService.updateById(driver); |
| | | this.updateById(orderPrivateCar); |
| | | }else{ |
| | | return ResultUtil.error(language == 1 ? "请完善后台取消规则设置" : language == 2 ? "Please complete the setting of cancellation rules from the background." : "Veuillez compléter le réglage des règles d’annulation à partir de l’arrière-plan."); |
| | | if(5 == orderPrivateCar.getState()){ |
| | | orderPrivateCar.setGetoffLon(lon); |
| | | orderPrivateCar.setGetoffLat(lat); |
| | | orderPrivateCar.setGetoffAddress(address); |
| | | orderPrivateCar.setGetoffTime(new Date()); |
| | | orderPrivateCar.setEndServiceTime(new Date()); |
| | | orderPrivateCar.setCancelMidway(1); |
| | | } |
| | | orderPrivateCar.setOldState(6); |
| | | orderPrivateCar.setState(12); |
| | | this.updateById(orderPrivateCar); |
| | | integer = orderCancelService.saveData(id, 1, reason, remark, null, amount, 1, 1, uid); |
| | | } |
| | | |
| | | this.deleteTask(id);//删除定时任务 |
| | | //修改司机为空闲 |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | Integer language1 = driver.getLanguage(); |
| | | String audioUrl = ""; |
| | | switch (language1){ |
| | | case 1: |
| | | if(orderPrivateCar.getState() == 6){ |
| | | audioUrl = "http://182.160.16.251:81/files/audio/system/MidwayCancellation-CN.mp3"; |
| | | }else{ |
| | | audioUrl = "http://182.160.16.251:81/files/audio/system/UserCancelledOrder-CN.mp3"; |
| | | } |
| | | break; |
| | | case 2: |
| | | if(orderPrivateCar.getState() == 6){ |
| | | audioUrl = "http://182.160.16.251:81/files/audio/system/MidwayCancellation-EN.mp3"; |
| | | }else{ |
| | | audioUrl = "http://182.160.16.251:81/files/audio/system/UserCancelledOrder-EN.mp3"; |
| | | } |
| | | break; |
| | | case 3: |
| | | if(orderPrivateCar.getState() == 6){ |
| | | audioUrl = "http://182.160.16.251:81/files/audio/system/MidwayCancellation-FR.mp3"; |
| | | }else{ |
| | | audioUrl = "http://182.160.16.251:81/files/audio/system/UserCancelledOrder-FR.mp3"; |
| | | } |
| | | break; |
| | | } |
| | | pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState() == 12 ? orderPrivateCar.getState() : 10, 0, audioUrl); |
| | | System.err.println("推送取消操作---------------------"); |
| | | } |
| | | }).start(); |
| | | |
| | | |
| | | driver.setState(2); |
| | | driverService.updateById(driver); |
| | | } |
| | | |
| | | |
| | | //修改行程信息 |
| | | if(orderPrivateCar.getState() == 10 || orderPrivateCar.getState() == 12){ |
| | | fleetEngineUtil.updateTrip("CANCELED", null, null, orderPrivateCar.getTripId(), null, null, null, null); |
| | | } |
| | | |
| | | //添加消息 |
| | | systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功取消出行订单,谢谢使用!" : language == 2 ? "You've cancelled the ride order successfully, thank you for using I-GO " : "Vous avez annulé la commande de course avec succès, merci d’utiliser I-GO", orderPrivateCar.getUserId(), 1); |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | }else{ |
| | | orderCancel = orderCancelService.selectById(cancleId); |
| | | } |
| | | |
| | | CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId()); |
| | | if(null != query){ |
| | | |
| | | Double amount = queryCancleAmount(id, language).getData().getAmount(); |
| | | if(orderPrivateCar.getState() == 12){ |
| | | amount = orderCancel.getMoney(); |
| | | } |
| | | if(0 < amount){ |
| | | if(payType == 1){//手机支付 |
| | | orderCancel.setPayType(1); |
| | | orderCancelService.updateById(orderCancel); |
| | |
| | | checkoutRequest.setAccountNumber(userInfo.getPhone()); |
| | | checkoutRequest.setCustomerFirstName(userInfo.getFirstName()); |
| | | checkoutRequest.setCustomerLastName(userInfo.getLastName()); |
| | | checkoutRequest.setRequestAmount(query.getMoney()); |
| | | checkoutRequest.setRequestAmount(amount); |
| | | checkoutRequest.setMerchantTransactionId(merchantTransactionId); |
| | | checkoutRequest.setRequestDescription("Cancel a trip"); |
| | | checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelOrderTaxi"); |
| | |
| | | checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html"); |
| | | resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); |
| | | if(resultUtil.getCode()==200){ |
| | | paymentRecordService.saveData(1, null, null, id, 1, 1, query.getMoney(), null, 1);//添加预支付数据 |
| | | paymentRecordService.saveData(1, null, null, id, 1, 1, amount, null, 1);//添加预支付数据 |
| | | } |
| | | |
| | | } |
| | |
| | | checkoutRequest.setAccountNumber(bankCard.getCode()); |
| | | checkoutRequest.setCustomerFirstName(bankCard.getFirstName()); |
| | | checkoutRequest.setCustomerLastName(bankCard.getLastName()); |
| | | checkoutRequest.setRequestAmount(query.getMoney()); |
| | | checkoutRequest.setRequestAmount(amount); |
| | | checkoutRequest.setMerchantTransactionId(merchantTransactionId); |
| | | checkoutRequest.setRequestDescription("Cancel a trip"); |
| | | checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelOrderTaxi"); |
| | |
| | | checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html"); |
| | | resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); |
| | | if(resultUtil.getCode()==200){ |
| | | paymentRecordService.saveData(1, null, null, id, 1, 2, query.getMoney(), null, 1);//添加预支付数据 |
| | | paymentRecordService.saveData(1, null, null, id, 1, 2, amount, null, 1);//添加预支付数据 |
| | | } |
| | | |
| | | } |
| | | if(payType == 3){//余额支付 |
| | | if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){ |
| | | if(userInfo.getBalance() != null && userInfo.getBalance() < amount){ |
| | | return ResultUtil.error((language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant"), ""); |
| | | } |
| | | |
| | | userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(amount)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | //添加交易明细 |
| | | transactionDetailsService.saveData(uid, "取消订单", query.getMoney(), 2, 1, 1, 1, id); |
| | | transactionDetailsService.saveData(uid, "取消订单", amount, 2, 1, 1, 1, id); |
| | | userInfoService.updateById(userInfo); |
| | | |
| | | //解除小号绑定 |
| | | if(orderPrivateCar.getBindId() != null){ |
| | | chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); |
| | | ChinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); |
| | | } |
| | | |
| | | orderPrivateCar.setState(10); |
| | | |
| | | if(5 == orderPrivateCar.getOldState()){ |
| | | orderPrivateCar.setState(6); |
| | | }else{ |
| | | orderPrivateCar.setState(10); |
| | | } |
| | | orderPrivateCar.setTelX(""); |
| | | orderPrivateCar.setBindId(""); |
| | | this.updateById(orderPrivateCar); |
| | |
| | | orderCancel.setPayType(3); |
| | | orderCancelService.updateById(orderCancel); |
| | | |
| | | // //添加已收入明细 |
| | | // incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, query.getMoney()); |
| | | // //添加已收入明细 |
| | | // Company company = companyService.selectById(orderPrivateCar.getCompanyId()); |
| | | // Double taxi = company.getSpeMoney(); |
| | | BigDecimal c =new BigDecimal(query.getMoney());//司机收入 |
| | | incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue()); |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driverService.updateById(driver); |
| | | |
| | | this.deleteTask(id);//删除定时任务 |
| | | if(null != orderPrivateCar.getDriverId()){ |
| | | //添加已收入明细 |
| | | Company company = companyService.selectById(orderPrivateCar.getCompanyId()); |
| | | Double speMoney = company.getSpeMoney(); |
| | | BigDecimal d = null;//企业收入 |
| | | BigDecimal c = null;//司机收入 |
| | | if(company.getIsSpeFixedOrProportional() == 2){//固定 |
| | | d = new BigDecimal(speMoney); |
| | | c = new BigDecimal(amount).subtract(d);//只有出行金额参与抽成,其余归属司机 |
| | | } |
| | | if(company.getIsSpeFixedOrProportional() == 1){//比例 |
| | | d = new BigDecimal(amount).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); |
| | | c = new BigDecimal(amount).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); |
| | | } |
| | | incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, d.doubleValue()); |
| | | if(c.doubleValue() > 0){ |
| | | incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue()); |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driverService.updateById(driver); |
| | | } |
| | | |
| | | this.deleteTask(id);//删除定时任务 |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); |
| | | }else{ |
| | | incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, amount.doubleValue()); |
| | | } |
| | | pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); |
| | | |
| | | //添加消息 |
| | | systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2 |
| | |
| | | if(bo){ |
| | | continue; |
| | | } |
| | | pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime()); |
| | | |
| | | String text = ""; |
| | | Integer language = driver.getLanguage(); |
| | | switch (language){ |
| | | case 1: |
| | | text = "收到新的打车订单,从" + orderPrivateCar.getStartAddress() + "出发,全程约" + orderPrivateCar.getEstimatedMileage() + "公里"; |
| | | break; |
| | | case 2: |
| | | text = "Received a new ride order, starting from " + orderPrivateCar.getStartAddress() + ", the whole journey is about " + orderPrivateCar.getEstimatedMileage() + "kilometre"; |
| | | break; |
| | | case 3: |
| | | text = "J'ai reçu une nouvelle commande de course, à partir de " + orderPrivateCar.getStartAddress() + ", le trajet complet est d’environ " + orderPrivateCar.getEstimatedMileage() + "kilométrage"; |
| | | break; |
| | | |
| | | } |
| | | String audioUrl = ""; |
| | | String fileName = "pushOrder" + orderPrivateCar.getDriverId() + UUIDUtil.getRandomCode(5) + ".mp3"; |
| | | try { |
| | | audioUrl = TextToSpeechUtil.create(language == 1 ? "cmn-CN" : language == 2 ? "en-US" : "fr-FR", text, fileName); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | //定时任务删除语音文件 |
| | | new Timer().schedule(new TimerTask() { |
| | | @Override |
| | | public void run() { |
| | | Process process = null; |
| | | try { |
| | | process = Runtime.getRuntime().exec("rm -rf /usr/local/nginx/html/files/audio/" + fileName); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | if (process != null) { |
| | | process.destroy(); |
| | | } |
| | | } |
| | | }, 30000); |
| | | |
| | | pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime(), audioUrl); |
| | | } |
| | | } |
| | | Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间 |
| | |
| | | |
| | | |
| | | @Override |
| | | public ResultUtil payPrivateCarOrder(Integer payType, Integer bankCardId, Integer orderId, Integer couponId, Integer type, Integer language) throws Exception { |
| | | public ResultUtil payPrivateCarOrder(Integer payType, Integer bankCardId, Integer orderId, Integer couponId, Integer redDeduction, Integer type, Integer language) throws Exception { |
| | | OrderPrivateCar orderPrivateCar = this.selectById(orderId); |
| | | if(orderPrivateCar.getState() == 8 || orderPrivateCar.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.", ""); |
| | |
| | | Integer orderNum=this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId()).eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())")); |
| | | if(query2.getDistance()*1000>orderPrivateCar.getMileage() && query2.getOrderNum()>orderNum){ |
| | | Double special = query2.getSpecial(); |
| | | orderPrivateCar.setDiscount(special); |
| | | double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | | if(orderMoney.compareTo(v) > 0){ |
| | | orderPrivateCar.setDiscountMoney(orderMoney - v); |
| | | orderPrivateCar.setActivityId(query2.getId()); |
| | | orderMoney = v; |
| | | if(null != special){ |
| | | orderPrivateCar.setDiscount(special); |
| | | double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | | if(orderMoney.compareTo(v) > 0){ |
| | | orderPrivateCar.setDiscountMoney(orderMoney - v); |
| | | orderPrivateCar.setActivityId(query2.getId()); |
| | | orderMoney = v; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | //计算优惠券 |
| | | UserCouponRecord userCouponRecord = null; |
| | | if(null != couponId){ |
| | | if(null != redDeduction && 1 == redDeduction){ |
| | | return ResultUtil.error(language == 1 ? "优惠券和红包不能同时使用" : language == 2 ? "Coupons and lucky-promo cannot be used at the same time." : "Les coupons et les bonus ne peuvent pas être utilisés en même temps", ""); |
| | | } |
| | | userCouponRecord = userCouponRecordService.selectById(couponId); |
| | | if(userCouponRecord.getCompanyId() != orderPrivateCar.getCompanyId()){ |
| | | if(!userCouponRecord.getCompanyId().equals(orderPrivateCar.getCompanyId())){ |
| | | return ResultUtil.error(language == 1 ? "优惠券不能用于此订单" : language == 2 ? "Coupon cannot be used for this order." : "Le coupon ne peut pas être utilisé pour cette commande.", ""); |
| | | } |
| | | if(userCouponRecord.getState() == 2){ |
| | |
| | | orderMoney=new BigDecimal(orderMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | | |
| | | //计算红包 |
| | | UserRedPacketRecord query = userRedPacketRecordService.query(uid, orderPrivateCar.getCompanyId(), 1, 1, orderMoney); |
| | | if(null != query && query.getMoney().compareTo(orderMoney) < 0){ |
| | | orderMoney = orderMoney - query.getMoney(); |
| | | orderPrivateCar.setRedPacketMoney(query.getMoney()); |
| | | orderPrivateCar.setRedPacketId(query.getId()); |
| | | if(null != redDeduction && 1 == redDeduction && null == orderPrivateCar.getRedPacketId()){ |
| | | RedEnvelopePaymentSettings redEnvelopePaymentSettings = redEnvelopePaymentSettingsService.getRedEnvelopePaymentSettings(); |
| | | if(null != redEnvelopePaymentSettings){ |
| | | Double total = userRedPacketRecordService.queryRemainingAmount(uid); |
| | | List<UserRedPacketRecord> userRedPacketRecords = userRedPacketRecordService.selectList(new EntityWrapper<UserRedPacketRecord>().eq("userId", uid) |
| | | .eq("state", 1).eq("companyId", orderPrivateCar.getCompanyId()).gt("remainingAmount", 0).orderBy("insertTime", false)); |
| | | |
| | | BigDecimal deductionRatio = redEnvelopePaymentSettings.getDeductionRatio(); |
| | | BigDecimal multiply1 = new BigDecimal(orderMoney).multiply(deductionRatio.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_EVEN); |
| | | if(total.compareTo(multiply1.doubleValue()) >= 0){ |
| | | orderPrivateCar.setRedPacketMoney(multiply1.doubleValue()); |
| | | orderMoney = orderMoney - multiply1.doubleValue(); |
| | | |
| | | //获取红包id |
| | | JSONArray jsonArray = new JSONArray(); |
| | | for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("id", userRedPacketRecord.getId()); |
| | | BigDecimal remainingAmount = new BigDecimal(userRedPacketRecord.getRemainingAmount()); |
| | | if(multiply1.compareTo(remainingAmount) >= 0){ |
| | | userRedPacketRecord.setRemainingAmount(0D); |
| | | userRedPacketRecord.setEndTime(new Date()); |
| | | userRedPacketRecord.setState(2); |
| | | multiply1 = multiply1.subtract(remainingAmount).setScale(2, RoundingMode.HALF_EVEN); |
| | | jsonObject.put("money", remainingAmount); |
| | | jsonArray.add(jsonObject); |
| | | userRedPacketRecordService.updateById(userRedPacketRecord); |
| | | }else{ |
| | | userRedPacketRecord.setRemainingAmount(remainingAmount.subtract(multiply1).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); |
| | | jsonObject.put("money", multiply1); |
| | | jsonArray.add(jsonObject); |
| | | userRedPacketRecordService.updateById(userRedPacketRecord); |
| | | break; |
| | | } |
| | | } |
| | | orderPrivateCar.setRedPacketId(jsonArray.toJSONString()); |
| | | }else{ |
| | | orderPrivateCar.setRedPacketMoney(total); |
| | | orderMoney = orderMoney - total; |
| | | //获取红包id |
| | | JSONArray jsonArray = new JSONArray(); |
| | | BigDecimal multiply = new BigDecimal(total); |
| | | for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("id", userRedPacketRecord.getId()); |
| | | BigDecimal remainingAmount = new BigDecimal(userRedPacketRecord.getRemainingAmount()); |
| | | if(multiply.compareTo(remainingAmount) >= 0){ |
| | | userRedPacketRecord.setRemainingAmount(0D); |
| | | userRedPacketRecord.setEndTime(new Date()); |
| | | userRedPacketRecord.setState(2); |
| | | multiply = multiply.subtract(remainingAmount).setScale(2, RoundingMode.HALF_EVEN); |
| | | jsonObject.put("money", remainingAmount); |
| | | jsonArray.add(jsonObject); |
| | | userRedPacketRecordService.updateById(userRedPacketRecord); |
| | | }else{ |
| | | userRedPacketRecord.setRemainingAmount(remainingAmount.subtract(multiply).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); |
| | | jsonObject.put("money", multiply); |
| | | jsonArray.add(jsonObject); |
| | | userRedPacketRecordService.updateById(userRedPacketRecord); |
| | | break; |
| | | } |
| | | } |
| | | orderPrivateCar.setRedPacketId(jsonArray.toJSONString()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | if(payType == 1){//手机支付 |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); |
| | |
| | | orderPrivateCar.setState(8); |
| | | orderPrivateCar.setPayType(3); |
| | | orderPrivateCar.setPayMoney(orderMoney); |
| | | orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney()+orderPrivateCar.getFreeMoney().doubleValue()); |
| | | |
| | | |
| | | //处理优惠券和红包 |
| | | if(null != userCouponRecord){ |
| | | userCouponRecord.setState(2); |
| | | userCouponRecord.setEndTime(new Date()); |
| | | userCouponRecordService.updateById(userCouponRecord); |
| | | } |
| | | if(null != query){ |
| | | query.setState(2); |
| | | query.setEndTime(new Date()); |
| | | userRedPacketRecordService.updateById(query); |
| | | } |
| | | |
| | | if(orderPrivateCar.getIsplatPay()==1){ |
| | | //添加已收入明细 |
| | | Company company = companyService.selectById(orderPrivateCar.getCompanyId()); |
| | |
| | | document.getElementsByTag("title").get(0).text("I-GO电子收据"); |
| | | Element title_chinese = document.getElementById("title_chinese"); |
| | | title_chinese.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",您在I-GO此订单消费GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | Element xcf_chinese = document.getElementById("xcf_chinese"); |
| | | xcf_chinese.text("GHS " + orderPrivateCar.getOrderMoney()); |
| | | Element qbj_chinese = document.getElementById("qbj_chinese"); |
| | | qbj_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | Element scf_chinese = document.getElementById("scf_chinese"); |
| | | if(null != orderPrivateCar.getDurationMoney() && orderPrivateCar.getDurationMoney() > 0){ |
| | | scf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getDurationMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element scf_chinese_div = document.getElementById("scf_chinese_div"); |
| | | scf_chinese_div.remove(); |
| | | } |
| | | Element lcf_chinese = document.getElementById("lcf_chinese"); |
| | | if(null != orderPrivateCar.getMileageMoney() && orderPrivateCar.getMileageMoney() > 0){ |
| | | lcf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getMileageMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element lcf_chinese_div = document.getElementById("lcf_chinese_div"); |
| | | lcf_chinese_div.remove(); |
| | | } |
| | | Element ddf_chinese = document.getElementById("ddf_chinese"); |
| | | if(null != orderPrivateCar.getWaitMoney() && orderPrivateCar.getWaitMoney() > 0){ |
| | | ddf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getWaitMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element ddf_chinese_div = document.getElementById("ddf_chinese_div"); |
| | | ddf_chinese_div.remove(); |
| | | } |
| | | Element glf_chinese = document.getElementById("glf_chinese"); |
| | | if(null != orderPrivateCar.getRoadTollMoney() && orderPrivateCar.getRoadTollMoney() > 0){ |
| | | glf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getRoadTollMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element glf_chinese_div = document.getElementById("glf_chinese_div"); |
| | | glf_chinese_div.remove(); |
| | | } |
| | | Element tcf_chinese = document.getElementById("tcf_chinese"); |
| | | if(null != orderPrivateCar.getParkMoney() && orderPrivateCar.getParkMoney() > 0){ |
| | | tcf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getParkMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element tcf_chinese_div = document.getElementById("tcf_chinese_div"); |
| | | tcf_chinese_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getCouponMoney() && orderPrivateCar.getCouponMoney() > 0){ |
| | | Element yhq_chinese = document.getElementById("yhq_chinese"); |
| | | yhq_chinese.text("GHS -" + orderPrivateCar.getCouponMoney()); |
| | | yhq_chinese.text("GHS -" + new BigDecimal(orderPrivateCar.getCouponMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element yhq_chinese_div = document.getElementById("yhq_chinese_div"); |
| | | yhq_chinese_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getDiscountMoney() && orderPrivateCar.getDiscountMoney() > 0){ |
| | | Element zk_chinese = document.getElementById("zk_chinese"); |
| | | zk_chinese.text("GHS -" + orderPrivateCar.getDiscountMoney()); |
| | | zk_chinese.text("GHS -" + new BigDecimal(orderPrivateCar.getDiscountMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element zk_chinese_div = document.getElementById("zk_chinese_div"); |
| | | zk_chinese_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getRedPacketMoney() && orderPrivateCar.getRedPacketMoney() > 0){ |
| | | Element hb_chinese = document.getElementById("hb_chinese"); |
| | | hb_chinese.text("GHS -" + orderPrivateCar.getRedPacketMoney()); |
| | | hb_chinese.text("GHS -" + new BigDecimal(orderPrivateCar.getRedPacketMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element hb_chinese_div = document.getElementById("hb_chinese_div"); |
| | | hb_chinese_div.remove(); |
| | |
| | | Elements driver_chinese = document.getElementsByClass("driver_chinese"); |
| | | for (int i = 0; i < driver_chinese.size(); i++) { |
| | | Element element = driver_chinese.get(i); |
| | | element.text(driver.getFirstName() + "." + driver.getLastName()); |
| | | element.text(" " + driver.getFirstName() + "." + driver.getLastName()); |
| | | } |
| | | Element cp_chinese = document.getElementById("cp_chinese"); |
| | | cp_chinese.text("车牌:" + car.getCarLicensePlate()); |
| | |
| | | document.getElementsByTag("title").get(0).text("Receipt"); |
| | | Element title_english = document.getElementById("title_english"); |
| | | title_english.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",You spent GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + " on the trip "); |
| | | Element xcf_english = document.getElementById("xcf_english"); |
| | | xcf_english.text("GHS " + orderPrivateCar.getOrderMoney()); |
| | | Element qbj_english = document.getElementById("qbj_english"); |
| | | qbj_english.text("GHS " + new BigDecimal(orderPrivateCar.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | Element scf_english = document.getElementById("scf_english"); |
| | | if(null != orderPrivateCar.getDurationMoney() && orderPrivateCar.getDurationMoney() > 0){ |
| | | scf_english.text("GHS " + new BigDecimal(orderPrivateCar.getDurationMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element scf_english_div = document.getElementById("scf_english_div"); |
| | | scf_english_div.remove(); |
| | | } |
| | | Element lcf_english = document.getElementById("lcf_english"); |
| | | if(null != orderPrivateCar.getMileageMoney() && orderPrivateCar.getMileageMoney() > 0){ |
| | | lcf_english.text("GHS " + new BigDecimal(orderPrivateCar.getMileageMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element lcf_english_div = document.getElementById("lcf_english_div"); |
| | | lcf_english_div.remove(); |
| | | } |
| | | Element ddf_english = document.getElementById("ddf_english"); |
| | | if(null != orderPrivateCar.getWaitMoney() && orderPrivateCar.getWaitMoney() > 0){ |
| | | ddf_english.text("GHS " + new BigDecimal(orderPrivateCar.getWaitMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element ddf_english_div = document.getElementById("ddf_english_div"); |
| | | ddf_english_div.remove(); |
| | | } |
| | | Element glf_english = document.getElementById("glf_english"); |
| | | if(null != orderPrivateCar.getRoadTollMoney() && orderPrivateCar.getRoadTollMoney() > 0){ |
| | | glf_english.text("GHS " + new BigDecimal(orderPrivateCar.getRoadTollMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element glf_english_div = document.getElementById("glf_english_div"); |
| | | glf_english_div.remove(); |
| | | } |
| | | Element tcf_english = document.getElementById("tcf_english"); |
| | | if(null != orderPrivateCar.getParkMoney() && orderPrivateCar.getParkMoney() > 0){ |
| | | tcf_english.text("GHS " + new BigDecimal(orderPrivateCar.getParkMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element tcf_english_div = document.getElementById("tcf_english_div"); |
| | | tcf_english_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getCouponMoney() && orderPrivateCar.getCouponMoney() > 0){ |
| | | Element yhq_english = document.getElementById("yhq_english"); |
| | | yhq_english.text("GHS -" + orderPrivateCar.getCouponMoney()); |
| | | yhq_english.text("GHS -" + new BigDecimal(orderPrivateCar.getCouponMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element yhq_english_div = document.getElementById("yhq_english_div"); |
| | | yhq_english_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getDiscountMoney() && orderPrivateCar.getDiscountMoney() > 0){ |
| | | Element zk_english = document.getElementById("zk_english"); |
| | | zk_english.text("GHS -" + orderPrivateCar.getDiscountMoney()); |
| | | zk_english.text("GHS -" + new BigDecimal(orderPrivateCar.getDiscountMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element zk_english_div = document.getElementById("zk_english_div"); |
| | | zk_english_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getRedPacketMoney() && orderPrivateCar.getRedPacketMoney() > 0){ |
| | | Element hb_english = document.getElementById("hb_english"); |
| | | hb_english.text("GHS -" + orderPrivateCar.getRedPacketMoney()); |
| | | hb_english.text("GHS -" + new BigDecimal(orderPrivateCar.getRedPacketMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element hb_english_div = document.getElementById("hb_english_div"); |
| | | hb_english_div.remove(); |
| | |
| | | Elements driver_english = document.getElementsByClass("driver_english"); |
| | | for (int i = 0; i < driver_english.size(); i++) { |
| | | Element element = driver_english.get(i); |
| | | element.text(driver.getFirstName() + "." + driver.getLastName()); |
| | | element.text(" " + driver.getFirstName() + "." + driver.getLastName()); |
| | | } |
| | | Element cp_english = document.getElementById("cp_english"); |
| | | cp_english.text("Number Plate:" + car.getCarLicensePlate()); |
| | |
| | | document.getElementsByTag("title").get(0).text("Reçu"); |
| | | Element title_french = document.getElementById("title_french"); |
| | | title_french.text("Le " + DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ", vous avez dépensé GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + " sur le voyage"); |
| | | Element xcf_french = document.getElementById("xcf_french"); |
| | | xcf_french.text("GHS " + orderPrivateCar.getOrderMoney()); |
| | | Element qbj_french = document.getElementById("qbj_french"); |
| | | qbj_french.text("GHS " + new BigDecimal(orderPrivateCar.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | Element scf_french = document.getElementById("scf_french"); |
| | | if(null != orderPrivateCar.getDurationMoney() && orderPrivateCar.getDurationMoney() > 0){ |
| | | scf_french.text("GHS " + new BigDecimal(orderPrivateCar.getDurationMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element scf_french_div = document.getElementById("scf_french_div"); |
| | | scf_french_div.remove(); |
| | | } |
| | | Element lcf_french = document.getElementById("lcf_french"); |
| | | if(null != orderPrivateCar.getMileageMoney() && orderPrivateCar.getMileageMoney() > 0){ |
| | | lcf_french.text("GHS " + new BigDecimal(orderPrivateCar.getMileageMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element lcf_french_div = document.getElementById("lcf_french_div"); |
| | | lcf_french_div.remove(); |
| | | } |
| | | Element ddf_french = document.getElementById("ddf_french"); |
| | | if(null != orderPrivateCar.getWaitMoney() && orderPrivateCar.getWaitMoney() > 0){ |
| | | ddf_french.text("GHS " + new BigDecimal(orderPrivateCar.getWaitMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element ddf_french_div = document.getElementById("ddf_french_div"); |
| | | ddf_french_div.remove(); |
| | | } |
| | | Element glf_french = document.getElementById("glf_french"); |
| | | if(null != orderPrivateCar.getRoadTollMoney() && orderPrivateCar.getRoadTollMoney() > 0){ |
| | | glf_french.text("GHS " + new BigDecimal(orderPrivateCar.getRoadTollMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element glf_french_div = document.getElementById("glf_french_div"); |
| | | glf_french_div.remove(); |
| | | } |
| | | Element tcf_french = document.getElementById("tcf_french"); |
| | | if(null != orderPrivateCar.getParkMoney() && orderPrivateCar.getParkMoney() > 0){ |
| | | tcf_french.text("GHS " + new BigDecimal(orderPrivateCar.getParkMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element tcf_french_div = document.getElementById("tcf_french_div"); |
| | | tcf_french_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getCouponMoney() && orderPrivateCar.getCouponMoney() > 0){ |
| | | Element yhq_french = document.getElementById("yhq_french"); |
| | | yhq_french.text("GHS -" + orderPrivateCar.getCouponMoney()); |
| | | yhq_french.text("GHS -" + new BigDecimal(orderPrivateCar.getCouponMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element yhq_french_div = document.getElementById("yhq_french_div"); |
| | | yhq_french_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getDiscountMoney() && orderPrivateCar.getDiscountMoney() > 0){ |
| | | Element zk_french = document.getElementById("zk_french"); |
| | | zk_french.text("GHS -" + orderPrivateCar.getDiscountMoney()); |
| | | zk_french.text("GHS -" + new BigDecimal(orderPrivateCar.getDiscountMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element zk_french_div = document.getElementById("zk_french_div"); |
| | | zk_french_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getRedPacketMoney() && orderPrivateCar.getRedPacketMoney() > 0){ |
| | | Element hb_french = document.getElementById("hb_french"); |
| | | hb_french.text("GHS -" + orderPrivateCar.getRedPacketMoney()); |
| | | hb_french.text("GHS -" + new BigDecimal(orderPrivateCar.getRedPacketMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element hb_french_div = document.getElementById("hb_french_div"); |
| | | hb_french_div.remove(); |
| | |
| | | Elements driver_french = document.getElementsByClass("driver_french"); |
| | | for (int i = 0; i < driver_french.size(); i++) { |
| | | Element element = driver_french.get(i); |
| | | element.text(driver.getFirstName() + "." + driver.getLastName()); |
| | | element.text(" " + driver.getFirstName() + "." + driver.getLastName()); |
| | | } |
| | | Element cp_french = document.getElementById("cp_french"); |
| | | cp_french.text("Plaque: GS " + car.getCarLicensePlate()); |
| | |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); |
| | | pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); |
| | | } |
| | | }).start(); |
| | | |
| | |
| | | orderPrivateCar.setPayType(4); |
| | | orderPrivateCar.setDriverPay(2); |
| | | orderPrivateCar.setPayMoney(orderMoney); |
| | | orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney()+orderPrivateCar.getFreeMoney().doubleValue()); |
| | | |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | |
| | |
| | | driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driverService.updateById(driver); |
| | | } |
| | | if(null != query){ |
| | | query.setState(2); |
| | | query.setEndTime(new Date()); |
| | | userRedPacketRecordService.updateById(query); |
| | | |
| | | Double money = query.getMoney(); |
| | | |
| | | if(null != orderPrivateCar.getRedPacketId()){ |
| | | Double money = orderPrivateCar.getRedPacketMoney(); |
| | | incomeService.saveData(2, orderPrivateCar.getDriverId(), 7, orderPrivateCar.getId(), 1, money); |
| | | driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driverService.updateById(driver); |
| | | } |
| | | |
| | | if(null != orderPrivateCar.getDiscountMoney() && 0 < orderPrivateCar.getDiscountMoney()){ |
| | | Double money = orderPrivateCar.getDiscountMoney(); |
| | | incomeService.saveData(2, orderPrivateCar.getDriverId(), 6, orderPrivateCar.getId(), 1, money); |
| | |
| | | if(null != settlementAllocation){ |
| | | JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); |
| | | Double maxPrice = jsonObject.getDouble("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')")); |
| | | BigDecimal total = new BigDecimal(0); |
| | | for (SettlementDetail detail : settlementDetailList) { |
| | | total = total.add(new BigDecimal(detail.getPrice())); |
| | | } |
| | | if(maxPrice.compareTo(total.doubleValue()) <= 0){ |
| | | SettlementRecord settlementRecord = new SettlementRecord(); |
| | | settlementRecord.setDay(new Date()); |
| | | settlementRecord.setDriverId(driver.getId()); |
| | | settlementRecord.setType(1); |
| | | settlementRecord.setPaymentStatus(1); |
| | | settlementRecord.setPayMoney(total.doubleValue()); |
| | | settlementRecord.setInsertTime(new Date()); |
| | | settlementRecordService.insert(settlementRecord); |
| | | |
| | | 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')")); |
| | | BigDecimal total = new BigDecimal(0); |
| | | for (SettlementDetail detail : settlementDetailList) { |
| | | detail.setSettlementRecordId(settlementRecord.getId()); |
| | | settlementDetailService.updateById(detail); |
| | | total = total.add(new BigDecimal(detail.getPrice())); |
| | | } |
| | | //日结算 |
| | | 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')")); |
| | | if(null == settlementRecord){ |
| | | settlementRecord = new SettlementRecord(); |
| | | settlementRecord.setDay(new Date()); |
| | | settlementRecord.setDriverId(orderPrivateCar.getDriverId()); |
| | | settlementRecord.setType(1); |
| | | settlementRecord.setPaymentStatus(1); |
| | | settlementRecord.setPayMoney(total.doubleValue()); |
| | | settlementRecord.setInsertTime(new Date()); |
| | | settlementRecordService.insert(settlementRecord); |
| | | }else{ |
| | | settlementRecord.setPayMoney(total.doubleValue()); |
| | | settlementRecordService.updateById(settlementRecord); |
| | | } |
| | | for (SettlementDetail detail : settlementDetailList) { |
| | | detail.setSettlementRecordId(settlementRecord.getId()); |
| | | settlementDetailService.updateById(detail); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | document.getElementsByTag("title").get(0).text("I-GO电子收据"); |
| | | Element title_chinese = document.getElementById("title_chinese"); |
| | | title_chinese.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",您在I-GO此订单消费GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | Element xcf_chinese = document.getElementById("xcf_chinese"); |
| | | xcf_chinese.text("GHS " + orderPrivateCar.getOrderMoney()); |
| | | Element qbj_chinese = document.getElementById("qbj_chinese"); |
| | | qbj_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | Element scf_chinese = document.getElementById("scf_chinese"); |
| | | if(null != orderPrivateCar.getDurationMoney() && orderPrivateCar.getDurationMoney() > 0){ |
| | | scf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getDurationMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element scf_chinese_div = document.getElementById("scf_chinese_div"); |
| | | scf_chinese_div.remove(); |
| | | } |
| | | Element lcf_chinese = document.getElementById("lcf_chinese"); |
| | | if(null != orderPrivateCar.getMileageMoney() && orderPrivateCar.getMileageMoney() > 0){ |
| | | lcf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getMileageMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element lcf_chinese_div = document.getElementById("lcf_chinese_div"); |
| | | lcf_chinese_div.remove(); |
| | | } |
| | | Element ddf_chinese = document.getElementById("ddf_chinese"); |
| | | if(null != orderPrivateCar.getWaitMoney() && orderPrivateCar.getWaitMoney() > 0){ |
| | | ddf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getWaitMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element ddf_chinese_div = document.getElementById("ddf_chinese_div"); |
| | | ddf_chinese_div.remove(); |
| | | } |
| | | Element glf_chinese = document.getElementById("glf_chinese"); |
| | | if(null != orderPrivateCar.getRoadTollMoney() && orderPrivateCar.getRoadTollMoney() > 0){ |
| | | glf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getRoadTollMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element glf_chinese_div = document.getElementById("glf_chinese_div"); |
| | | glf_chinese_div.remove(); |
| | | } |
| | | Element tcf_chinese = document.getElementById("tcf_chinese"); |
| | | if(null != orderPrivateCar.getParkMoney() && orderPrivateCar.getParkMoney() > 0){ |
| | | tcf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getParkMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element tcf_chinese_div = document.getElementById("tcf_chinese_div"); |
| | | tcf_chinese_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getCouponMoney() && orderPrivateCar.getCouponMoney() > 0){ |
| | | Element yhq_chinese = document.getElementById("yhq_chinese"); |
| | | yhq_chinese.text("GHS -" + orderPrivateCar.getCouponMoney()); |
| | | yhq_chinese.text("GHS -" + new BigDecimal(orderPrivateCar.getCouponMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element yhq_chinese_div = document.getElementById("yhq_chinese_div"); |
| | | yhq_chinese_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getDiscountMoney() && orderPrivateCar.getDiscountMoney() > 0){ |
| | | Element zk_chinese = document.getElementById("zk_chinese"); |
| | | zk_chinese.text("GHS -" + orderPrivateCar.getDiscountMoney()); |
| | | zk_chinese.text("GHS -" + new BigDecimal(orderPrivateCar.getDiscountMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element zk_chinese_div = document.getElementById("zk_chinese_div"); |
| | | zk_chinese_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getRedPacketMoney() && orderPrivateCar.getRedPacketMoney() > 0){ |
| | | Element hb_chinese = document.getElementById("hb_chinese"); |
| | | hb_chinese.text("GHS -" + orderPrivateCar.getRedPacketMoney()); |
| | | hb_chinese.text("GHS -" + new BigDecimal(orderPrivateCar.getRedPacketMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element hb_chinese_div = document.getElementById("hb_chinese_div"); |
| | | hb_chinese_div.remove(); |
| | |
| | | Elements driver_chinese = document.getElementsByClass("driver_chinese"); |
| | | for (int i = 0; i < driver_chinese.size(); i++) { |
| | | Element element = driver_chinese.get(i); |
| | | element.text(driver.getFirstName() + "." + driver.getLastName()); |
| | | element.text(" " + driver.getFirstName() + "." + driver.getLastName()); |
| | | } |
| | | Element cp_chinese = document.getElementById("cp_chinese"); |
| | | cp_chinese.text("车牌:" + car.getCarLicensePlate()); |
| | |
| | | document.getElementsByTag("title").get(0).text("Receipt"); |
| | | Element title_english = document.getElementById("title_english"); |
| | | title_english.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",You spent GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + " on the trip "); |
| | | Element xcf_english = document.getElementById("xcf_english"); |
| | | xcf_english.text("GHS " + orderPrivateCar.getOrderMoney()); |
| | | Element qbj_english = document.getElementById("qbj_english"); |
| | | qbj_english.text("GHS " + new BigDecimal(orderPrivateCar.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | Element scf_english = document.getElementById("scf_english"); |
| | | if(null != orderPrivateCar.getDurationMoney() && orderPrivateCar.getDurationMoney() > 0){ |
| | | scf_english.text("GHS " + new BigDecimal(orderPrivateCar.getDurationMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element scf_english_div = document.getElementById("scf_english_div"); |
| | | scf_english_div.remove(); |
| | | } |
| | | Element lcf_english = document.getElementById("lcf_english"); |
| | | if(null != orderPrivateCar.getMileageMoney() && orderPrivateCar.getMileageMoney() > 0){ |
| | | lcf_english.text("GHS " + new BigDecimal(orderPrivateCar.getMileageMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element lcf_english_div = document.getElementById("lcf_english_div"); |
| | | lcf_english_div.remove(); |
| | | } |
| | | Element ddf_english = document.getElementById("ddf_english"); |
| | | if(null != orderPrivateCar.getWaitMoney() && orderPrivateCar.getWaitMoney() > 0){ |
| | | ddf_english.text("GHS " + new BigDecimal(orderPrivateCar.getWaitMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element ddf_english_div = document.getElementById("ddf_english_div"); |
| | | ddf_english_div.remove(); |
| | | } |
| | | Element glf_english = document.getElementById("glf_english"); |
| | | if(null != orderPrivateCar.getRoadTollMoney() && orderPrivateCar.getRoadTollMoney() > 0){ |
| | | glf_english.text("GHS " + new BigDecimal(orderPrivateCar.getRoadTollMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element glf_english_div = document.getElementById("glf_english_div"); |
| | | glf_english_div.remove(); |
| | | } |
| | | Element tcf_english = document.getElementById("tcf_english"); |
| | | if(null != orderPrivateCar.getParkMoney() && orderPrivateCar.getParkMoney() > 0){ |
| | | tcf_english.text("GHS " + new BigDecimal(orderPrivateCar.getParkMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element tcf_english_div = document.getElementById("tcf_english_div"); |
| | | tcf_english_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getCouponMoney() && orderPrivateCar.getCouponMoney() > 0){ |
| | | Element yhq_english = document.getElementById("yhq_english"); |
| | | yhq_english.text("GHS -" + orderPrivateCar.getCouponMoney()); |
| | | yhq_english.text("GHS -" + new BigDecimal(orderPrivateCar.getCouponMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element yhq_english_div = document.getElementById("yhq_english_div"); |
| | | yhq_english_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getDiscountMoney() && orderPrivateCar.getDiscountMoney() > 0){ |
| | | Element zk_english = document.getElementById("zk_english"); |
| | | zk_english.text("GHS -" + orderPrivateCar.getDiscountMoney()); |
| | | zk_english.text("GHS -" + new BigDecimal(orderPrivateCar.getDiscountMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element zk_english_div = document.getElementById("zk_english_div"); |
| | | zk_english_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getRedPacketMoney() && orderPrivateCar.getRedPacketMoney() > 0){ |
| | | Element hb_english = document.getElementById("hb_english"); |
| | | hb_english.text("GHS -" + orderPrivateCar.getRedPacketMoney()); |
| | | hb_english.text("GHS -" + new BigDecimal(orderPrivateCar.getRedPacketMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element hb_english_div = document.getElementById("hb_english_div"); |
| | | hb_english_div.remove(); |
| | |
| | | Elements driver_english = document.getElementsByClass("driver_english"); |
| | | for (int i = 0; i < driver_english.size(); i++) { |
| | | Element element = driver_english.get(i); |
| | | element.text(driver.getFirstName() + "." + driver.getLastName()); |
| | | element.text(" " + driver.getFirstName() + "." + driver.getLastName()); |
| | | } |
| | | Element cp_english = document.getElementById("cp_english"); |
| | | cp_english.text("Number Plate:" + car.getCarLicensePlate()); |
| | |
| | | document.getElementsByTag("title").get(0).text("Reçu"); |
| | | Element title_french = document.getElementById("title_french"); |
| | | title_french.text("Le " + DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ", vous avez dépensé GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + " sur le voyage"); |
| | | Element xcf_french = document.getElementById("xcf_french"); |
| | | xcf_french.text("GHS " + orderPrivateCar.getOrderMoney()); |
| | | Element qbj_french = document.getElementById("qbj_french"); |
| | | qbj_french.text("GHS " + new BigDecimal(orderPrivateCar.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | Element scf_french = document.getElementById("scf_french"); |
| | | if(null != orderPrivateCar.getDurationMoney() && orderPrivateCar.getDurationMoney() > 0){ |
| | | scf_french.text("GHS " + new BigDecimal(orderPrivateCar.getDurationMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element scf_french_div = document.getElementById("scf_french_div"); |
| | | scf_french_div.remove(); |
| | | } |
| | | Element lcf_french = document.getElementById("lcf_french"); |
| | | if(null != orderPrivateCar.getMileageMoney() && orderPrivateCar.getMileageMoney() > 0){ |
| | | lcf_french.text("GHS " + new BigDecimal(orderPrivateCar.getMileageMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element lcf_french_div = document.getElementById("lcf_french_div"); |
| | | lcf_french_div.remove(); |
| | | } |
| | | Element ddf_french = document.getElementById("ddf_french"); |
| | | if(null != orderPrivateCar.getWaitMoney() && orderPrivateCar.getWaitMoney() > 0){ |
| | | ddf_french.text("GHS " + new BigDecimal(orderPrivateCar.getWaitMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element ddf_french_div = document.getElementById("ddf_french_div"); |
| | | ddf_french_div.remove(); |
| | | } |
| | | Element glf_french = document.getElementById("glf_french"); |
| | | if(null != orderPrivateCar.getRoadTollMoney() && orderPrivateCar.getRoadTollMoney() > 0){ |
| | | glf_french.text("GHS " + new BigDecimal(orderPrivateCar.getRoadTollMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element glf_french_div = document.getElementById("glf_french_div"); |
| | | glf_french_div.remove(); |
| | | } |
| | | Element tcf_french = document.getElementById("tcf_french"); |
| | | if(null != orderPrivateCar.getParkMoney() && orderPrivateCar.getParkMoney() > 0){ |
| | | tcf_french.text("GHS " + new BigDecimal(orderPrivateCar.getParkMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element tcf_french_div = document.getElementById("tcf_french_div"); |
| | | tcf_french_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getCouponMoney() && orderPrivateCar.getCouponMoney() > 0){ |
| | | Element yhq_french = document.getElementById("yhq_french"); |
| | | yhq_french.text("GHS -" + orderPrivateCar.getCouponMoney()); |
| | | yhq_french.text("GHS -" + new BigDecimal(orderPrivateCar.getCouponMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element yhq_french_div = document.getElementById("yhq_french_div"); |
| | | yhq_french_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getDiscountMoney() && orderPrivateCar.getDiscountMoney() > 0){ |
| | | Element zk_french = document.getElementById("zk_french"); |
| | | zk_french.text("GHS -" + orderPrivateCar.getDiscountMoney()); |
| | | zk_french.text("GHS -" + new BigDecimal(orderPrivateCar.getDiscountMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element zk_french_div = document.getElementById("zk_french_div"); |
| | | zk_french_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getRedPacketMoney() && orderPrivateCar.getRedPacketMoney() > 0){ |
| | | Element hb_french = document.getElementById("hb_french"); |
| | | hb_french.text("GHS -" + orderPrivateCar.getRedPacketMoney()); |
| | | hb_french.text("GHS -" + new BigDecimal(orderPrivateCar.getRedPacketMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element hb_french_div = document.getElementById("hb_french_div"); |
| | | hb_french_div.remove(); |
| | |
| | | Elements driver_french = document.getElementsByClass("driver_french"); |
| | | for (int i = 0; i < driver_french.size(); i++) { |
| | | Element element = driver_french.get(i); |
| | | element.text(driver.getFirstName() + "." + driver.getLastName()); |
| | | element.text(" " + driver.getFirstName() + "." + driver.getLastName()); |
| | | } |
| | | Element cp_french = document.getElementById("cp_french"); |
| | | cp_french.text("Plaque: GS " + car.getCarLicensePlate()); |
| | |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); |
| | | pushUtil.pushOfflinePayment(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1); |
| | | pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); |
| | | pushUtil.pushOfflinePayment(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getPayMoney()); |
| | | } |
| | | }).start(); |
| | | |
| | |
| | | }else{//随机金额 |
| | | Double startMoney = Double.valueOf(String.valueOf(query.get("startMoney"))); |
| | | Double endMoney = Double.valueOf(String.valueOf(query.get("endMoney"))); |
| | | int i = new BigDecimal(endMoney).subtract(new BigDecimal(startMoney)).intValue(); |
| | | Random random = new Random(); |
| | | int num = random.nextInt(i); |
| | | money = new BigDecimal(startMoney).add(new BigDecimal(num)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | | money = new BigDecimal(startMoney + (Math.random() * (endMoney - startMoney))).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | | } |
| | | //判断当前红包是否大于剩余可领取总金额 |
| | | if(money.compareTo(Double.valueOf(query.get("lavePrice").toString())) > 0){ |
| | |
| | | //添加临时红包数据 |
| | | UserRedPacketRecord userRedPacketRecord = new UserRedPacketRecord(); |
| | | userRedPacketRecord.setMoney(money); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(new Date()); |
| | | calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(query.get("effective")))); |
| | | userRedPacketRecord.setExpirationTime(calendar.getTime()); |
| | | userRedPacketRecord.setRemainingAmount(money); |
| | | userRedPacketRecord.setInsertTime(new Date()); |
| | | userRedPacketRecord.setCompanyId(Integer.valueOf(String.valueOf(query.get("companyId")))); |
| | | userRedPacketRecord.setState(0); |
| | |
| | | query.setState(1); |
| | | query.setRedPacketActivityId(id.getId()); |
| | | userRedPacketRecordService.updateById(query); |
| | | |
| | | String content = 1 == language ? ("您收到一个额度为GHS " + money + " 的红包,请查收") : 2 == language ? "You have received a lucky promo of GHS " + money + ", please check" : "Vous avez reçu un bonus de GHS " + money + ", veuillez vérifier"; |
| | | systemNoticeService.addSystemNotice(1, content, query.getUserId(), 1); |
| | | |
| | | UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId()); |
| | | if(ToolUtil.isNotEmpty(userInfo.getEmail())){ |
| | |
| | | Element user_chinese = document.getElementById("user_chinese"); |
| | | user_chinese.text("您好 " + userInfo.getNickName() + ","); |
| | | Element time_chinese = document.getElementById("time_chinese"); |
| | | time_chinese.text("此活动有效期在 " + DateUtil.conversionFormat(language, sdf.format(query.getInsertTime())) + " 至 " + DateUtil.conversionFormat(language, sdf.format(query.getExpirationTime())) + ",详情请查看I-GO平台"); |
| | | time_chinese.text("此活动有效期在 " + DateUtil.conversionFormat(language, sdf.format(id.getStartTime())) + " 至 " + DateUtil.conversionFormat(language, sdf.format(id.getEndTime())) + ",详情请查看I-GO平台"); |
| | | } |
| | | if(2 == language){ |
| | | document.getElementById("chinese").remove(); |
| | |
| | | Element user_english = document.getElementById("user_english"); |
| | | user_english.text("Hello " + userInfo.getNickName() + ","); |
| | | Element time_english = document.getElementById("time_english"); |
| | | time_english.text("You could use it from " + DateUtil.conversionFormat(language, sdf.format(query.getInsertTime())) + " to " + DateUtil.conversionFormat(language, sdf.format(query.getExpirationTime())) + ",check more details on the app."); |
| | | time_english.text("You could use it from " + DateUtil.conversionFormat(language, sdf.format(id.getStartTime())) + " to " + DateUtil.conversionFormat(language, sdf.format(id.getEndTime())) + ",check more details on the app."); |
| | | } |
| | | if(3 == language){ |
| | | document.getElementById("chinese").remove(); |
| | |
| | | Element user_french = document.getElementById("user_french"); |
| | | user_french.text("Bonjour " + userInfo.getNickName() + ","); |
| | | Element time_french = document.getElementById("time_french"); |
| | | time_french.text("Cette promotion est valable du " + DateUtil.conversionFormat(language, sdf.format(query.getInsertTime())) + " au " + DateUtil.conversionFormat(language, sdf.format(query.getExpirationTime())) + ". Veuillez consulter la plateforme i-go pour plus de détails."); |
| | | time_french.text("Cette promotion est valable du " + DateUtil.conversionFormat(language, sdf.format(id.getStartTime())) + " au " + DateUtil.conversionFormat(language, sdf.format(id.getEndTime())) + ". Veuillez consulter la plateforme i-go pour plus de détails."); |
| | | } |
| | | |
| | | EmailUtil.send(userInfo.getEmail(), language == 1 ? "红包活动" : language == 2 ? "Lucky-promo activities" : "Activités bonus", document.html()); |
| | |
| | | if(null != query){ |
| | | //添加交易明细 |
| | | transactionDetailsService.saveData(orderPrivateCar.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 1, query.getOrderId()); |
| | | orderPrivateCar.setState(10); |
| | | if(5 == orderPrivateCar.getOldState()){ |
| | | orderPrivateCar.setState(6); |
| | | }else{ |
| | | orderPrivateCar.setState(10); |
| | | } |
| | | //解除小号绑定 |
| | | if(orderPrivateCar.getBindId() != null){ |
| | | chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); |
| | | ChinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); |
| | | } |
| | | orderPrivateCar.setBindId(""); |
| | | orderPrivateCar.setTelX(""); |
| | |
| | | query1.setState(2); |
| | | orderCancelService.updateById(query1); |
| | | } |
| | | |
| | | // //添加已收入明细 |
| | | // incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, query.getAmount()); |
| | | // //添加已收入明细 |
| | | // Company company = companyService.selectById(orderPrivateCar.getCompanyId()); |
| | | // Double taxi = company.getSpeMoney(); |
| | | BigDecimal c =new BigDecimal(query.getAmount());//司机收入 |
| | | incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue()); |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driverService.updateById(driver); |
| | | this.deleteTask(orderPrivateCar.getId());//删除定时任务 |
| | | |
| | | // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 |
| | | // new Thread(new Runnable() { |
| | | // @Override |
| | | // public void run() { |
| | | // pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); |
| | | // } |
| | | // }).start(); |
| | | |
| | | Double amount = query.getAmount(); |
| | | if(null != orderPrivateCar.getDriverId()){ |
| | | //添加已收入明细 |
| | | Company company = companyService.selectById(orderPrivateCar.getCompanyId()); |
| | | Double speMoney = company.getSpeMoney(); |
| | | BigDecimal d = null;//企业收入 |
| | | BigDecimal c = null;//司机收入 |
| | | if(company.getIsSpeFixedOrProportional() == 2){//固定 |
| | | d = new BigDecimal(speMoney); |
| | | c = new BigDecimal(amount).subtract(d);//只有出行金额参与抽成,其余归属司机 |
| | | } |
| | | if(company.getIsSpeFixedOrProportional() == 1){//比例 |
| | | d = new BigDecimal(amount).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); |
| | | c = new BigDecimal(amount).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); |
| | | } |
| | | incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, d.doubleValue()); |
| | | if(c.doubleValue() > 0){ |
| | | incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue()); |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driverService.updateById(driver); |
| | | } |
| | | this.deleteTask(orderPrivateCar.getId());//删除定时任务 |
| | | |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); |
| | | }else{ |
| | | incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, amount.doubleValue()); |
| | | } |
| | | pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); |
| | | |
| | | //添加消息 |
| | | systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2 |
| | |
| | | userCouponRecord.setEndTime(new Date()); |
| | | userCouponRecordService.updateById(userCouponRecord); |
| | | } |
| | | if(null != orderPrivateCar.getRedPacketId()){ |
| | | UserRedPacketRecord userRedPacketRecord = userRedPacketRecordService.selectById(orderPrivateCar.getRedPacketId()); |
| | | userRedPacketRecord.setState(2); |
| | | userRedPacketRecord.setEndTime(new Date()); |
| | | userRedPacketRecordService.updateById(userRedPacketRecord); |
| | | } |
| | | |
| | | |
| | | query.setState(2); |
| | | query.setCode(order_id); |
| | |
| | | document.getElementsByTag("title").get(0).text("I-GO电子收据"); |
| | | Element title_chinese = document.getElementById("title_chinese"); |
| | | title_chinese.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",您在I-GO此订单消费GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | Element xcf_chinese = document.getElementById("xcf_chinese"); |
| | | xcf_chinese.text("GHS " + orderPrivateCar.getOrderMoney()); |
| | | Element qbj_chinese = document.getElementById("qbj_chinese"); |
| | | qbj_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | Element scf_chinese = document.getElementById("scf_chinese"); |
| | | if(null != orderPrivateCar.getDurationMoney() && orderPrivateCar.getDurationMoney() > 0){ |
| | | scf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getDurationMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element scf_chinese_div = document.getElementById("scf_chinese_div"); |
| | | scf_chinese_div.remove(); |
| | | } |
| | | Element lcf_chinese = document.getElementById("lcf_chinese"); |
| | | if(null != orderPrivateCar.getMileageMoney() && orderPrivateCar.getMileageMoney() > 0){ |
| | | lcf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getMileageMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element lcf_chinese_div = document.getElementById("lcf_chinese_div"); |
| | | lcf_chinese_div.remove(); |
| | | } |
| | | Element ddf_chinese = document.getElementById("ddf_chinese"); |
| | | if(null != orderPrivateCar.getWaitMoney() && orderPrivateCar.getWaitMoney() > 0){ |
| | | ddf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getWaitMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element ddf_chinese_div = document.getElementById("ddf_chinese_div"); |
| | | ddf_chinese_div.remove(); |
| | | } |
| | | Element glf_chinese = document.getElementById("glf_chinese"); |
| | | if(null != orderPrivateCar.getRoadTollMoney() && orderPrivateCar.getRoadTollMoney() > 0){ |
| | | glf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getRoadTollMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element glf_chinese_div = document.getElementById("glf_chinese_div"); |
| | | glf_chinese_div.remove(); |
| | | } |
| | | Element tcf_chinese = document.getElementById("tcf_chinese"); |
| | | if(null != orderPrivateCar.getParkMoney() && orderPrivateCar.getParkMoney() > 0){ |
| | | tcf_chinese.text("GHS " + new BigDecimal(orderPrivateCar.getParkMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element tcf_chinese_div = document.getElementById("tcf_chinese_div"); |
| | | tcf_chinese_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getCouponMoney() && orderPrivateCar.getCouponMoney() > 0){ |
| | | Element yhq_chinese = document.getElementById("yhq_chinese"); |
| | | yhq_chinese.text("GHS -" + orderPrivateCar.getCouponMoney()); |
| | | yhq_chinese.text("GHS -" + new BigDecimal(orderPrivateCar.getCouponMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element yhq_chinese_div = document.getElementById("yhq_chinese_div"); |
| | | yhq_chinese_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getDiscountMoney() && orderPrivateCar.getDiscountMoney() > 0){ |
| | | Element zk_chinese = document.getElementById("zk_chinese"); |
| | | zk_chinese.text("GHS -" + orderPrivateCar.getDiscountMoney()); |
| | | zk_chinese.text("GHS -" + new BigDecimal(orderPrivateCar.getDiscountMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element zk_chinese_div = document.getElementById("zk_chinese_div"); |
| | | zk_chinese_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getRedPacketMoney() && orderPrivateCar.getRedPacketMoney() > 0){ |
| | | Element hb_chinese = document.getElementById("hb_chinese"); |
| | | hb_chinese.text("GHS -" + orderPrivateCar.getRedPacketMoney()); |
| | | hb_chinese.text("GHS -" + new BigDecimal(orderPrivateCar.getRedPacketMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element hb_chinese_div = document.getElementById("hb_chinese_div"); |
| | | hb_chinese_div.remove(); |
| | |
| | | Elements driver_chinese = document.getElementsByClass("driver_chinese"); |
| | | for (int i = 0; i < driver_chinese.size(); i++) { |
| | | Element element = driver_chinese.get(i); |
| | | element.text(driver.getFirstName() + "." + driver.getLastName()); |
| | | element.text(" " + driver.getFirstName() + "." + driver.getLastName()); |
| | | } |
| | | Element cp_chinese = document.getElementById("cp_chinese"); |
| | | cp_chinese.text("车牌:" + car.getCarLicensePlate()); |
| | |
| | | document.getElementsByTag("title").get(0).text("Receipt"); |
| | | Element title_english = document.getElementById("title_english"); |
| | | title_english.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",You spent GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + " on the trip "); |
| | | Element xcf_english = document.getElementById("xcf_english"); |
| | | xcf_english.text("GHS " + orderPrivateCar.getOrderMoney()); |
| | | Element qbj_english = document.getElementById("qbj_english"); |
| | | qbj_english.text("GHS " + new BigDecimal(orderPrivateCar.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | Element scf_english = document.getElementById("scf_english"); |
| | | if(null != orderPrivateCar.getDurationMoney() && orderPrivateCar.getDurationMoney() > 0){ |
| | | scf_english.text("GHS " + new BigDecimal(orderPrivateCar.getDurationMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element scf_english_div = document.getElementById("scf_english_div"); |
| | | scf_english_div.remove(); |
| | | } |
| | | Element lcf_english = document.getElementById("lcf_english"); |
| | | if(null != orderPrivateCar.getMileageMoney() && orderPrivateCar.getMileageMoney() > 0){ |
| | | lcf_english.text("GHS " + new BigDecimal(orderPrivateCar.getMileageMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element lcf_english_div = document.getElementById("lcf_english_div"); |
| | | lcf_english_div.remove(); |
| | | } |
| | | Element ddf_english = document.getElementById("ddf_english"); |
| | | if(null != orderPrivateCar.getWaitMoney() && orderPrivateCar.getWaitMoney() > 0){ |
| | | ddf_english.text("GHS " + new BigDecimal(orderPrivateCar.getWaitMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element ddf_english_div = document.getElementById("ddf_english_div"); |
| | | ddf_english_div.remove(); |
| | | } |
| | | Element glf_english = document.getElementById("glf_english"); |
| | | if(null != orderPrivateCar.getRoadTollMoney() && orderPrivateCar.getRoadTollMoney() > 0){ |
| | | glf_english.text("GHS " + new BigDecimal(orderPrivateCar.getRoadTollMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element glf_english_div = document.getElementById("glf_english_div"); |
| | | glf_english_div.remove(); |
| | | } |
| | | Element tcf_english = document.getElementById("tcf_english"); |
| | | if(null != orderPrivateCar.getParkMoney() && orderPrivateCar.getParkMoney() > 0){ |
| | | tcf_english.text("GHS " + new BigDecimal(orderPrivateCar.getParkMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element tcf_english_div = document.getElementById("tcf_english_div"); |
| | | tcf_english_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getCouponMoney() && orderPrivateCar.getCouponMoney() > 0){ |
| | | Element yhq_english = document.getElementById("yhq_english"); |
| | | yhq_english.text("GHS -" + orderPrivateCar.getCouponMoney()); |
| | | yhq_english.text("GHS -" + new BigDecimal(orderPrivateCar.getCouponMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element yhq_english_div = document.getElementById("yhq_english_div"); |
| | | yhq_english_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getDiscountMoney() && orderPrivateCar.getDiscountMoney() > 0){ |
| | | Element zk_english = document.getElementById("zk_english"); |
| | | zk_english.text("GHS -" + orderPrivateCar.getDiscountMoney()); |
| | | zk_english.text("GHS -" + new BigDecimal(orderPrivateCar.getDiscountMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element zk_english_div = document.getElementById("zk_english_div"); |
| | | zk_english_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getRedPacketMoney() && orderPrivateCar.getRedPacketMoney() > 0){ |
| | | Element hb_english = document.getElementById("hb_english"); |
| | | hb_english.text("GHS -" + orderPrivateCar.getRedPacketMoney()); |
| | | hb_english.text("GHS -" + new BigDecimal(orderPrivateCar.getRedPacketMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element hb_english_div = document.getElementById("hb_english_div"); |
| | | hb_english_div.remove(); |
| | |
| | | Elements driver_english = document.getElementsByClass("driver_english"); |
| | | for (int i = 0; i < driver_english.size(); i++) { |
| | | Element element = driver_english.get(i); |
| | | element.text(driver.getFirstName() + "." + driver.getLastName()); |
| | | element.text(" " + driver.getFirstName() + "." + driver.getLastName()); |
| | | } |
| | | Element cp_english = document.getElementById("cp_english"); |
| | | cp_english.text("Number Plate:" + car.getCarLicensePlate()); |
| | |
| | | document.getElementsByTag("title").get(0).text("Reçu"); |
| | | Element title_french = document.getElementById("title_french"); |
| | | title_french.text("Le " + DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ", vous avez dépensé GHS " + new BigDecimal(orderPrivateCar.getPayMoney()).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + " sur le voyage"); |
| | | Element xcf_french = document.getElementById("xcf_french"); |
| | | xcf_french.text("GHS " + orderPrivateCar.getOrderMoney()); |
| | | Element qbj_french = document.getElementById("qbj_french"); |
| | | qbj_french.text("GHS " + new BigDecimal(orderPrivateCar.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | Element scf_french = document.getElementById("scf_french"); |
| | | if(null != orderPrivateCar.getDurationMoney() && orderPrivateCar.getDurationMoney() > 0){ |
| | | scf_french.text("GHS " + new BigDecimal(orderPrivateCar.getDurationMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element scf_french_div = document.getElementById("scf_french_div"); |
| | | scf_french_div.remove(); |
| | | } |
| | | Element lcf_french = document.getElementById("lcf_french"); |
| | | if(null != orderPrivateCar.getMileageMoney() && orderPrivateCar.getMileageMoney() > 0){ |
| | | lcf_french.text("GHS " + new BigDecimal(orderPrivateCar.getMileageMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element lcf_french_div = document.getElementById("lcf_french_div"); |
| | | lcf_french_div.remove(); |
| | | } |
| | | Element ddf_french = document.getElementById("ddf_french"); |
| | | if(null != orderPrivateCar.getWaitMoney() && orderPrivateCar.getWaitMoney() > 0){ |
| | | ddf_french.text("GHS " + new BigDecimal(orderPrivateCar.getWaitMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element ddf_french_div = document.getElementById("ddf_french_div"); |
| | | ddf_french_div.remove(); |
| | | } |
| | | Element glf_french = document.getElementById("glf_french"); |
| | | if(null != orderPrivateCar.getRoadTollMoney() && orderPrivateCar.getRoadTollMoney() > 0){ |
| | | glf_french.text("GHS " + new BigDecimal(orderPrivateCar.getRoadTollMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element glf_french_div = document.getElementById("glf_french_div"); |
| | | glf_french_div.remove(); |
| | | } |
| | | Element tcf_french = document.getElementById("tcf_french"); |
| | | if(null != orderPrivateCar.getParkMoney() && orderPrivateCar.getParkMoney() > 0){ |
| | | tcf_french.text("GHS " + new BigDecimal(orderPrivateCar.getParkMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element tcf_french_div = document.getElementById("tcf_french_div"); |
| | | tcf_french_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getCouponMoney() && orderPrivateCar.getCouponMoney() > 0){ |
| | | Element yhq_french = document.getElementById("yhq_french"); |
| | | yhq_french.text("GHS -" + orderPrivateCar.getCouponMoney()); |
| | | yhq_french.text("GHS -" + new BigDecimal(orderPrivateCar.getCouponMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element yhq_french_div = document.getElementById("yhq_french_div"); |
| | | yhq_french_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getDiscountMoney() && orderPrivateCar.getDiscountMoney() > 0){ |
| | | Element zk_french = document.getElementById("zk_french"); |
| | | zk_french.text("GHS -" + orderPrivateCar.getDiscountMoney()); |
| | | zk_french.text("GHS -" + new BigDecimal(orderPrivateCar.getDiscountMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element zk_french_div = document.getElementById("zk_french_div"); |
| | | zk_french_div.remove(); |
| | | } |
| | | if(null != orderPrivateCar.getRedPacketMoney() && orderPrivateCar.getRedPacketMoney() > 0){ |
| | | Element hb_french = document.getElementById("hb_french"); |
| | | hb_french.text("GHS -" + orderPrivateCar.getRedPacketMoney()); |
| | | hb_french.text("GHS -" + new BigDecimal(orderPrivateCar.getRedPacketMoney()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | }else{ |
| | | Element hb_french_div = document.getElementById("hb_french_div"); |
| | | hb_french_div.remove(); |
| | |
| | | Elements driver_french = document.getElementsByClass("driver_french"); |
| | | for (int i = 0; i < driver_french.size(); i++) { |
| | | Element element = driver_french.get(i); |
| | | element.text(driver.getFirstName() + "." + driver.getLastName()); |
| | | element.text(" " + driver.getFirstName() + "." + driver.getLastName()); |
| | | } |
| | | Element cp_french = document.getElementById("cp_french"); |
| | | cp_french.text("Plaque: GS " + car.getCarLicensePlate()); |
| | |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); |
| | | pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, ""); |
| | | } |
| | | }).start(); |
| | | |
| | |
| | | }else{ |
| | | map.put("receipt", ""); |
| | | } |
| | | |
| | | OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(orderId); |
| | | long timeOutCancel = 0L; |
| | | if(null != orderPrivateCar.getEstimateArriveTime()){ |
| | | CancleOrder cancleOrder = cancleOrderService.selectOne(new EntityWrapper<CancleOrder>().eq("companyId", orderPrivateCar.getCompanyId())); |
| | | JSONObject jsonObject = JSON.parseObject(cancleOrder.getContent()); |
| | | int driverTimeout = jsonObject.getIntValue("driverTimeout") * 60000; |
| | | if(orderPrivateCar.getOrderType() == 1){ |
| | | timeOutCancel = orderPrivateCar.getEstimateArriveTime().getTime() + driverTimeout; |
| | | }else{ |
| | | timeOutCancel = orderPrivateCar.getTravelTime().getTime() + driverTimeout; |
| | | } |
| | | } |
| | | map.put("timeOutCancel", timeOutCancel); |
| | | } |
| | | return maps; |
| | | } |
| | |
| | | @Override |
| | | public Map<String, Object> queryOrderInfo(Integer language, Integer orderId) throws Exception { |
| | | Map<String, Object> map = orderPrivateCarMapper.queryOrderInfo(orderId); |
| | | OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(orderId); |
| | | if(null != map.get("travelTime")){ |
| | | String travelTime = map.get("travelTime").toString(); |
| | | map.put("travelTime", DateUtil.conversionFormat1(language, travelTime)); |
| | | } |
| | | Integer state = Integer.valueOf(String.valueOf(map.get("state"))); |
| | | if(null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用 |
| | | OrderPrivateCar orderPrivateCar = this.selectById(orderId); |
| | | orderPrivateCar.setReassignNotice(0); |
| | | this.updateById(orderPrivateCar); |
| | | } |
| | | if(state == 11){ |
| | | map.put("state", map.get("oldState")); |
| | | } |
| | | if(state == 12){ |
| | | OrderCancel query = orderCancelService.query(orderId, 1, null, null, 1); |
| | | map.put("cancelPayMoney", null == query ? 0 : query.getMoney()); |
| | | map.put("cancelMoney", null == query ? 0 : query.getMoney()); |
| | | } |
| | | 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); |
| | | } |
| | | if(Integer.valueOf(String.valueOf(map.get("state"))) == 7){ |
| | | OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(orderId); |
| | | UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(Integer.valueOf(String.valueOf(map.get("companyId")))); |
| | | if(null != query2){ |
| | | Integer orderNum=this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId()).eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())")); |
| | | if(query2.getDistance()*1000>orderPrivateCar.getMileage() && query2.getOrderNum()>orderNum){ |
| | | Double special = query2.getSpecial(); |
| | | map.put("discount", special); |
| | | orderPrivateCar.setDiscount(special); |
| | | Double orderMoney = orderPrivateCar.getOrderMoney(); |
| | | double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | |
| | | }else{ |
| | | map.put("receipt", ""); |
| | | } |
| | | Integer companyId = 1; |
| | | if(null != map.get("driverId")){ |
| | | companyId = Integer.valueOf(String.valueOf(map.get("companyId"))); |
| | | } |
| | | |
| | | long timeOutCancel = 0L; |
| | | long driverTimeOut = 0L; |
| | | CancleOrder cancleOrder = cancleOrderService.selectOne(new EntityWrapper<CancleOrder>().eq("companyId", companyId)); |
| | | JSONObject jsonObject = JSON.parseObject(cancleOrder.getContent()); |
| | | int driverTimeout = jsonObject.getIntValue("driverTimeout") * 60000; |
| | | if(orderPrivateCar.getOrderType() == 1 && null != orderPrivateCar.getEstimateArriveTime()){ |
| | | timeOutCancel = orderPrivateCar.getEstimateArriveTime().getTime() + driverTimeout; |
| | | driverTimeOut = orderPrivateCar.getEstimateArriveTime().getTime(); |
| | | }else{ |
| | | timeOutCancel = orderPrivateCar.getTravelTime().getTime() + driverTimeout; |
| | | driverTimeOut = orderPrivateCar.getTravelTime().getTime(); |
| | | } |
| | | |
| | | map.put("timeOutCancel", timeOutCancel); |
| | | map.put("driverTimeOut", driverTimeOut); |
| | | return map; |
| | | } |
| | | |
| | |
| | | } |
| | | return endPushWarpper; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 修改目的地 |
| | | * @param orderId |
| | | * @param endLon |
| | | * @param endLat |
| | | * @param endAddress |
| | | */ |
| | | @Override |
| | | public void updateEndAddress(Integer orderId, String endLon, String endLat, String endAddress) { |
| | | OrderPrivateCar orderPrivateCar = this.selectById(orderId); |
| | | if(null != orderPrivateCar.getDriverId()){ |
| | | orderPrivateCar.setDestination(endAddress); |
| | | orderPrivateCar.setDestinationLat(endLat); |
| | | orderPrivateCar.setDestinationLon(endLon); |
| | | this.updateById(orderPrivateCar); |
| | | |
| | | Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); |
| | | Integer language1 = driver.getLanguage(); |
| | | String audioUrl = ""; |
| | | switch (language1){ |
| | | case 1: |
| | | audioUrl = "http://182.160.16.251:81/files/audio/system/ChangeAddress-CN.mp3"; |
| | | break; |
| | | case 2: |
| | | audioUrl = "http://182.160.16.251:81/files/audio/system/ChangeAddress-EN.mp3"; |
| | | break; |
| | | case 3: |
| | | audioUrl = "http://182.160.16.251:81/files/audio/system/ChangeAddress-FR.mp3"; |
| | | break; |
| | | } |
| | | pushUtil.pushModifyAddress(2, orderPrivateCar.getDriverId(), orderId, 1, 1, audioUrl); |
| | | }else{ |
| | | orderPrivateCar.setEndAddress(endAddress); |
| | | orderPrivateCar.setEndLat(Double.valueOf(endLat)); |
| | | orderPrivateCar.setEndLon(Double.valueOf(endLon)); |
| | | this.updateById(orderPrivateCar); |
| | | } |
| | | } |
| | | } |