From ec6d43aa07ee0e8faf34498057ebcfbb446aa015 Mon Sep 17 00:00:00 2001 From: hjl <1657978663@qq.com> Date: 星期二, 16 七月 2024 09:21:51 +0800 Subject: [PATCH] feat: 代码重构 --- ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java | 101 ++++++++++++++++++++++++++++++++------------------ 1 files changed, 65 insertions(+), 36 deletions(-) diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java index 233c475..1278b27 100644 --- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java +++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java @@ -1,18 +1,15 @@ 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; import com.ruoyi.common.core.utils.GaoDeMapUtil; +import com.ruoyi.order.api.entity.Order; +import com.ruoyi.order.api.feignClient.OrderClient; import com.ruoyi.worker.entity.MasterWorker; -import com.ruoyi.worker.entity.Order; import com.ruoyi.worker.entity.RecoveryServe; import com.ruoyi.worker.mapper.MasterWorkerMapper; import com.ruoyi.worker.service.MasterWorkerService; -import com.ruoyi.worker.service.OrderService; import com.ruoyi.worker.service.RecoveryServeService; -import com.ruoyi.worker.vo.OrderCountVO; import com.ruoyi.worker.vo.OrderListVO; import com.ruoyi.worker.vo.OrderNotHandleVO; import org.springframework.stereotype.Service; @@ -35,24 +32,13 @@ public class MasterWorkerServiceImpl extends ServiceImpl<MasterWorkerMapper, MasterWorker> implements MasterWorkerService { @Resource - private OrderService orderService; - @Resource private RecoveryServeService recoveryServeService; - - @Override - public OrderCountVO orderCount(Integer id) { - return baseMapper.orderCount(id); - } + @Resource + private OrderClient orderClient; @Override public List<OrderListVO> orderNotHandle(Integer userid, String longitude, String latitude) { - 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<Order> orderList = orderClient.orderNotHandle(userid).getData(); // 根据经纬度距离封装 List<OrderNotHandleVO> list = new ArrayList<>(); boolean item = false; @@ -76,7 +62,7 @@ .eq(RecoveryServe::getId, order.getServeId()) .eq(RecoveryServe::getIsDelete, 0).one(); // vo类信息封装 - OrderListVO orderListVO = new OrderListVO(order.getServeId()); + OrderListVO orderListVO = new OrderListVO(); orderListVO.setOrderId(order.getId()); orderListVO.setOrderNumber(order.getOrderNumber()); orderListVO.setSiteId(order.getSiteId()); @@ -124,28 +110,71 @@ } return resultList; } - } @Override - public Boolean orderTop(Integer orderId, Integer userid) { - // 订单代办列表 - List<Order> orderList = orderService.lambdaQuery().eq(Order::getServerId, userid) - .in(Order::getState, Constants.ONE, Constants.TWO) - .eq(Order::getIsDelete, 0) - .orderByAsc(Order::getTopSort).list(); - int itemSort = 2; + public List<OrderListVO> orderMapMode(Integer userid, String longitude, String latitude) { + List<Order> orderList = orderClient.orderNotHandle(userid).getData(); + // 根据经纬度距离封装 + List<OrderNotHandleVO> list = new ArrayList<>(); for (Order order : orderList) { - if (null != order.getTopSort()) { - order.setTopSort(itemSort); - itemSort++; + // 用户下单经纬度 + Double orderLongitude = order.getLongitude(); + Double orderLatitude = order.getLatitude(); + Integer topSort = order.getTopSort(); + String orderPosition = orderLongitude + "," + orderLatitude; + // 根据经纬度计算与师傅的距离 + Result<Long> result = GaoDeMapUtil.getDistance(orderPosition, longitude + "," + latitude); + Long distance = result.getDatas(); + // 回收服务信息 + RecoveryServe recoveryServe = recoveryServeService.lambdaQuery() + .eq(RecoveryServe::getId, order.getServeId()) + .eq(RecoveryServe::getIsDelete, 0).one(); + // vo类信息封装 + OrderListVO orderListVO = new OrderListVO(); + orderListVO.setOrderId(order.getId()); + orderListVO.setOrderNumber(order.getOrderNumber()); + orderListVO.setSiteId(order.getSiteId()); + orderListVO.setSiteName(order.getSiteName()); + orderListVO.setServeId(order.getServeId()); + orderListVO.setServeName(order.getServeName()); + if (null != recoveryServe) { + orderListVO.setServePicture(recoveryServe.getCover()); + orderListVO.setServePrice(recoveryServe.getDefaultPrice()); + } + orderListVO.setUserId(userid); + orderListVO.setReservationName(order.getReservationName()); + orderListVO.setReservationPhone(order.getReservationPhone()); + orderListVO.setReservationAddress(order.getReservationAddress()); + orderListVO.setTime(order.getTime()); + orderListVO.setServerId(order.getServerId()); + orderListVO.setServerName(order.getServerName()); + orderListVO.setServerPhone(order.getServerPhone()); + orderListVO.setReservationRemark(order.getReservationRemark()); + orderListVO.setOrderMoney(order.getOrderMoney()); + orderListVO.setState(order.getState()); + orderListVO.setAcceptTime(order.getAcceptTime()); + orderListVO.setArriveTime(order.getArriveTime()); + orderListVO.setType(order.getType()); + orderListVO.setLongitude(order.getLongitude()); + orderListVO.setLatitude(order.getLatitude()); + orderListVO.setTopSort(topSort); + 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()); } } - orderService.updateBatchById(orderList); - return orderService.lambdaUpdate().set(Order::getTopSort, Constants.ONE) - .eq(Order::getServerId, userid) - .eq(Order::getId, orderId) - .eq(Order::getIsDelete, 0).update(); + return resultList; } } -- Gitblit v1.7.1