xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpOperationsUserController.java
@@ -249,5 +249,16 @@ xpOperationsUserService.importOperationsUser(file); return R.ok(); } /** * 根据手机号模糊查询用户(内部接口) * * @param phoneNumber 手机号 * @return 用户信息列表 */ @ApiOperation(value = "根据手机号模糊查询用户及角色信息", tags = {"内部接口"}) @PostMapping("/inner/xpOperationsUser/getByPhoneNumber") public R<List<XpOperationsUser>> getByPhoneNumber(@RequestParam String phoneNumber) { List<XpOperationsUser> result = xpOperationsUserService.getByPhoneNumber(phoneNumber); return R.ok(result); } } xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpOperationsUserService.java
@@ -121,4 +121,11 @@ * @return */ List<XpOperationsUserWithRoleVO> selectUsersWithRoleByIds(List<Long> ids); /** *根据手机号模糊查询用户 * @param phoneNumber * @return */ List<XpOperationsUser> getByPhoneNumber(String phoneNumber); } xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
@@ -479,4 +479,12 @@ return vo; }).collect(Collectors.toList()); } @Override public List<XpOperationsUser> getByPhoneNumber(String phoneNumber) { if (StringUtils.isBlank(phoneNumber)) { return Collections.emptyList(); } return lambdaQuery().eq(XpOperationsUser::getPhoneNumber, phoneNumber).list(); } } xp-robotaxi-account-boot/src/main/resources/mapper/account/XpOperationsRoleMapper.xml
@@ -27,7 +27,7 @@ SELECT u.*, r.id AS roleId, r.role_name AS roleName GROUP_CONCAT(r.role_name) AS roleName FROM xp_operations_user u LEFT JOIN xp_operations_role ur ON u.id = ur.operations_user_id LEFT JOIN sys_role r ON ur.role_id = r.id AND r.is_deleted = 0 @@ -43,6 +43,7 @@ AND r.id = #{roleId} </if> </where> GROUP BY u.id </select> <select id="selectSysUserRoleByOperationUserId" resultType="com.xiaopeng.api.model.account.XpOperationsRole"> xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/account/XpOperationUserClientFallbackFactory.java
@@ -10,6 +10,7 @@ import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Collections; import java.util.List; @Slf4j @@ -69,6 +70,12 @@ log.error("根据角色ID列表获取运维人员ID列表失败,原因:{}", cause.getMessage()); return R.fail("根据角色ID列表获取运维人员ID列表失败:" + cause.getMessage()); } @Override public R<List<XpOperationsUser>> getByPhoneNumber(String phoneNumber) { log.error("根据手机号模糊查询用户失败,原因:{}", cause.getMessage()); return R.ok(Collections.emptyList()); } }; } } xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/account/XpOperationUserClient.java
@@ -7,6 +7,7 @@ import com.xiaopeng.api.vo.account.XpOperationsUserWithRoleVO; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.dto.ServiceNameConstantsEnum; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -86,4 +87,13 @@ */ @PostMapping("/inner/xp-operations-role/getXpOperationsRoleByRoleIds") R<List<XpOperationsRole>> getXpOperationsRoleByRoleIds(@RequestBody List<Long> roleIds); /** * 根据手机号模糊查询用户(内部接口) * * @param phoneNumber 手机号 * @return 用户信息列表 */ @PostMapping("/inner/xpOperationsUser/getByPhoneNumber") public R<List<XpOperationsUser>> getByPhoneNumber(@RequestParam String phoneNumber); } xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpFleetServiceImpl.java
@@ -313,10 +313,24 @@ @Override public R<PageInfo<FleetPageVO>> pageList(FleetPageQuery query) { // 1. 构建查询条件 List<Long> operationUserIds = Collections.emptyList(); if (StringUtils.isNotBlank(query.getPhoneNumber())) { List<XpOperationsUser> data = xpOperationUserClient.getByPhoneNumber(query.getPhoneNumber()).getData(); if (CollUtil.isEmpty(data)) { PageInfo<FleetPageVO> emptyPageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); emptyPageInfo.setRecords(new ArrayList<>()); emptyPageInfo.setTotal(0L); return R.ok(emptyPageInfo); } operationUserIds = data.stream().map(XpOperationsUser::getId).collect(Collectors.toList()); } LambdaQueryWrapper<XpFleet> wrapper = new LambdaQueryWrapper<>(); if (StringUtils.isNotBlank(query.getFleetName())) { wrapper.like(XpFleet::getFleetName, query.getFleetName()); } if (CollUtil.isNotEmpty(operationUserIds)) { wrapper.in(XpFleet::getOperationsUserId, operationUserIds); } wrapper.orderByDesc(XpFleet::getCreateTime); // 2. 执行分页查询