Browse Source

Changes

master
主管理员 4 weeks ago
parent
commit
ff4e6ef388
8 changed files with 115 additions and 32 deletions
  1. +1
    -1
      ruoyi-admin/src/main/resources/application-druid-root.yml
  2. +19
    -2
      ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallUserTeacherController.java
  3. +2
    -0
      ruoyi-catdog/src/main/java/com/ruoyi/applet/mallpojo/TeacherListRequest.java
  4. +18
    -0
      ruoyi-catdog/src/main/java/com/ruoyi/applet/pojo/dto/filterQualifiedUsersVo.java
  5. +3
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletServiceLogMapper.java
  6. +3
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletServiceLogService.java
  7. +66
    -26
      ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppUsersServiceImpl.java
  8. +3
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletServiceLogServiceImpl.java

+ 1
- 1
ruoyi-admin/src/main/resources/application-druid-root.yml View File

@ -169,4 +169,4 @@ tencent:
secretKey: cz96D9rPluvjKitrc9VfWSEqHWbUAh2D
payMangeDev: false
payMangeDev: true

+ 19
- 2
ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallUserTeacherController.java View File

@ -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<AppUsers> 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);


+ 2
- 0
ruoyi-catdog/src/main/java/com/ruoyi/applet/mallpojo/TeacherListRequest.java View File

@ -36,4 +36,6 @@ public class TeacherListRequest extends AppletUsersTeacher {
//伴宠师级别
@ApiModelProperty(value = "伴宠师级别")
Integer teacherLevels;
String isZ;
}

+ 18
- 0
ruoyi-catdog/src/main/java/com/ruoyi/applet/pojo/dto/filterQualifiedUsersVo.java View File

@ -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<String> timeArray;
//宠物类型 1猫咪2狗狗
@ApiModelProperty(value = "宠物类型 1猫咪,2狗狗")
private String petTypes;
}

+ 3
- 1
ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletServiceLogMapper.java View File

@ -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<AppletServiceLog>
{
/**
* 查询服务记录


+ 3
- 1
ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletServiceLogService.java View File

@ -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<AppletServiceLog>
{
/**
* 查询服务记录


+ 66
- 26
ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppUsersServiceImpl.java View File

@ -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<AppUsersMapper, AppUsers> i
@Autowired
private IAppletAddressService appletAddressService;
@Autowired
private IAppletUsersTeacherService appletUsersTeacherService;
/**
* 查询用户
*
@ -137,20 +139,35 @@ public class AppUsersServiceImpl extends ServiceImpl<AppUsersMapper, AppUsers> i
public List<AppUsers> filterQualifiedUsers(filterQualifiedUsersVo filterVo) {
List<AppUsers> qualifiedTechnicians = new ArrayList<>();
// 排除的地址
ArrayList<Long> notAddressIds = new ArrayList<>();
// 缓存的地址列表
List<AppletAddress> addressList = new ArrayList<>();
LambdaQueryChainWrapper<AppletAddress> addressQW = appletAddressService.lambdaQuery();
List<Date> dates = new ArrayList<>();
//查询的用户id
List<Long> 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<Date> dates = omsOrderServiceMapper.selectList(Wrappers.<OmsOrderService>
lambdaQuery()
.select(OmsOrderService::getServiceDate)
.eq(OmsOrderService::getOrderId, filterVo.getOrderId()))
omsOrderServiceMapper.selectList(Wrappers.<OmsOrderService>
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<AppUsersMapper, AppUsers> 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<AppUsersMapper, AppUsers> i
.list();
// 3. 筛选在范围内的地址
List<Long> 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<AppUsersMapper, AppUsers> i
}
}
// 4. 根据地址ID和技师等级查询符合条件的技师
qualifiedTechnicians = appUsersMapper.selectList(
Wrappers.<AppUsers>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<Long> ids = new ArrayList<>();
List<AppletUsersTeacher> 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<Long>) CollectionUtils.intersection(qualifiedUserId, ids);
}
// 5. 根据地址ID和技师等级查询符合条件的技师
if (!qualifiedUserId.isEmpty()){
qualifiedTechnicians = appUsersMapper.selectList(
Wrappers.<AppUsers>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) {


+ 3
- 1
ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletServiceLogServiceImpl.java View File

@ -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<AppletServiceLogMapper, AppletServiceLog> implements IAppletServiceLogService
{
@Autowired
private AppletServiceLogMapper appletServiceLogMapper;


Loading…
Cancel
Save