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-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 44 insertions(+), 8 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 6d6bf62..516dacf 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,17 @@ 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.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,25 +25,58 @@ @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::getCity, 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) { - MasterWorker masterWorker = lambdaQuery().eq(MasterWorker::getPhone, phone).one(); + public boolean checkOnlyPhone(String phone, Integer id) { + LambdaQueryChainWrapper<MasterWorker> wrapper = lambdaQuery().eq(MasterWorker::getPhone, phone); + if (null != id) { + wrapper.ne(MasterWorker::getId, id); + } + MasterWorker masterWorker = wrapper.one(); return masterWorker == null; } -- Gitblit v1.7.1