From ecca9ab70a9a87bcb60977c92fbf81053b8fc1bb Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 04 九月 2024 09:17:55 +0800
Subject: [PATCH] 新增优化

---
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 50 insertions(+), 6 deletions(-)

diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java
index 723e462..7e6f424 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java
@@ -1,14 +1,18 @@
 package com.ruoyi.admin.service.impl;
 
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.admin.entity.MasterWorker;
 import com.ruoyi.admin.mapper.MasterWorkerMapper;
 import com.ruoyi.admin.service.MasterWorkerService;
 import com.ruoyi.admin.vo.MasterWorkerRankVO;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.order.api.entity.WorkerOrderRankVO;
+import com.ruoyi.order.api.feignClient.OrderClient;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.List;
+import javax.annotation.Resource;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -22,19 +26,59 @@
 @Service
 public class MasterWorkerServiceImpl extends ServiceImpl<MasterWorkerMapper, MasterWorker> implements MasterWorkerService {
 
+    @Resource
+    private OrderClient orderClient;
+
     @Override
     public List<MasterWorkerRankVO> workerRanking(List<String> cityList) {
         List<MasterWorker> masterWorkerList;
         if (null == cityList || cityList.isEmpty()) {
             masterWorkerList = lambdaQuery().eq(MasterWorker::getIsDelete, 0).list();
         } else {
-            masterWorkerList = lambdaQuery().in(MasterWorker::getCity, cityList).eq(MasterWorker::getIsDelete, 0).list();
+            masterWorkerList = lambdaQuery().in(MasterWorker::getCityCode, cityList)
+                    .eq(MasterWorker::getIsDelete, 0).list();
         }
         if (null == masterWorkerList || masterWorkerList.isEmpty()) {
             return new ArrayList<>();
         }
-        List<Integer> workerIdList = masterWorkerList.stream().map(MasterWorker::getId).collect(Collectors.toList());
-        List<MasterWorkerRankVO> result = baseMapper.workerRanking(workerIdList);
-        return null == result ? new ArrayList<>() : result;
+        // 师傅id查询
+        List<Integer> workerIds = masterWorkerList.stream().map(MasterWorker::getId).collect(Collectors.toList());
+        List<WorkerOrderRankVO> data = orderClient.workerOrderRank(workerIds).getData();
+        Map<Integer, Integer> map = data.stream().collect(Collectors.toMap(WorkerOrderRankVO::getWorkerId,
+                WorkerOrderRankVO::getOrderNumber));
+        // 结果数据封装
+        List<MasterWorkerRankVO> result = new ArrayList<>();
+        for (MasterWorker masterWorker : masterWorkerList) {
+            Integer id = masterWorker.getId();
+            Integer orderNumber = map.get(id);
+            if (null != orderNumber) {
+                // 展示数据
+                MasterWorkerRankVO masterWorkerRankVO = new MasterWorkerRankVO();
+                masterWorkerRankVO.setProfilePicture(masterWorker.getProfilePicture());
+                masterWorkerRankVO.setRealName(masterWorker.getRealName());
+                masterWorkerRankVO.setOrderNumber(orderNumber);
+                result.add(masterWorkerRankVO);
+            }
+        }
+        // 创建一个 Comparator
+        Comparator<MasterWorkerRankVO> comparator = Comparator
+                // 按照 orderNumber 字段排序
+                .comparingInt(MasterWorkerRankVO::getOrderNumber)
+                // 倒序
+                .reversed();
+        // 使用 Collections.sort 方法进行排序
+        result.sort(comparator);
+        return result;
     }
+
+    @Override
+    public boolean checkOnlyPhone(String phone, Integer id) {
+        LambdaQueryChainWrapper<MasterWorker> wrapper = lambdaQuery().eq(MasterWorker::getPhone, phone).eq(BaseEntity::getIsDelete, 0);
+        if (null != id) {
+            wrapper.ne(MasterWorker::getId, id);
+        }
+        MasterWorker masterWorker = wrapper.one();
+        return masterWorker == null;
+    }
+
 }

--
Gitblit v1.7.1