xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysUserController.java
@@ -87,7 +87,7 @@ PageInfo<SysUser> pageInfo = new PageInfo<SysUser>(sysUserListQuery.getPageNum(), sysUserListQuery.getPageSize()); PageInfo<SysUser> page = userService.getList(pageInfo, sysUserListQuery); page.getRecords().forEach(user -> { if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ user.setPhoneNumber(DesensitizedUtil.mobilePhone(user.getPhoneNumber())); // user.setUserAccount(sysGroupService.getPhoneDesensitization(user.getUserAccount())); } @@ -103,7 +103,7 @@ LoginUser loginUser = tokenService.getLoginUser(); List<SysUser> listAll = userService.list(); for (SysUser sysUser : listAll) { if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ sysUser.setPhoneNumber(DesensitizedUtil.mobilePhone(sysUser.getPhoneNumber())); } } @@ -197,7 +197,7 @@ ajax.put("posts", postService.selectPostAll()); if (StringUtils.isNotNull(userId)) { SysUser sysUser = userService.selectUserById(userId); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ sysUser.setPhoneNumber(DesensitizedUtil.mobilePhone(sysUser.getPhoneNumber())); } ajax.put(AjaxResult.DATA_TAG, sysUser); xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/TokenController.java
@@ -75,7 +75,7 @@ // 用户登录 LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(), request); boolean phoneDesensitization = sysGroupService.getPhoneDesensitization(); userInfo.setPhoneDesensitization(phoneDesensitization); userInfo.setPhoneDesensitizationExempt(phoneDesensitization); HashMap<String, Object> map = new HashMap<>(); map.put("token", tokenService.createToken(userInfo)); List<SysRole> roles = userInfo.getSysUser().getRoles(); xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpOperationsUserController.java
@@ -233,7 +233,7 @@ public R<PageInfo<XpOperationsUserVO>> pageList(@RequestBody XpOperationsUserQuery query) { LoginUser loginUser = tokenService.getLoginUser(); PageInfo<XpOperationsUserVO> pageList = xpOperationsUserService.pageList(query); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ for (XpOperationsUserVO record : pageList.getRecords()) { record.setPhoneNumber(DesensitizedUtil.mobilePhone(record.getPhoneNumber())); } @@ -396,7 +396,7 @@ xpOperationsUserVO.setCertificateOfNoCriminalRecord(jsonObject.toJSONString()); } } if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ xpOperationsUserVO.setPhoneNumber(DesensitizedUtil.mobilePhone(xpOperationsUserVO.getPhoneNumber())); } xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
@@ -123,7 +123,7 @@ LoginUser loginUser = tokenService.getLoginUser(); PageInfo<XpOperationsUserWithRoleVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); Page<XpOperationsUserWithRoleVO> page = baseMapper.selectUserPageByConditions(pageInfo, query); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ for (XpOperationsUserWithRoleVO record : page.getRecords()) { record.setPhoneNumber(DesensitizedUtil.mobilePhone(record.getPhoneNumber())); } @@ -273,7 +273,7 @@ } for (XpOperationsUserVO xpOperationsUserVO : list) { if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ xpOperationsUserVO.setPhoneNumber(DesensitizedUtil.mobilePhone(xpOperationsUserVO.getPhoneNumber())); } xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java
@@ -93,7 +93,7 @@ for (XpQualificationAuditVO xpQualificationAuditVO : list) { if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ xpQualificationAuditVO.setPhoneNumber(DesensitizedUtil.mobilePhone(xpQualificationAuditVO.getPhoneNumber())); } String certificateOfNoCriminalRecord = xpQualificationAuditVO.getCertificateOfNoCriminalRecord(); xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/account/SysGroup.java
@@ -42,5 +42,5 @@ private Integer groupType; @ApiModelProperty(value = "手机脱敏(0=否,1=是)") private Integer phoneDesensitization; private Integer phoneDesensitizationExempt; } xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/order/OrderTrajectory.java
File was renamed from xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/mangodb/model/OrderTrajectory.java @@ -1,4 +1,4 @@ package com.xiaopeng.order.mangodb.model; package com.xiaopeng.api.model.order; import com.xiaopeng.common.core.web.domain.MongoBaseModel; @@ -7,8 +7,6 @@ import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import org.springframework.data.mongodb.core.mapping.Document; import java.util.List; @Data @AllArgsConstructor xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/account/LoginUser.java
@@ -68,5 +68,5 @@ /** * 数据脱敏权限 */ private Boolean phoneDesensitization; private Boolean phoneDesensitizationExempt; } xp-robotaxi-common/xp-common-security/src/main/java/com/xiaopeng/common/security/service/TokenService.java
@@ -61,7 +61,7 @@ claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId); claimsMap.put(SecurityConstants.USER_TYPE, "system"); claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName); claimsMap.put(SecurityConstants.DESENSITIZATION, loginUser.getPhoneDesensitization()); claimsMap.put(SecurityConstants.DESENSITIZATION, loginUser.getPhoneDesensitizationExempt()); // 接口返回信息 Map<String, Object> rspMap = new HashMap<String, Object>(); rspMap.put("access_token", JwtUtils.createToken(claimsMap)); xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/ActiveOrderServiceImpl.java
@@ -17,6 +17,7 @@ import com.xiaopeng.api.model.operation.XpElectronicFenceArea; import com.xiaopeng.api.model.operation.XpPoint; import com.xiaopeng.api.model.operation.XpSystemSetting; import com.xiaopeng.api.model.order.OrderTrajectory; import com.xiaopeng.api.model.order.XpOrder; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.api.vo.automaticPilot.protobuf.OrderOperationType; @@ -24,6 +25,7 @@ import com.xiaopeng.api.vo.operation.RouteVo; import com.xiaopeng.common.core.constant.CacheConstants; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.enums.CancelOrderSceneEnum; import com.xiaopeng.common.core.enums.OrderStatusEnum; import com.xiaopeng.common.core.exception.ServiceException; import com.xiaopeng.common.core.utils.StringUtils; @@ -41,10 +43,14 @@ import com.xiaopeng.itinerary.utils.map.GDMapGeocodingUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; import java.util.StringJoiner; import java.util.concurrent.TimeUnit; @@ -84,6 +90,8 @@ private OrderMissionClient orderMissionClient; @Resource private OfficialPartnerUtil officialPartnerUtil; @Resource private MongoTemplate mongoTemplate; /* @@ -137,8 +145,22 @@ Integer orderChange = systemSetting.getXczCaCount();// 从配置文件读取 修改订单目的地次数 XpOrder order = xpOrderR.getData(); //判断订单修改的次数 //需要加上豁免的情况 if(order.getOrderChange() > orderChange){ throw new ServiceException("目的地修改次数已超上限"); if(order.getStatus() == 6){ //计算平均时速小于设定值,可豁免限制 Integer xczHmSpeedPerHour = systemSetting.getXczHmSpeedPerHour(); Integer xczHmDuration = systemSetting.getXczHmDuration(); LocalDateTime localDateTime = LocalDateTime.now().minusMinutes(xczHmDuration); List<OrderTrajectory> orderTrajectories = mongoTemplate.find(Query.query(Criteria.where("orderId").is(order.getId()).gt("createTime").is(localDateTime)), OrderTrajectory.class); if(orderTrajectories.isEmpty()){ throw new ServiceException("目的地修改次数已超上限"); } double speed = orderTrajectories.stream().map(OrderTrajectory::getSpeed).reduce(Double::sum).orElse(0D) / orderTrajectories.size(); if(speed > xczHmSpeedPerHour){ throw new ServiceException("目的地修改次数已超上限"); } } } if(order.getVehicleId() == null){ throw new ServiceException("行驶中的车辆信息错误"); @@ -230,6 +252,10 @@ pushOrderDto.setEndTaskId(order.getXpuEndTaskId()); pushOrderDto.setVin(xpVehicle.getVehicleVin()); pushOrderDto.setOperation_type(OrderOperationType.CLOUD_CHANGE_DESTINATION); pushOrderDto.setEndLongitude(endXpPoint.getPointLon()); pushOrderDto.setEndLatitude(endXpPoint.getPointLat()); pushOrderDto.setEndPoiName(endXpPoint.getPointName()); pushOrderDto.setCancelScene(CancelOrderSceneEnum.NORMAL_CANCEL.getCode()); orderMissionClient.updateEndAddress(pushOrderDto); log.info("订单下发XPU修改目的地成功 {}", order.getId()); xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpMapController.java
@@ -1,18 +1,21 @@ package com.xiaopeng.map.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.xiaopeng.api.dto.WeatherDTO; import com.xiaopeng.api.dto.map.HistoryPointDto; import com.xiaopeng.api.dto.map.OrderRouteAndFareDto; import com.xiaopeng.api.dto.map.RouteAndFareDto; import com.xiaopeng.api.feignClient.order.XpOrderClient; import com.xiaopeng.api.model.map.XpGeoFencingPolygon; import com.xiaopeng.api.model.operation.XpElectronicFenceArea; import com.xiaopeng.api.vo.map.PointByIpVo; import com.xiaopeng.api.vo.operation.RouteVo; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.redis.service.RedisService; import com.xiaopeng.map.mangodb.model.GeoPoint; import com.xiaopeng.map.mangodb.service.XpGeoFencingPolygonService; import com.xiaopeng.map.service.XpElectronicFenceAreaService; import com.xiaopeng.map.utils.AmapWalkingRouteUtil; import com.xiaopeng.map.utils.GDMapGeocodingUtil; import com.xiaopeng.unifiedverification.interceptor.XpClientCheck; @@ -36,6 +39,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -57,6 +61,8 @@ private final RedisService redisService; private final XpOrderClient xpOrderClient; private final MongoTemplate mongoTemplate; @Resource private XpElectronicFenceAreaService xpElectronicFenceAreaService; public XpMapController(GDMapGeocodingUtil gdMapGeocodingUtil, XpGeoFencingPolygonService xpGeoFencingPolygonService, RedisService redisService, XpOrderClient xpOrderClient, MongoTemplate mongoTemplate) { this.gdMapGeocodingUtil = gdMapGeocodingUtil; @@ -145,13 +151,14 @@ String fenceId = null; if(!operatingArea.isEmpty()){ fenceId = operatingArea.get(0); List<XpGeoFencingPolygon> pointsInFence = mongoTemplate.find(Query.query(Criteria.where("fenceId").is(fenceId)), XpGeoFencingPolygon.class); for (XpGeoFencingPolygon xpGeoFencingPolygon : pointsInFence) { GeoJsonPolygon points = xpGeoFencingPolygon.getPoints(); List<XpElectronicFenceArea> list = xpElectronicFenceAreaService.list(new QueryWrapper<XpElectronicFenceArea>().eq("electronic_id", fenceId).eq("is_deleted", 0).eq("area_type", 2)); for (XpElectronicFenceArea xpElectronicFenceArea : list) { String fencePoints = xpElectronicFenceArea.getFencePoints(); List<String> coordinatesList = new ArrayList<>(); for (Point point : points) { coordinatesList.add(point.getX()+","+point.getY()); for (String s : fencePoints.split(",")) { coordinatesList.add(s.replace("_", ",")); } JSONObject jsonObject = new JSONObject(); jsonObject.put("coordinates", coordinatesList); pointStrParam.add(jsonObject); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpInvitationCodeController.java
@@ -85,7 +85,7 @@ public R<PageInfo<XpInvitationCode>> pageList(@RequestBody InvitationPageListQuery query) { LoginUser loginUser = tokenService.getLoginUser(); PageInfo<XpInvitationCode> pageList = xpInvitationCodeService.pageList(query); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ pageList.getRecords().forEach(s -> s.setBindAccount(DesensitizedUtil.mobilePhone(s.getBindAccount()))); } return R.ok(pageList); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpTargetedServiceController.java
@@ -63,7 +63,7 @@ if (vo == null) { return R.fail("数据不存在"); } if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ vo.getWhitelistList().forEach(s->s.setAccount(DesensitizedUtil.mobilePhone(s.getAccount()))); } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpUserFeedbackController.java
@@ -72,7 +72,7 @@ public R<PageInfo<XpUserFeedbackVO>> getPageList(@RequestBody UserFeedBackQuery query) { LoginUser loginUser = tokenService.getLoginUser(); PageInfo<XpUserFeedbackVO> pageList = xpUserFeedbackService.getPageList(query); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ pageList.getRecords().forEach(s->s.setPhone(DesensitizedUtil.mobilePhone(s.getPhone()))); } return R.ok(); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java
@@ -94,7 +94,7 @@ public R<XpWhitelist> detail(@PathVariable("id") Long id) { LoginUser loginUser = tokenService.getLoginUser(); XpWhitelist xpWhitelist = xpWhitelistService.getById(id); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ xpWhitelist.setAccount(DesensitizedUtil.mobilePhone(xpWhitelist.getAccount())); } return R.ok(xpWhitelist); @@ -106,7 +106,7 @@ public R<PageInfo<XpWhitelist>> pageList(@RequestBody WhitelistPageListQuery query) { LoginUser loginUser = tokenService.getLoginUser(); PageInfo<XpWhitelist> pageList = xpWhitelistService.pageList(query); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ pageList.getRecords().forEach(s->s.setAccount(DesensitizedUtil.mobilePhone(s.getAccount()))); } return R.ok(pageList); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpSystemSettingServiceImpl.java
@@ -100,7 +100,13 @@ .set(XpSystemSetting::getAdsorptionDistance, xpSystemSetting.getAdsorptionDistance()) .set(XpSystemSetting::getHotfixStatus, xpSystemSetting.getHotfixStatus()) .set(XpSystemSetting::getHotfixStartTime, xpSystemSetting.getHotfixStartTime()) .set(XpSystemSetting::getHotfixEndTime, xpSystemSetting.getHotfixEndTime()).update(); .set(XpSystemSetting::getHotfixEndTime, xpSystemSetting.getHotfixEndTime()) .set(XpSystemSetting::getXczCaCount, xpSystemSetting.getXczCaCount()) .set(XpSystemSetting::getXczSyDistance, xpSystemSetting.getXczSyDistance()) .set(XpSystemSetting::getXczSyTime, xpSystemSetting.getXczSyTime()) .set(XpSystemSetting::getXczHmSpeedPerHour, xpSystemSetting.getXczHmSpeedPerHour()) .set(XpSystemSetting::getXczHmDuration, xpSystemSetting.getXczHmDuration()) .update(); }else { save(xpSystemSetting); } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
@@ -1181,6 +1181,87 @@ } } log.info("没有找到空闲车辆 {},尝试连环派单给即将服务结束的车辆", orderNo); // 查询状态为1的车辆vin R<List<String>> servingVehicles = xpVehicleClient.queryVehiclePositionByVin(new VehiclePositionByVinDto(xpElectronicFence.getId(), vinList, xpTradingStrategy.getSimultaneouslyOrderCount(),1)); if (servingVehicles.getCode() != 200) { continue; } LonLatDto userPostion = new LonLatDto(Double.parseDouble(split[0]), Double.parseDouble(split[1])); XpTradingStrategyDetailVO strategyDetailVO = tradingStrategyClient.queryById().getData(); Integer distanceRegardAsEnding = strategyDetailVO.getDistanceRegardAsEnding(); Integer timeRegardAsEnding = strategyDetailVO.getTimeRegardAsEnding(); Integer backupPower = strategyDetailVO.getBackupPower(); Integer destToPassenger = strategyDetailVO.getDestToPassenger(); Integer endingTimeToUseTime = strategyDetailVO.getEndingTimeToUseTime(); LocalDateTime rideTime = xpOrder.getRideTime(); LocalDateTime now = LocalDateTime.now(); Optional<XpOrder> luckyOrderOpt = servingVehicles.getData().stream() //获取位置 .map(vin -> mongoTemplate.findOne(new Query(Criteria.where("vin").is(vin)), VehiclePosition.class)) .map(VehiclePosition::getOrderId) .map(xpOrderClient::queryOrderById) .filter(R::isSuccess) .map(R::getData) .filter(o -> { XpVehicle xpVehicle = xpVehicleClient.queryById(o.getVehicleId()).getData(); Object cacheObject = redisService.getCacheObject(CacheConstants.navigationEnd(o.getAppUserId().toString())); RouteVo routeRemain = JSON.parseObject(cacheObject.toString(), RouteVo.class); if (routeRemain.getDuration() / 60 > timeRegardAsEnding) { return false; } if (routeRemain.getDistance() > distanceRegardAsEnding) { return false; } RouteAndFareDto next = new RouteAndFareDto(); next.setOrigin(new LonLatDto(o.getStartLon(),o.getStartLat())); next.setDestination(new LonLatDto(o.getEndLon(),o.getEndLat())); RouteVo route = xpMapClient.getDistanceAndDuration(next).getData(); if (route.getDistance() > backupPower + xpVehicle.getMileageRange()) return false; return routeRemain.getDistance() < destToPassenger || now.plusSeconds(routeRemain.getDuration()) .plusMinutes(endingTimeToUseTime) .isBefore(rideTime); }) .findAny(); if (luckyOrderOpt.isPresent()) { XpOrder luckyOder = luckyOrderOpt.get(); log.info("有空闲车辆 {} 订单 {}", luckyOder.getOrderNumber(), orderNo); XpVehicle xpVehicle = xpVehicleClient.queryById(luckyOder.getVehicleId()).getData(); // 设置路线信息 RouteAndFareDto routeAndFareDto = new RouteAndFareDto(); routeAndFareDto.setDestination(userPostion); routeAndFareDto.setOrigin(new LonLatDto(luckyOder.getEndLon(),luckyOder.getEndLat())); RouteVo routeToOrigin = xpMapClient.getDistanceAndDuration(routeAndFareDto).getData(); Object cacheObject = redisService.getCacheObject(CacheConstants.navigationEnd(luckyOder.getAppUserId().toString())); RouteVo routeRemain = JSON.parseObject(cacheObject.toString(), RouteVo.class); routeToOrigin.getPolyline().addAll(0, routeRemain.getPolyline()); routeToOrigin.setDuration(routeToOrigin.getDuration() + routeRemain.getDuration()); routeToOrigin.setDistance(routeToOrigin.getDistance() + routeRemain.getDistance()); //此处找到车后先不忙给车推送接单消息,先修改订单上的车辆信息 xpOrder.setVehicleId(xpVehicle.getId()); xpOrder.setAcceptanceTime(LocalDateTime.now()); xpOrder.setStatus(2); xpOrderClient.updateOrder(xpOrder); JSONObject jsonObject = new JSONObject(); jsonObject.put("orderId", xpOrder.getId()); jsonObject.put("endLongitude", xpOrder.getEndLat()); jsonObject.put("endLatitude", xpOrder.getEndLat()); redisService.setCacheObject(CacheConstants.nextOrder(luckyOder.getId().toString()), jsonObject.toJSONString()); redisService.setCacheObject(CacheConstants.navigationStart(xpOrder.getAppUserId().toString()), routeToOrigin); redisService.removeByPattern(quoteName,xpOrder.getOrderNumber()); log.info("将订单 {} 从队列 {} 弹出去", orderNo, quoteName); break; } } return false; } xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/CustomerServiceController.java
@@ -1,28 +1,23 @@ package com.xiaopeng.order.controller; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.xiaopeng.api.dto.account.UcUserInfo; import com.xiaopeng.api.dto.vehicleConvoy.ServiceVehicleListDto; import com.xiaopeng.api.feignClient.account.UserResourcesClient; import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient; import com.xiaopeng.api.model.map.XpGeoFencingPolygon; import com.xiaopeng.api.model.order.XpOrder; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.api.vo.automaticPilot.AppUserPosition; import com.xiaopeng.api.vo.automaticPilot.VehiclePosition; import com.xiaopeng.api.vo.vehicleConvoy.VehicleDoorStatusVo; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.utils.StringUtils; import com.xiaopeng.order.dto.UserOrderListDto; import com.xiaopeng.order.mangodb.model.OrderTrajectory; import com.xiaopeng.api.model.order.OrderTrajectory; import com.xiaopeng.order.service.IXpOrderService; import com.xiaopeng.order.vo.*; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.geo.GeoJsonPoint; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.web.bind.annotation.*; @@ -31,7 +26,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
@@ -24,7 +24,6 @@ import com.xiaopeng.api.model.order.XpOrder; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.api.vo.account.LoginUser; import com.xiaopeng.api.vo.automaticPilot.VehiclePosition; import com.xiaopeng.api.vo.operation.NavigationVo; import com.xiaopeng.api.vo.operation.NearestNextVo; import com.xiaopeng.api.vo.operation.RouteVo; @@ -38,8 +37,7 @@ import com.xiaopeng.common.redis.service.RedisService; import com.xiaopeng.common.security.service.TokenService; import com.xiaopeng.order.dto.OrderNavigationDto; import com.xiaopeng.order.mangodb.model.OrderTrajectory; import com.xiaopeng.order.mangodb.service.OrderTrajectoryService; import com.xiaopeng.api.model.order.OrderTrajectory; import com.xiaopeng.order.model.dto.XpOrderCommentDto; import com.xiaopeng.order.model.dto.XpOrderOperateDTO; import com.xiaopeng.order.model.dto.XpOrderPayDto; @@ -242,7 +240,7 @@ public R<PageInfo<XpOrderPageVO>> pageList( @RequestBody XpOrderPageQuery query) { LoginUser loginUser = tokenService.getLoginUser(); PageInfo<XpOrderPageVO> pageInfo = xpOrderService.pageList(query); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ pageInfo.getRecords().forEach(s->s.setPhoneNumber(DesensitizedUtil.mobilePhone(s.getPhoneNumber()))); } @@ -260,7 +258,7 @@ public R<XpOrderDetailVO> queryById(@ApiParam(value = "订单id", required = true) @RequestParam Long id) { LoginUser loginUser = tokenService.getLoginUser(); XpOrderDetailVO detail = xpOrderService.getOrderDetail(id); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ detail.setPhoneNumber(DesensitizedUtil.mobilePhone(detail.getPhoneNumber())); } xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderEvaluateController.java
@@ -48,7 +48,7 @@ public R<PageInfo<OrderEvaluatePageVO>> pageList(@Validated @RequestBody OrderEvaluatePageQuery query) { LoginUser loginUser = tokenService.getLoginUser(); PageInfo<OrderEvaluatePageVO> pageInfo = xpOrderEvaluateService.pageList(query); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ pageInfo.getRecords().forEach(s->s.setPhoneNumber(DesensitizedUtil.mobilePhone(s.getPhoneNumber()))); } xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpTestOrderController.java
@@ -1,66 +1,25 @@ package com.xiaopeng.order.controller; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.xiaopeng.api.dto.QueryOrderRouteDTO; import com.xiaopeng.api.dto.operation.LonLatDto; import com.xiaopeng.api.dto.order.GetOrderNumDto; import com.xiaopeng.api.dto.order.PopOrderDto; import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO; import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO; import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient; import com.xiaopeng.api.model.order.XpTestOrder; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.api.vo.automaticPilot.VehiclePosition; import com.xiaopeng.api.vo.operation.RouteVo; import com.xiaopeng.api.vo.order.*; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.utils.WebUtils; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.common.redis.service.RedisService; import com.xiaopeng.order.mangodb.model.OrderTrajectory; import com.xiaopeng.order.model.dto.XpOrderCommentDto; import com.xiaopeng.api.model.order.OrderTrajectory; import com.xiaopeng.order.model.dto.XpOrderOperateDTO; import com.xiaopeng.order.model.dto.XpOrderPayDto; import com.xiaopeng.order.model.dto.XpOrderReassignDTO; import com.xiaopeng.order.model.exportExcel.XpOrderExportExcel; import com.xiaopeng.order.model.query.XpHistoryOrderListQuery; import com.xiaopeng.order.model.query.XpOrderExcelQuery; import com.xiaopeng.order.model.query.XpOrderPageQuery; import com.xiaopeng.order.model.query.XpTestOrderPageQuery; import com.xiaopeng.order.model.vo.*; import com.xiaopeng.order.service.IXpOrderService; import com.xiaopeng.order.service.IXpTestOrderService; import com.xiaopeng.order.vo.OrderDetailVo; import com.xiaopeng.unifiedverification.interceptor.XpClientCheck; import io.swagger.annotations.*; import lombok.RequiredArgsConstructor; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * <p> xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/mangodb/service/OrderTrajectoryService.java
@@ -1,7 +1,7 @@ package com.xiaopeng.order.mangodb.service; import com.xiaopeng.common.core.web.service.BaseService; import com.xiaopeng.order.mangodb.model.OrderTrajectory; import com.xiaopeng.api.model.order.OrderTrajectory; import org.springframework.stereotype.Repository; /** xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/mangodb/service/impl/OrderTrajectoryServiceImpl.java
@@ -1,6 +1,6 @@ package com.xiaopeng.order.mangodb.service.impl; import com.xiaopeng.order.mangodb.model.OrderTrajectory; import com.xiaopeng.api.model.order.OrderTrajectory; import com.xiaopeng.order.mangodb.service.OrderTrajectoryService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/IXpOrderService.java
@@ -1,6 +1,5 @@ package com.xiaopeng.order.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.xiaopeng.api.dto.order.GetOrderNumDto; import com.xiaopeng.api.dto.order.PopOrderDto; @@ -16,7 +15,7 @@ import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.order.dto.UserOrderListDto; import com.xiaopeng.order.mangodb.model.OrderTrajectory; import com.xiaopeng.api.model.order.OrderTrajectory; import com.xiaopeng.order.model.dto.XpOrderCommentDto; import com.xiaopeng.order.model.dto.XpOrderPayDto; import com.xiaopeng.order.model.query.XpHistoryOrderListQuery; @@ -26,8 +25,6 @@ import com.xiaopeng.order.model.vo.XpOrderHistoryVO; import com.xiaopeng.order.model.vo.XpOrderPageVO; import com.xiaopeng.order.vo.*; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import java.math.BigDecimal; import java.util.List; xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/IXpTestOrderService.java
@@ -2,32 +2,14 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.xiaopeng.api.dto.order.GetOrderNumDto; import com.xiaopeng.api.dto.order.PopOrderDto; import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO; import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO; import com.xiaopeng.api.model.order.XpOrder; import com.xiaopeng.api.model.order.XpTestOrder; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.api.vo.order.FareBreakdownVo; import com.xiaopeng.api.vo.order.XpHistoryEndPointsVo; import com.xiaopeng.api.vo.order.XpHistoryStartPointsVo; import com.xiaopeng.api.vo.order.XpPointInfoVo; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.order.mangodb.model.OrderTrajectory; import com.xiaopeng.order.model.dto.XpOrderCommentDto; import com.xiaopeng.order.model.dto.XpOrderPayDto; import com.xiaopeng.order.model.query.XpHistoryOrderListQuery; import com.xiaopeng.order.model.query.XpOrderExcelQuery; import com.xiaopeng.order.model.query.XpOrderPageQuery; import com.xiaopeng.api.model.order.OrderTrajectory; import com.xiaopeng.order.model.query.XpTestOrderPageQuery; import com.xiaopeng.order.model.vo.*; import com.xiaopeng.order.vo.OrderDetailVo; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.math.BigDecimal; import java.util.List; /** * <p> xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -84,7 +84,7 @@ import com.xiaopeng.order.job.base.QuartzManager; import com.xiaopeng.order.job.base.TimeJobType; import com.xiaopeng.order.job.jobs.*; import com.xiaopeng.order.mangodb.model.OrderTrajectory; import com.xiaopeng.api.model.order.OrderTrajectory; import com.xiaopeng.order.mangodb.service.OrderTrajectoryService; import com.xiaopeng.order.mapper.XpCruiseOrderMapper; import com.xiaopeng.order.mapper.XpOrderDetailMapper; @@ -652,7 +652,7 @@ if (Objects.nonNull(order.getAppUserId()) && userInfoMap != null && userInfoMap.containsKey(order.getAppUserId().toString())) { UcUserInfo userInfo = userInfoMap.get(order.getAppUserId().toString()); vo.setNickName(userInfo.getNickName()); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ vo.setPhoneNumber(DesensitizedUtil.mobilePhone(userInfo.getMobile())); } @@ -2899,7 +2899,7 @@ pushOrderDto.setOrderType(OrderType.CRUISE_ORDER); pushOrderDto.setStage(2); pushOrderDto.setLastOrderId(order.getId() + ""); pushOrderDto.setLastOrderId(order.getXpuEndTaskId()); pushOrderDto.setLastXpuTaskId(order.getXpuEndTaskId()); pushOrderDto.setTaskActionType(TaskActionType.kTerminateForNewTask); orderMissionClient.pushOrder(pushOrderDto); log.info("下发XUP巡游订单报文成功"); xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpTestOrderServiceImpl.java
@@ -51,9 +51,8 @@ import com.xiaopeng.order.job.base.QuartzManager; import com.xiaopeng.order.job.base.TimeJobType; import com.xiaopeng.order.job.jobs.EndTripJob; import com.xiaopeng.order.job.jobs.OrderCancelJob; import com.xiaopeng.order.job.jobs.TestOrderCancelJob; import com.xiaopeng.order.mangodb.model.OrderTrajectory; import com.xiaopeng.api.model.order.OrderTrajectory; import com.xiaopeng.order.mapper.XpCruiseOrderMapper; import com.xiaopeng.order.mapper.XpTestOrderDetailMapper; import com.xiaopeng.order.mapper.XpTestOrderMapper; xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/vo/OrderDetailVo.java
@@ -1,7 +1,7 @@ package com.xiaopeng.order.vo; import com.xiaopeng.api.model.order.XpOrder; import com.xiaopeng.order.mangodb.model.OrderTrajectory; import com.xiaopeng.api.model.order.OrderTrajectory; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpFleetController.java
@@ -156,7 +156,7 @@ public R<FleetDetailVO> queryById(@RequestParam Long id) { LoginUser loginUser = tokenService.getLoginUser(); R<FleetDetailVO> fleetDetailVOR = xpFleetService.queryById(id); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ fleetDetailVOR.getData().setPhoneNumber(DesensitizedUtil.mobilePhone(fleetDetailVOR.getData().getPhoneNumber())); } @@ -174,7 +174,7 @@ public R<PageInfo<FleetPageVO>> pageList(@Valid @RequestBody FleetPageQuery query) { LoginUser loginUser = tokenService.getLoginUser(); R<PageInfo<FleetPageVO>> pageInfoR = xpFleetService.pageList(query); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ pageInfoR.getData().getRecords().forEach(s->s.setPhoneNumber(DesensitizedUtil.mobilePhone(s.getPhoneNumber()))); } xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpFleetServiceImpl.java
@@ -307,7 +307,7 @@ R<XpOperationsUser> userResult = xpOperationUserClient.queryById(fleet.getOperationsUserId()); if (userResult.getData() != null) { vo.setOperationsUserName(userResult.getData().getNickName()); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ vo.setPhoneNumber(DesensitizedUtil.mobilePhone(userResult.getData().getPhoneNumber())); } @@ -413,7 +413,7 @@ XpOperationsUser user = userMap.get(fleet.getOperationsUserId()); if (user != null) { vo.setOperationsUserName(user.getNickName()); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ vo.setPhoneNumber(DesensitizedUtil.mobilePhone(user.getPhoneNumber())); } @@ -555,7 +555,7 @@ FleetUserVO vo = new FleetUserVO(); vo.setUserId(user.getId()); vo.setNickName(user.getNickName()); if(!loginUser.getPhoneDesensitization()){ if(!loginUser.getPhoneDesensitizationExempt()){ vo.setPhoneNumber(DesensitizedUtil.mobilePhone(user.getPhoneNumber())); } xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpPolicyApplicationServiceImpl.java
@@ -76,11 +76,6 @@ public PageInfo<XpPolicyApplicationVO> pageList(XpPolicyApplicationQuery query) { LoginUser loginUser = tokenService.getLoginUser(); PageInfo<XpPolicyApplicationVO> resultPage = new PageInfo<>(query.getPageNum(), query.getPageSize()); if(!loginUser.getPhoneDesensitization()){ for (XpPolicyApplicationVO vo : resultPage.getRecords()) { vo.setPhoneNumber(DesensitizedUtil.mobilePhone(vo.getPhoneNumber())); } } // 1. 根据运维人员名称查询运维人员ID列表 List<Long> operationUserIds = null; @@ -128,6 +123,12 @@ List<XpPolicyApplicationVO> voList = page.getRecords().stream() .map(item -> convertToPageVO(item, longXpVehicleMap, longXpOperationsUserMap, auditUserMap)) .collect(Collectors.toList()); if(!loginUser.getPhoneDesensitizationExempt()){ for (XpPolicyApplicationVO xpPolicyApplicationVO : voList) { xpPolicyApplicationVO.setPhoneNumber(DesensitizedUtil.mobilePhone(xpPolicyApplicationVO.getPhoneNumber())); } } // 6. 返回分页结果 resultPage.setTotal(page.getTotal()); resultPage.setRecords(voList);