From 9acb17a6871d84a85c373eb90b980f98894e30e0 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 18 二月 2025 17:58:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java | 132 +++++++++++++++++++++++++++++++++++++-------
1 files changed, 111 insertions(+), 21 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 39c3f9d..61fbf3f 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,17 +1,15 @@
package com.ruoyi.worker.service.impl;
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;
@@ -34,46 +32,55 @@
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) {
- List<Order> orderList = orderService.lambdaQuery().eq(Order::getServerId, userid).eq(Order::getState, Constants.TWO)
- .eq(Order::getIsDelete, 0).eq(Order::getType, Constants.ZERO).list();
+ List<Order> orderList = orderClient.orderNotHandle(userid).getData();
// 根据经纬度距离封装
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();
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();
+ RecoveryServe recoveryServe = recoveryServeService.lambdaQuery()
+ .eq(RecoveryServe::getId, order.getServeId()).one();
// vo类信息封装
- OrderListVO orderListVO = new OrderListVO(order.getServeId());
+ 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());
- 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());
- orderListVO.setReservationAddress(order.getReservationAddress());
+ if (order.getAddress()!=null) {
+ orderListVO.setReservationAddress(order.getReservationAddress() + order.getAddress());
+ }else {
+ orderListVO.setReservationAddress(order.getReservationAddress());
+
+ }
orderListVO.setTime(order.getTime());
orderListVO.setServerId(order.getServerId());
orderListVO.setServerName(order.getServerName());
@@ -86,6 +93,90 @@
orderListVO.setType(order.getType());
orderListVO.setLongitude(order.getLongitude());
orderListVO.setLatitude(order.getLatitude());
+ orderListVO.setTopSort(topSort);
+ orderListVO.setFake(order.getFake()==null?0:order.getFake());
+ OrderNotHandleVO vo = new OrderNotHandleVO(distance, orderListVO);
+ list.add(vo);
+ }
+ List<OrderNotHandleVO> newList = new ArrayList<>();
+ if (item) {
+ // 已置顶订单
+ List<OrderNotHandleVO> topSortNotNull = list.stream()
+ .filter(data -> data.getOrderList().getTopSort() != null).collect(Collectors.toList());
+ newList.addAll(topSortNotNull);
+ // 未置顶订单,根据距离由近到远排序
+ List<OrderNotHandleVO> topSortNull = list.stream()
+ .filter(data -> data.getOrderList().getTopSort() == null).collect(Collectors.toList());
+ topSortNull.sort(Comparator.comparing(OrderNotHandleVO::getDistance));
+ newList.addAll(topSortNull);
+ return newList.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).one();
+ if (null != recoveryServe) {
+ orderListVO.setServePicture(recoveryServe.getCover());
+ }
+ }
+ return resultList;
+ }
+ }
+
+ @Override
+ 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) {
+ // 用户下单经纬度
+ 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()).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());
+ if (order.getAddress()!=null) {
+ orderListVO.setReservationAddress(order.getReservationAddress() + order.getAddress());
+ }else {
+ 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);
}
@@ -95,8 +186,7 @@
for (OrderListVO orderListVO : resultList) {
Integer serveId = orderListVO.getServeId();
// 回收服务信息
- RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId)
- .eq(RecoveryServe::getIsDelete, 0).one();
+ RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId).one();
if (null != recoveryServe) {
orderListVO.setServePicture(recoveryServe.getCover());
}
--
Gitblit v1.7.1