| | |
| | | orderTaxi.setGetoffAddress(address); |
| | | orderTaxi.setGetoffTime(new Date()); |
| | | orderTaxi.setEndServiceTime(new Date()); |
| | | if(orderTaxi.getPayManner()==3){ |
| | | orderTaxi.setState(9); |
| | | Driver driver = driverService.selectById(orderTaxi.getDriverId()); |
| | | |
| | | Company company = companyService.selectById(driver.getFranchiseeId()); |
| | | if(Objects.isNull(company)){ |
| | | company = companyService.selectById(driver.getCompanyId()); |
| | | } |
| | | TransactionDetails transactionDetails = new TransactionDetails(); |
| | | driver.setBalance(driver.getBalance() - company.getFixedDeduction()); |
| | | transactionDetails.setMoney(company.getFixedDeduction()); |
| | | // 新增扣除使用费记录 |
| | | transactionDetails.setUserId(driver.getId()); |
| | | transactionDetails.setInsertTime(new Date()); |
| | | transactionDetails.setRemark("软件使用费"); |
| | | transactionDetails.setState(2); |
| | | transactionDetails.setType(1); |
| | | transactionDetails.setUserType(2); |
| | | transactionDetails.setOrderType(6); |
| | | transactionDetails.setOrderId(orderTaxi.getId()); |
| | | transactionDetailsMapper.insert(transactionDetails); |
| | | driverService.updateById(driver); |
| | | } |
| | | //打表计费,直接订单完成支付, |
| | | if(orderTaxi.getPayManner()==2){ |
| | | orderTaxi = this.setMoney2(orderTaxi, 0D, 0D); |
| | | //在线上计费的基础上随机加0.01-1的金额 |
| | | Double orderMoney = orderTaxi.getOrderMoney() + (new BigDecimal(Math.random()).setScale(2, BigDecimal.ROUND_DOWN).doubleValue()); |
| | | orderTaxi.setState(8); |
| | | orderTaxi.setOrderMoney(orderMoney); |
| | | orderTaxi.setPayMoney(orderMoney); |
| | | Driver driver = driverService.selectById(orderTaxi.getDriverId()); |
| | | |
| | | Company company = companyService.selectById(driver.getFranchiseeId()); |
| | | if(Objects.isNull(company)){ |
| | | company = companyService.selectById(driver.getCompanyId()); |
| | | } |
| | | TransactionDetails transactionDetails = new TransactionDetails(); |
| | | driver.setBalance(driver.getBalance() - company.getMeterPrintingFee()); |
| | | transactionDetails.setMoney(company.getMeterPrintingFee()); |
| | | // 新增扣除使用费记录 |
| | | transactionDetails.setUserId(driver.getId()); |
| | | transactionDetails.setInsertTime(new Date()); |
| | | transactionDetails.setRemark("软件使用费"); |
| | | transactionDetails.setState(2); |
| | | transactionDetails.setType(1); |
| | | transactionDetails.setUserType(2); |
| | | transactionDetails.setOrderType(6); |
| | | transactionDetails.setOrderId(orderTaxi.getId()); |
| | | transactionDetailsMapper.insert(transactionDetails); |
| | | driverService.updateById(driver); |
| | | } |
| | | //线上计费,计算费用后修改为待支付 |
| | | if(orderTaxi.getPayManner()==1){ |
| | | orderTaxi = this.setMoney2(orderTaxi, 0D, 0D); |
| | | orderTaxi.setState(7); |
| | | } |
| | | orderTaxi.setState(6); |
| | | //回滚司机状态为空闲 |
| | | Driver driver = driverService.selectById(orderTaxi.getDriverId()); |
| | | driver.setState(2); |
| | |
| | | public ResultUtil confirmFees(Integer orderId, Integer type, Double travelFee, Double parkingFee, Double crossingFee) throws Exception { |
| | | OrderTaxi orderTaxi = this.selectById(orderId); |
| | | orderTaxi.setPayManner(type); |
| | | if(type == 2){//其他支付,不需要操作,直接完成订单 |
| | | orderTaxi = this.setMoney1(orderTaxi, travelFee, parkingFee, crossingFee); |
| | | orderTaxi.setState(7); |
| | | }else if (type == 1){ |
| | | if(orderTaxi.getPayManner()==3){ |
| | | orderTaxi.setState(9); |
| | | Driver driver = driverService.selectById(orderTaxi.getDriverId()); |
| | | |
| | | Company company = companyService.selectById(driver.getFranchiseeId()); |
| | | if(Objects.isNull(company)){ |
| | | company = companyService.selectById(driver.getCompanyId()); |
| | | } |
| | | TransactionDetails transactionDetails = new TransactionDetails(); |
| | | driver.setBalance(driver.getBalance() - company.getFixedDeduction()); |
| | | transactionDetails.setMoney(company.getFixedDeduction()); |
| | | // 新增扣除使用费记录 |
| | | transactionDetails.setUserId(driver.getId()); |
| | | transactionDetails.setInsertTime(new Date()); |
| | | transactionDetails.setRemark("软件使用费"); |
| | | transactionDetails.setState(2); |
| | | transactionDetails.setType(1); |
| | | transactionDetails.setUserType(2); |
| | | transactionDetails.setOrderType(6); |
| | | transactionDetails.setOrderId(orderTaxi.getId()); |
| | | transactionDetailsMapper.insert(transactionDetails); |
| | | driverService.updateById(driver); |
| | | } |
| | | //打表计费,直接订单完成支付, |
| | | if(orderTaxi.getPayManner()==2){ |
| | | orderTaxi = this.setMoney2(orderTaxi, parkingFee, crossingFee); |
| | | orderTaxi.setState(7); |
| | | }else { |
| | | //在线上计费的基础上随机加0.01-1的金额 |
| | | Double orderMoney = orderTaxi.getOrderMoney() + (new BigDecimal(Math.random()).setScale(2, BigDecimal.ROUND_DOWN).doubleValue()); |
| | | orderTaxi.setState(8); |
| | | orderTaxi.setOrderMoney(orderMoney); |
| | | orderTaxi.setPayMoney(orderMoney); |
| | | Driver driver = driverService.selectById(orderTaxi.getDriverId()); |
| | | |
| | | Company company = companyService.selectById(driver.getFranchiseeId()); |
| | | if(Objects.isNull(company)){ |
| | | company = companyService.selectById(driver.getCompanyId()); |
| | | } |
| | | TransactionDetails transactionDetails = new TransactionDetails(); |
| | | Double meterPrintingFee = company.getMeterPrintingFee(); |
| | | Double laveBusinessMoney = driver.getLaveBusinessMoney(); |
| | | Double laveActivityMoney = driver.getLaveActivityMoney(); |
| | | if(null != laveBusinessMoney && laveBusinessMoney.compareTo(meterPrintingFee) >= 0){ |
| | | driver.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(meterPrintingFee)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | }else if(null != laveActivityMoney && laveActivityMoney.compareTo(meterPrintingFee) >= 0){ |
| | | driver.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(meterPrintingFee)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | } |
| | | driver.setBalance(driver.getBalance() - meterPrintingFee); |
| | | transactionDetails.setMoney(meterPrintingFee); |
| | | // 新增扣除使用费记录 |
| | | transactionDetails.setUserId(driver.getId()); |
| | | transactionDetails.setInsertTime(new Date()); |
| | | transactionDetails.setRemark("软件使用费"); |
| | | transactionDetails.setState(2); |
| | | transactionDetails.setType(1); |
| | | transactionDetails.setUserType(2); |
| | | transactionDetails.setOrderType(6); |
| | | transactionDetails.setOrderId(orderTaxi.getId()); |
| | | transactionDetailsMapper.insert(transactionDetails); |
| | | driverService.updateById(driver); |
| | | } |
| | | //线上计费,计算费用后修改为待支付 |
| | | if(orderTaxi.getPayManner()==1){ |
| | | orderTaxi = this.setMoney2(orderTaxi, crossingFee, crossingFee); |
| | | orderTaxi.setState(7); |
| | | } |
| | | this.updateById(orderTaxi); |
| | | |
| | | //回滚司机状态为空闲 |
| | | Driver driver = driverService.selectById(orderTaxi.getDriverId()); |
| | | driver.setState(2); |
| | | driverService.updateById(driver); |
| | | |
| | | OrderTaxi finalOrderTaxi = orderTaxi; |
| | | new Thread(new Runnable() { |
| | |
| | | |
| | | spring: |
| | | datasource: |
| | | url: jdbc:mysql://127.0.0.1:10633/xianning?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true |
| | | url: jdbc:mysql://127.0.0.1:3306/xianning_1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true |
| | | username: root |
| | | password: XianNing@2024! |
| | | password: 123456 |
| | | # url: jdbc:mysql://127.0.0.1:3306/jk_fitness?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true |
| | | # username: root |
| | | # password: root |
| | |
| | | System.err.println(jsonObject1.getString("msg")); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | public void pushSystemMessage(Integer type, Integer uid, String message){ |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("code", 200); |
| | | jsonObject.put("msg", message); |
| | | jsonObject.put("method", "SYSTEM_MESSAGE"); |
| | | |
| | | //调用推送 |
| | | HttpHeaders headers = new HttpHeaders(); |
| | | // 以表单的方式提交 |
| | | headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); |
| | | //将请求头部和参数合成一个请求 |
| | | MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); |
| | | params.add("msg", jsonObject.toJSONString()); |
| | | params.add("id", String.valueOf(uid)); |
| | | params.add("type", String.valueOf(type)); |
| | | HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers); |
| | | String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class); |
| | | JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class); |
| | | if(jsonObject1.getIntValue("code") != 200){ |
| | | System.err.println(jsonObject1.getString("msg")); |
| | | } |
| | | } |
| | | |
| | | public void pushOrderStateVedio(Integer type, Integer uid, Integer orderId, Integer orderType, Integer state, Integer time,String url){ |
| | | JSONObject jsonObject = new JSONObject(); |
| | |
| | | |
| | | |
| | | @ResponseBody |
| | | @GetMapping("/api/taxi/getForecastPrice") |
| | | @PostMapping("/api/taxi/getForecastPrice") |
| | | @ApiOperation(value = "出租车获取预估费用【1.1】", tags = {"用户端-出租车"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | |
| | | |
| | | |
| | | @ResponseBody |
| | | @GetMapping("/api/taxi/getAllForecastPrice") |
| | | @PostMapping("/api/taxi/getAllForecastPrice") |
| | | @ApiOperation(value = "出租车获取两种计费预估费用【1.1】", tags = {"用户端-出租车"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | |
| | | if(null == query){ |
| | | return ResultUtil.error("获取企业失败"); |
| | | } |
| | | Map<String, String> distance = gdMapElectricFenceUtil.getDistance(warpper.getStartLon() + "," + warpper.getStartLat(), |
| | | warpper.getEndLon() + "," + warpper.getEndLat(), 1); |
| | | Map<String, String> distance = gdMapElectricFenceUtil.getDistance(warpper.getStartLat() + "," + warpper.getStartLon() , |
| | | warpper.getEndLat() + "," + warpper.getEndLon(), 1); |
| | | if(null == distance){ |
| | | return ResultUtil.error("计算行驶距离失败"); |
| | | } |
| | |
| | | }else{ |
| | | appletsOpenId = userInfo.getAppletsOpenId(); |
| | | } |
| | | Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",2", 9, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/wxPayOrderTaxi", "", type, appletsOpenId); |
| | | // Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",2", 9, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/wxPayOrderTaxi", "", type, appletsOpenId); |
| | | String app = type == 1 ? "APP" : "JSAPI"; |
| | | resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_2_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); |
| | | paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderId, 2, 1, orderMoney, "", 1);//添加预支付数据 |
| | |
| | | public void run() { |
| | | pushUtil.pushOrderState(1, orderTaxi.getUserId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0); |
| | | pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0); |
| | | pushUtil.pushSystemMessage(2, orderTaxi.getDriverId(), "用户已线上完成支付"); |
| | | } |
| | | }).start(); |
| | | |
| | |
| | | redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString()); |
| | | } |
| | | systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1); |
| | | //添加司机消息提醒 |
| | | systemNoticeService.addSystemNotice(2, "用户已线上完成支付", driver.getId(), 1); |
| | | } |
| | | |
| | | this.updateAllColumnById(orderTaxi); |
| | |
| | | public void run() { |
| | | pushUtil.pushOrderState(1, orderTaxi.getUserId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0); |
| | | pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0); |
| | | pushUtil.pushSystemMessage(2, orderTaxi.getDriverId(), "用户已线上完成支付"); |
| | | } |
| | | }).start(); |
| | | |
| | |
| | | systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成出行订单支付,谢谢使用!", orderTaxi.getUserId(), 1); |
| | | //添加司机消息提醒 |
| | | systemNoticeService.addSystemNotice(2, "用户已线上完成支付", driver.getId(), 1); |
| | | //推送状态,让司机端播报语音 |
| | | pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0); |
| | | }else{ |
| | | System.err.println("预支付数据异常(orderId = " + id + ")"); |
| | | } |
| | |
| | | # url: jdbc:mysql://127.0.0.1:3306/xianning?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true |
| | | # username: root |
| | | # password: 123456 |
| | | url: jdbc:mysql://127.0.0.1:10633/xianning?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true |
| | | url: jdbc:mysql://127.0.0.1:3306/xianning_1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true |
| | | username: root |
| | | password: XianNing@2024! |
| | | password: 123456 |
| | | db-name: guns #用来搜集数据库的所有表 |
| | | filters: wall,mergeStat |
| | | |