| | |
| | | @Autowired |
| | | private IOrderPositionService orderPositionService; |
| | | |
| | | @Autowired |
| | | private ICompanyFundFlowService companyFundFlowService; |
| | | |
| | | @Value("${callbackPath}") |
| | | private String callbackPath;//支付回调网关地址 |
| | | |
| | |
| | | * @param city 查询天气的城市 |
| | | * @return |
| | | */ |
| | | public Order getOrderPrice(Integer type, Double distance, Integer waitTime, Order order, String city) throws Exception{ |
| | | public Order getOrderPrice(Integer type, Double distance, Integer waitTime, Order order, String city) { |
| | | order = getOrderInitialPrice(order); |
| | | SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 5)); |
| | | if(null == systemConfig){ |
| | |
| | | s.setTime(date); |
| | | s.set(Calendar.HOUR_OF_DAY, hour1); |
| | | s.set(Calendar.MINUTE, Integer.valueOf(split[1])); |
| | | s.set(Calendar.SECOND, 59); |
| | | s.set(Calendar.SECOND, 0); |
| | | |
| | | Calendar e = Calendar.getInstance(); |
| | | e.setTime(date); |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | //计算折扣 |
| | |
| | | } |
| | | return order; |
| | | } |
| | | return order; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public ResultUtil transferOrder(Integer uid, Long orderId, String cause) throws Exception { |
| | | public ResultUtil transferOrder(Integer uid, Long orderId, String cause, String phone) throws Exception { |
| | | // 7.13改动 |
| | | OrderTransfer orderTransfer = new OrderTransfer(); |
| | | Order order = this.selectById(orderId); |
| | | if(phone!=null && !"".equals(phone)) { |
| | | List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("phone", phone)); |
| | | if (drivers.size() == 0) { |
| | | return ResultUtil.error("暂无该司机,无法转单"); |
| | | } else { |
| | | Driver driver = drivers.get(0); |
| | | if (driver.getServerStatus() != 1) { |
| | | return ResultUtil.error("司机正在服务中,无法转单。"); |
| | | } |
| | | if (driver.getStatus() != 1) { |
| | | return ResultUtil.error("该司机已被冻结,无法转单。"); |
| | | } |
| | | order.setDriverId(driver.getId()); |
| | | orderTransfer.setNewDriverId(driver.getId()); |
| | | } |
| | | } |
| | | if(order.getDriverId().compareTo(uid) != 0){ |
| | | return ResultUtil.error("无权操作"); |
| | | } |
| | |
| | | order.setState(201); |
| | | this.updateById(order); |
| | | |
| | | OrderTransfer orderTransfer = new OrderTransfer(); |
| | | |
| | | orderTransfer.setOrderId(orderId); |
| | | orderTransfer.setOldDriverId(order.getDriverId()); |
| | | orderTransfer.setCause(cause); |
| | | orderTransfer.setStatus(1); |
| | | orderTransfer.setCreateTime(new Date()); |
| | | orderTransferService.insert(orderTransfer); |
| | | |
| | | if(phone==null ||"".equals(phone)){ |
| | | //开始派单 |
| | | Order finalOrder = order; |
| | | new Thread(new Runnable() { |
| | |
| | | pushOrder(finalOrder.getId()); |
| | | } |
| | | }).start(); |
| | | } |
| | | |
| | | return ResultUtil.success(); |
| | | } |
| | | |
| | |
| | | accountChangeDetailService.insert(accountChangeDetail); |
| | | |
| | | //补贴中分账 |
| | | Double balance = revenueService.queryCompanyBalance();//平台账户余额 |
| | | |
| | | Double discountedPrice = order.getDiscountedPrice(); |
| | | List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 4).eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime")); |
| | | for (RechargeRecord rechargeRecord : rechargeRecords) { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | CompanyFundFlow companyFundFlow = new CompanyFundFlow(); |
| | | companyFundFlow.setType(5); |
| | | companyFundFlow.setObjectType(1); |
| | | companyFundFlow.setBalance(new BigDecimal(balance)); |
| | | companyFundFlow.setMoney(new BigDecimal(order.getDiscountedPrice())); |
| | | companyFundFlow.setCreateTime(new Date()); |
| | | companyFundFlowService.insert(companyFundFlow); |
| | | } |
| | | } |
| | | this.updateById(order); |
| | |
| | | } |
| | | //处理代理商抽佣 |
| | | if(num3 > 0){ |
| | | Double balance = revenueService.queryAgentBalance(driver.getAgentId()); |
| | | Revenue revenue = new Revenue(); |
| | | revenue.setType(1); |
| | | revenue.setUserType(3); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | CompanyFundFlow companyFundFlow = new CompanyFundFlow(); |
| | | companyFundFlow.setType(3); |
| | | companyFundFlow.setObjectType(2); |
| | | companyFundFlow.setObjectId(driver.getAgentId()); |
| | | companyFundFlow.setBalance(new BigDecimal(balance)); |
| | | companyFundFlow.setMoney(new BigDecimal(num3)); |
| | | companyFundFlow.setCreateTime(new Date()); |
| | | companyFundFlowService.insert(companyFundFlow); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | if(type == 3){//收入 |
| | | performanceRankingWarppers = revenueService.queryDriverRank(1, time, dayType); |
| | | |
| | | // 通过司机id 去差订单的优惠金额 |
| | | for (PerformanceRankingWarpper performanceRankingWarpper : performanceRankingWarppers) { |
| | | List<Order> orders = this.baseMapper.selectList(new EntityWrapper<Order>().eq("driverId", performanceRankingWarpper.getDriverId()).isNotNull("payMoney")); |
| | | double sum = orders.stream().mapToDouble(Order::getDiscountedPrice).sum(); |
| | | double sum1 = orders.stream().mapToDouble(Order::getDiscountAmount).sum(); |
| | | performanceRankingWarpper.setAmountOfData(new BigDecimal(performanceRankingWarpper.getAmountOfData()+sum+sum1).setScale(2,RoundingMode.HALF_UP).doubleValue()); |
| | | } |
| | | } |
| | | for (int i = 0; i < performanceRankingWarppers.size(); i++) { |
| | | PerformanceRankingWarpper performanceRankingWarpper = performanceRankingWarppers.get(i); |
| | |
| | | if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){ |
| | | break; |
| | | } |
| | | if(i == performanceRankingWarppers.size() - 1){ |
| | | position = 0; |
| | | d = 0D; |
| | | } |
| | | } |
| | | MyAchievementWarpper myAchievementWarpper = new MyAchievementWarpper(); |
| | | myAchievementWarpper.setType("订单"); |
| | |
| | | if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){ |
| | | break; |
| | | } |
| | | if(i == performanceRankingWarppers.size() - 1){ |
| | | position = 0; |
| | | d = 0D; |
| | | } |
| | | } |
| | | myAchievementWarpper = new MyAchievementWarpper(); |
| | | myAchievementWarpper.setType("收入"); |
| | |
| | | } |
| | | if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){ |
| | | break; |
| | | } |
| | | if(i == performanceRankingWarppers.size() - 1){ |
| | | position = 0; |
| | | d = 0D; |
| | | } |
| | | } |
| | | myAchievementWarpper = new MyAchievementWarpper(); |