From ff4e6ef38864c4aa23ec58e8d8c3d5a9e871062c Mon Sep 17 00:00:00 2001 From: lzx_win <2602107437@qq.com> Date: Fri, 26 Sep 2025 15:27:45 +0800 Subject: [PATCH] Changes --- .../src/main/resources/application-druid-root.yml | 2 +- .../contoller/ApiMallUserTeacherController.java | 21 ++++- .../ruoyi/applet/mallpojo/TeacherListRequest.java | 2 + .../applet/pojo/dto/filterQualifiedUsersVo.java | 18 +++++ .../ruoyi/model/mapper/AppletServiceLogMapper.java | 4 +- .../model/service/IAppletServiceLogService.java | 4 +- .../model/service/impl/AppUsersServiceImpl.java | 92 ++++++++++++++++------ .../service/impl/AppletServiceLogServiceImpl.java | 4 +- 8 files changed, 115 insertions(+), 32 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application-druid-root.yml b/ruoyi-admin/src/main/resources/application-druid-root.yml index 1b97133..897a2f9 100644 --- a/ruoyi-admin/src/main/resources/application-druid-root.yml +++ b/ruoyi-admin/src/main/resources/application-druid-root.yml @@ -169,4 +169,4 @@ tencent: secretKey: cz96D9rPluvjKitrc9VfWSEqHWbUAh2D -payMangeDev: false \ No newline at end of file +payMangeDev: true \ No newline at end of file diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallUserTeacherController.java b/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallUserTeacherController.java index d3b26db..3f628db 100644 --- a/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallUserTeacherController.java +++ b/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallUserTeacherController.java @@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.*; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; @@ -50,6 +51,8 @@ public class ApiMallUserTeacherController extends BaseController { @Autowired private MemberWechatService memberWechatService; + @Autowired + private IAppletServiceLogService appletServiceLogService; @Autowired private IAApiAppletHhrWorkOutService apiAppletHhrWorkOutService; @@ -83,22 +86,36 @@ public class ApiMallUserTeacherController extends BaseController { List appUsers2 = new ArrayList<>(); if (StringUtils.isNotEmpty(request.getLatitude())){ + appUsers2 = appUsersService.filterQualifiedUsers( filterQualifiedUsersVo.builder() .companionLevel(request.getTeacherLevels()) .latitude(Double.parseDouble(request.getLatitude())) .longitude(Double.parseDouble(request.getLongitude())) + .petTypes(request.getPetTypes()) + .sex(request.getSex() == null ? null : Integer.valueOf(request.getSex() + "")) + .staffName(request.getStaffName()) + .timeArray(StringUtils.isNotEmpty(request.getSelectedDate()) ? Arrays.asList(request.getSelectedDate().split(",")) : null) .build() ); } - if (appUsers2.isEmpty()){ - appUsers2.add(appUsersService.lambdaQuery().last("limit 1").one()); + if (appUsers2.isEmpty() && request.getIsZ() == null){ + AppUsers one = appUsersService.lambdaQuery().last("limit 1").one(); + one.setAppletAddresseList(appletAddressService.lambdaQuery().eq(AppletAddress::getUserId, one.getUserId()).list()); + appUsers2.add(one); } for (AppUsers users : appUsers2) { + users.setEvaluationNum(omsOrderEvaluationService.lambdaQuery() .eq(OmsOrderEvaluation::getTechnicianId, users.getUserHh()).count()); + + users.setAppletUsersTeacher(appletUsersTeacherService.lambdaQuery().eq(AppletUsersTeacher::getUserId, users.getUserId()) + .last("limit 1") + .one()); + + users.setServiceSummaryNum(appletServiceLogService.lambdaQuery().eq(AppletServiceLog::getUserId, users.getUserId()).count()); } return getDataTable(appUsers2); diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/applet/mallpojo/TeacherListRequest.java b/ruoyi-catdog/src/main/java/com/ruoyi/applet/mallpojo/TeacherListRequest.java index bb3e4d7..c856f16 100644 --- a/ruoyi-catdog/src/main/java/com/ruoyi/applet/mallpojo/TeacherListRequest.java +++ b/ruoyi-catdog/src/main/java/com/ruoyi/applet/mallpojo/TeacherListRequest.java @@ -36,4 +36,6 @@ public class TeacherListRequest extends AppletUsersTeacher { //伴宠师级别 @ApiModelProperty(value = "伴宠师级别") Integer teacherLevels; + + String isZ; } diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/applet/pojo/dto/filterQualifiedUsersVo.java b/ruoyi-catdog/src/main/java/com/ruoyi/applet/pojo/dto/filterQualifiedUsersVo.java index 3e8df9d..c61078d 100644 --- a/ruoyi-catdog/src/main/java/com/ruoyi/applet/pojo/dto/filterQualifiedUsersVo.java +++ b/ruoyi-catdog/src/main/java/com/ruoyi/applet/pojo/dto/filterQualifiedUsersVo.java @@ -1,10 +1,13 @@ package com.ruoyi.applet.pojo.dto; +import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + @Data @AllArgsConstructor @NoArgsConstructor @@ -20,6 +23,21 @@ public class filterQualifiedUsersVo { /** 纬度 */ private Double latitude; + /** 订单id */ private Long orderId; + /** 性别 */ + private Integer sex; + + //姓名 + @ApiModelProperty(value = "姓名") + private String staffName; + + //时间 + @ApiModelProperty(value = "时间") + private List timeArray; + + //宠物类型 1猫咪,2狗狗 + @ApiModelProperty(value = "宠物类型 1猫咪,2狗狗") + private String petTypes; } diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletServiceLogMapper.java b/ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletServiceLogMapper.java index 1b7f914..002ea0e 100644 --- a/ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletServiceLogMapper.java +++ b/ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletServiceLogMapper.java @@ -1,6 +1,8 @@ package com.ruoyi.model.mapper; import java.util.List; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.model.domain.AppletServiceLog; /** @@ -9,7 +11,7 @@ import com.ruoyi.model.domain.AppletServiceLog; * @author ruoyi * @date 2025-03-28 */ -public interface AppletServiceLogMapper +public interface AppletServiceLogMapper extends BaseMapper { /** * 查询服务记录 diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletServiceLogService.java b/ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletServiceLogService.java index a5b9835..36b6797 100644 --- a/ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletServiceLogService.java +++ b/ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletServiceLogService.java @@ -1,6 +1,8 @@ package com.ruoyi.model.service; import java.util.List; + +import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.model.domain.AppletServiceLog; /** @@ -9,7 +11,7 @@ import com.ruoyi.model.domain.AppletServiceLog; * @author ruoyi * @date 2025-03-28 */ -public interface IAppletServiceLogService +public interface IAppletServiceLogService extends IService { /** * 查询服务记录 diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppUsersServiceImpl.java b/ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppUsersServiceImpl.java index ee6794f..2423746 100644 --- a/ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppUsersServiceImpl.java +++ b/ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppUsersServiceImpl.java @@ -19,16 +19,15 @@ import com.ruoyi.applet.pojo.dto.filterQualifiedUsersVo; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.model.domain.AppletAddress; -import com.ruoyi.model.domain.AppletOrder; -import com.ruoyi.model.domain.AppletOutDate; +import com.ruoyi.model.domain.*; import com.ruoyi.model.service.IAppletAddressService; import com.ruoyi.model.service.IAppletOutDateService; +import com.ruoyi.model.service.IAppletUsersTeacherService; import lombok.extern.log4j.Log4j2; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.model.mapper.AppUsersMapper; -import com.ruoyi.model.domain.AppUsers; import com.ruoyi.model.service.IAppUsersService; /** @@ -53,6 +52,9 @@ public class AppUsersServiceImpl extends ServiceImpl i @Autowired private IAppletAddressService appletAddressService; + @Autowired + private IAppletUsersTeacherService appletUsersTeacherService; + /** * 查询用户 * @@ -137,20 +139,35 @@ public class AppUsersServiceImpl extends ServiceImpl i public List filterQualifiedUsers(filterQualifiedUsersVo filterVo) { List qualifiedTechnicians = new ArrayList<>(); + // 排除的地址 ArrayList notAddressIds = new ArrayList<>(); + // 缓存的地址列表 List addressList = new ArrayList<>(); - LambdaQueryChainWrapper addressQW = appletAddressService.lambdaQuery(); - + List dates = new ArrayList<>(); + + //查询的用户id + List qualifiedUserId = new ArrayList<>(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - //根据不接单日期排除地址 + // + if (ObjectUtils.isNotEmpty(filterVo.getTimeArray())){ + for (String d : filterVo.getTimeArray()) { + try { + dates.add(sdf.parse(d)); + } catch (ParseException e) { + log.error(e.getMessage()); + } + } + } + //根据订单的查询服务日期 if (ObjectUtils.isNotEmpty(filterVo.getOrderId())){ - List dates = omsOrderServiceMapper.selectList(Wrappers. - lambdaQuery() - .select(OmsOrderService::getServiceDate) - .eq(OmsOrderService::getOrderId, filterVo.getOrderId())) + omsOrderServiceMapper.selectList(Wrappers. + lambdaQuery() + .select(OmsOrderService::getServiceDate) + .eq(OmsOrderService::getOrderId, filterVo.getOrderId())) .stream().map(n -> { try { return sdf.parse(n.getServiceDate()); @@ -158,18 +175,19 @@ public class AppUsersServiceImpl extends ServiceImpl i return null; } }) - .filter(n -> ObjectUtils.isNotEmpty(n)) - .collect(Collectors.toList()); + .filter(ObjectUtils::isNotEmpty) + .forEach(dates::add); + } + if (!dates.isEmpty()){ appletOutDateService.lambdaQuery().in(AppletOutDate::getDate, dates) - .select(AppletOutDate::getAddressId) - .groupBy(AppletOutDate::getAddressId) - .list().stream().forEach(n -> + .select(AppletOutDate::getAddressId) + .groupBy(AppletOutDate::getAddressId) + .list().forEach(n -> notAddressIds.add(n.getAddressId()) - ); + ); } - // 2. 根据订单经纬度查询范围内的地址 if (ObjectUtils.isNotEmpty(filterVo.getLatitude()) && ObjectUtils.isNotEmpty(filterVo.getLongitude())) { @@ -201,7 +219,6 @@ public class AppUsersServiceImpl extends ServiceImpl i .list(); // 3. 筛选在范围内的地址 - List qualifiedUserId = new ArrayList<>(); for (AppletAddress address : addressList) { if (StringUtils.isNotEmpty(address.getLatitude()) && StringUtils.isNotEmpty(address.getLongitude()) && @@ -228,18 +245,41 @@ public class AppUsersServiceImpl extends ServiceImpl i } } - // 4. 根据地址ID和技师等级查询符合条件的技师 - qualifiedTechnicians = appUsersMapper.selectList( - Wrappers.lambdaQuery() - .eq(ObjectUtils.isNotEmpty(filterVo.getCompanionLevel()),AppUsers::getUserBcsRole, filterVo.getCompanionLevel()) - .eq(AppUsers::getUserBcs, 1) + + //4、根据技师中的信息进行筛选 + if (ObjectUtils.isNotEmpty(filterVo.getSex()) + || StringUtils.isNotEmpty(filterVo.getPetTypes())){ + ArrayList ids = new ArrayList<>(); + List list = appletUsersTeacherService.lambdaQuery() + .eq(ObjectUtils.isNotEmpty(filterVo.getSex()), AppletUsersTeacher::getSex, filterVo.getSex()) + .like(StringUtils.isNotEmpty(filterVo.getPetTypes()), AppletUsersTeacher::getPetType, filterVo.getPetTypes()) + .select(AppletUsersTeacher::getUserId, AppletUsersTeacher::getSex) + .list(); + + for (AppletUsersTeacher teacher : list) { + if (teacher != null && teacher.getUserId() != null){ + ids.add(teacher.getUserId()); + } + } + + qualifiedUserId = (List) CollectionUtils.intersection(qualifiedUserId, ids); + } + + // 5. 根据地址ID和技师等级查询符合条件的技师 + if (!qualifiedUserId.isEmpty()){ + qualifiedTechnicians = appUsersMapper.selectList( + Wrappers.lambdaQuery() + .eq(ObjectUtils.isNotEmpty(filterVo.getCompanionLevel()), AppUsers::getUserBcsRole, filterVo.getCompanionLevel()) + .eq(AppUsers::getUserBcs, 1) // .and(ObjectUtils.isNotEmpty(filterVo.getCompanionLevel()), n -> { // n.eq(AppUsers::getUserBcsRole, filterVo.getCompanionLevel()) // .or() // .in(filterVo.getCompanionLevel() == 0, AppUsers::getUserBcsRole, 1,2); // }) - .in(qualifiedUserId.size() > 0, AppUsers::getUserId, qualifiedUserId) - ); + .like(StringUtils.isNotEmpty(filterVo.getStaffName()), AppUsers::getUserName, filterVo.getStaffName()) + .in(AppUsers::getUserId, qualifiedUserId) + ); + } } for (AppUsers users : qualifiedTechnicians) { diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletServiceLogServiceImpl.java b/ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletServiceLogServiceImpl.java index ce6f295..5ac8d1f 100644 --- a/ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletServiceLogServiceImpl.java +++ b/ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletServiceLogServiceImpl.java @@ -1,6 +1,8 @@ package com.ruoyi.model.service.impl; import java.util.List; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -15,7 +17,7 @@ import com.ruoyi.model.service.IAppletServiceLogService; * @date 2025-03-28 */ @Service -public class AppletServiceLogServiceImpl implements IAppletServiceLogService +public class AppletServiceLogServiceImpl extends ServiceImpl implements IAppletServiceLogService { @Autowired private AppletServiceLogMapper appletServiceLogMapper;