| | |
| | | package com.ruoyi.worker.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.core.constant.Constants; |
| | | import com.ruoyi.common.core.domain.Result; |
| | |
| | | |
| | | @Override |
| | | public List<OrderListVO> orderNotHandle(Integer userid, String longitude, String latitude) { |
| | | List<Order> orderList = orderService.lambdaQuery().eq(Order::getServerId, userid) |
| | | .eq(Order::getState, Constants.ONE) |
| | | .eq(Order::getIsDelete, 0) |
| | | .eq(Order::getType, Constants.ZERO) |
| | | .orderByAsc(Order::getTopSort).list(); |
| | | QueryWrapper<Order> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("server_id", userid) |
| | | .in("state", 1, 2) |
| | | .eq("is_delete", Constants.ZERO) |
| | | .orderByAsc("CASE WHEN topSort IS NULL THEN 1 ELSE 0 END") |
| | | .orderByAsc("topSort"); |
| | | List<Order> orderList = orderService.list(wrapper); |
| | | // 根据经纬度距离封装 |
| | | List<OrderNotHandleVO> list = new ArrayList<>(); |
| | | boolean item = false; |
| | | for (Order order : orderList) { |
| | | if (null != order.getTopSort()) { |
| | | item = true; |
| | | break; |
| | | } |
| | | } |
| | | for (Order order : orderList) { |
| | | // 用户下单经纬度 |
| | | Double orderLongitude = order.getLongitude(); |
| | |
| | | Result<Long> result = GaoDeMapUtil.getDistance(orderPosition, longitude + "," + latitude); |
| | | Long distance = result.getDatas(); |
| | | // 回收服务信息 |
| | | RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, order.getServeId()) |
| | | RecoveryServe recoveryServe = recoveryServeService.lambdaQuery() |
| | | .eq(RecoveryServe::getId, order.getServeId()) |
| | | .eq(RecoveryServe::getIsDelete, 0).one(); |
| | | // vo类信息封装 |
| | | OrderListVO orderListVO = new OrderListVO(order.getServeId()); |
| | |
| | | orderListVO.setSiteName(order.getSiteName()); |
| | | orderListVO.setServeId(order.getServeId()); |
| | | orderListVO.setServeName(order.getServeName()); |
| | | orderListVO.setServePicture(recoveryServe.getCover()); |
| | | orderListVO.setServePrice(recoveryServe.getDefaultPrice()); |
| | | if (null != recoveryServe) { |
| | | orderListVO.setServePicture(recoveryServe.getCover()); |
| | | orderListVO.setServePrice(recoveryServe.getDefaultPrice()); |
| | | } |
| | | orderListVO.setUserId(userid); |
| | | orderListVO.setReservationName(order.getReservationName()); |
| | | orderListVO.setReservationPhone(order.getReservationPhone()); |
| | |
| | | OrderNotHandleVO vo = new OrderNotHandleVO(distance, orderListVO); |
| | | list.add(vo); |
| | | } |
| | | // 根据距离排序 |
| | | list.sort(Comparator.comparing(OrderNotHandleVO::getDistance)); |
| | | List<OrderListVO> resultList = list.stream().map(OrderNotHandleVO::getOrderList).collect(Collectors.toList()); |
| | | for (OrderListVO orderListVO : resultList) { |
| | | Integer serveId = orderListVO.getServeId(); |
| | | // 回收服务信息 |
| | | RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId) |
| | | .eq(RecoveryServe::getIsDelete, 0).one(); |
| | | if (null != recoveryServe) { |
| | | orderListVO.setServePicture(recoveryServe.getCover()); |
| | | if (item) { |
| | | return list.stream().map(OrderNotHandleVO::getOrderList).collect(Collectors.toList()); |
| | | } else { |
| | | // 根据距离排序 |
| | | list.sort(Comparator.comparing(OrderNotHandleVO::getDistance)); |
| | | List<OrderListVO> resultList = list.stream().map(OrderNotHandleVO::getOrderList).collect(Collectors.toList()); |
| | | for (OrderListVO orderListVO : resultList) { |
| | | Integer serveId = orderListVO.getServeId(); |
| | | // 回收服务信息 |
| | | RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId) |
| | | .eq(RecoveryServe::getIsDelete, 0).one(); |
| | | if (null != recoveryServe) { |
| | | orderListVO.setServePicture(recoveryServe.getCover()); |
| | | } |
| | | } |
| | | return resultList; |
| | | } |
| | | return resultList; |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public Boolean orderTop(Integer orderId, Integer userid) { |
| | | // 订单代办列表 |
| | | List<Order> orderList = orderService.lambdaQuery().eq(Order::getServerId, userid) |
| | | .eq(Order::getState, Constants.ONE) |
| | | .in(Order::getState, Constants.ONE, Constants.TWO) |
| | | .eq(Order::getIsDelete, 0) |
| | | .eq(Order::getType, Constants.ZERO) |
| | | .orderByAsc(Order::getTopSort).list(); |
| | | List<Order> orders = orderList.stream().filter(data -> null != data.getTopSort()).collect(Collectors.toList()); |
| | | int itemSort = 2; |
| | | for (Order order : orders) { |
| | | order.setTopSort(itemSort); |
| | | itemSort++; |
| | | for (Order order : orderList) { |
| | | if (null != order.getTopSort()) { |
| | | order.setTopSort(itemSort); |
| | | itemSort++; |
| | | } |
| | | } |
| | | orderService.updateBatchById(orderList); |
| | | return orderService.lambdaUpdate().set(Order::getTopSort, Constants.ONE) |
| | | .eq(Order::getServerId, userid) |
| | | .eq(Order::getId, orderId) |
| | | .eq(Order::getIsDelete, 0).update(); |
| | | } |
| | | |