From a0767273891a406217f3514996b9c67f2b060eba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LI-CCONG=5C=E6=9D=8E=E8=81=AA=E8=81=AA?= <1441652193@qq.com> Date: Wed, 6 Mar 2024 14:05:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=A3=E6=88=B7=E4=B8=8B=E5=8D=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/RecycleOrderController.java | 4 ++-- .../controller/RecycleStationController.java | 8 +++---- .../java/cc/yunxi/domain/dto/LocationDTO.java | 22 ++++++++++++------- .../java/cc/yunxi/domain/dto/WxLoginDTO.java | 1 - .../vo/recycleorder/RecycleOrderCreateVO.java | 20 +++++++++++------ .../yunxi/interceptor/LoginInterceptor.java | 3 ++- .../service/impl/RecycleOrderServiceImpl.java | 15 ++++++++----- 7 files changed, 45 insertions(+), 28 deletions(-) diff --git a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java index 8b27449..a1a9ff3 100644 --- a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java +++ b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java @@ -50,7 +50,7 @@ public class RecycleOrderController { Page result = recycleOrderService.queryOrderByPage(recycleOrderQuery); // 3.订单距离计算 LocationDTO locationDTO = recycleOrderQuery.getLocation(); - if (ObjectUtil.isNotEmpty(locationDTO) && locationDTO.isValid()) { + if (ObjectUtil.isNotEmpty(locationDTO)) { String longitude = locationDTO.getLongitude(); String latitude = locationDTO.getLatitude(); for(RecycleOrder recycleOrder : result.getRecords()) { @@ -79,7 +79,7 @@ public class RecycleOrderController { public CommonResult findOrder(@RequestBody RecycleOrderQuery recycleOrderQuery) { RecycleOrder recycleOrder = recycleOrderService.getOrderById(recycleOrderQuery.getId()); LocationDTO locationDTO = recycleOrderQuery.getLocation(); - if (ObjectUtil.isNotEmpty(locationDTO) && locationDTO.isValid()) { + if (ObjectUtil.isNotEmpty(locationDTO)) { String longitude = locationDTO.getLongitude(); String latitude = locationDTO.getLatitude(); String distance = CommonUtil.getDistance(longitude, latitude, recycleOrder.getLongitude(), recycleOrder.getLatitude()); diff --git a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleStationController.java b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleStationController.java index 9717421..a1799c5 100644 --- a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleStationController.java +++ b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleStationController.java @@ -41,8 +41,8 @@ public class RecycleStationController { public CommonResult> queryStationByPage(@RequestBody RecycleStationQuery recycleStationQuery) { LocationDTO locationDTO = recycleStationQuery.getLocation(); log.info("client locationDTO: {}", locationDTO); - if (ObjectUtil.isEmpty(locationDTO) && !locationDTO.isValid()) { - throw new BizIllegalException("授权定位信息未授权 或 定位信息错误"); + if (ObjectUtil.isEmpty(locationDTO)) { + throw new BizIllegalException("授权定位信息未授权"); } Page result = recycleStationService.queryStationByPage(recycleStationQuery); PageDTO recycleStationPageVO = PageDTO.of(result, RecycleStationRespVO.class); @@ -58,8 +58,8 @@ public class RecycleStationController { // 站点距离计算 LocationDTO locationDTO = recycleStationQuery.getLocation(); log.info("client locationDTO: {}", locationDTO); - if (ObjectUtil.isEmpty(locationDTO) && !locationDTO.isValid()) { - throw new BizIllegalException("授权定位信息未授权 或 定位信息错误"); + if (ObjectUtil.isEmpty(locationDTO)) { + throw new BizIllegalException("授权定位信息未授权"); } return CommonResult.success(recycleStationRespVO); } diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/dto/LocationDTO.java b/nxhs-service/src/main/java/cc/yunxi/domain/dto/LocationDTO.java index 4a50ed9..58bb3fe 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/dto/LocationDTO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/dto/LocationDTO.java @@ -4,27 +4,33 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.regex.Pattern; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + @Data @ApiModel(description = "当前位置实体") public class LocationDTO { - private static final String LONGITUDE_REGEX = "/^[\\-\\+]?(0?\\d{1,2}\\.\\d{1,6}|1[0-7]?\\d{1}\\.\\d{1,6}|180\\.0{1,6})$/"; + private static final String LONGITUDE_REGEX = "^[\\-\\+]?(0?\\d{1,2}\\.\\d{1,6}|1[0-7]?\\d{1}\\.\\d{1,6}|180\\.0{1,6})$"; - private static final String LATITUDE_REGEX = "/^[\\-\\+]?([0-8]?\\d{1}\\.\\d{1,6}|90\\.0{1,6})$/"; + private static final String LATITUDE_REGEX = "^[\\-\\+]?([0-8]?\\d{1}\\.\\d{1,6}|90\\.0{1,6})$"; @ApiModelProperty(value = "当前经度", required = true, example = "121.404032") + @NotNull(message = "未知定位") + @Pattern(regexp = LONGITUDE_REGEX, message = "经度格式错误") private String longitude; - @ApiModelProperty(value = "当前经度", required = true, example = "31.163973") + @ApiModelProperty(value = "当前纬度", required = true, example = "31.163973") + @NotNull(message = "未知定位") + @Pattern(regexp = LATITUDE_REGEX, message = "纬度格式错误") private String latitude; - // 判断经纬度是否有效 - public boolean isValid() { - return Pattern.matches(LONGITUDE_REGEX, longitude) && Pattern.matches(LATITUDE_REGEX, latitude); - } +// // 判断经纬度是否有效 +// public boolean isValid() { +// return Pattern.matches(/LONGITUDE_REGEX/, longitude) && Pattern.matches(/LATITUDE_REGEX/, latitude); +// } } diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/dto/WxLoginDTO.java b/nxhs-service/src/main/java/cc/yunxi/domain/dto/WxLoginDTO.java index 6d339fc..3da76d2 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/dto/WxLoginDTO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/dto/WxLoginDTO.java @@ -5,7 +5,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotEmpty; @Data @ApiModel(description = "小程序认证实体") diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorder/RecycleOrderCreateVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorder/RecycleOrderCreateVO.java index 84bc2f1..e437ad7 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorder/RecycleOrderCreateVO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recycleorder/RecycleOrderCreateVO.java @@ -1,10 +1,12 @@ package cc.yunxi.domain.vo.recycleorder; +import cc.yunxi.domain.dto.LocationDTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.validation.annotation.Validated; +import javax.validation.Valid; import javax.validation.constraints.Future; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -29,13 +31,17 @@ public class RecycleOrderCreateVO { @NotBlank(message = "散户地址不能为空") private String recycleAddress; - @ApiModelProperty(value = "下单地址经度", required = true, example = "119.643888") - @NotBlank(message = "下单地址经度不能为空") - private Double longitude; - - @ApiModelProperty(value = "下单地址纬度", required = true, example = "37.966944") - @NotBlank(message = "下单地址纬度不能为空") - private Double latitude; +// @ApiModelProperty(value = "下单地址经度", required = true, example = "119.643888") +// @NotBlank(message = "下单地址经度不能为空") +// private String longitude; +// +// @ApiModelProperty(value = "下单地址纬度", required = true, example = "37.966944") +// @NotBlank(message = "下单地址纬度不能为空") +// private String latitude; + @ApiModelProperty(value = "当前位置", required = true) + @NotNull(message = "位置定位信息未授权") + @Valid + private LocationDTO locationDTO; @ApiModelProperty(value = "预约上门时间起", required = true, example = "2024-03-01 15:58:49") @NotNull(message = "预约上门时间起不能为空") diff --git a/nxhs-service/src/main/java/cc/yunxi/interceptor/LoginInterceptor.java b/nxhs-service/src/main/java/cc/yunxi/interceptor/LoginInterceptor.java index 4274ea7..376cd58 100644 --- a/nxhs-service/src/main/java/cc/yunxi/interceptor/LoginInterceptor.java +++ b/nxhs-service/src/main/java/cc/yunxi/interceptor/LoginInterceptor.java @@ -1,6 +1,7 @@ package cc.yunxi.interceptor; import cc.yunxi.common.exception.BizIllegalException; +import cc.yunxi.common.exception.UnauthorizedException; import cc.yunxi.domain.dto.UserDTO; import cc.yunxi.service.impl.CommonService; import cc.yunxi.utils.JwtTool; @@ -31,7 +32,7 @@ public class LoginInterceptor implements HandlerInterceptor { // 2.缓存中读取token信息 boolean existsKey = redisTool.existsKey(CommonService.TOKEN_KEY + token); if (!existsKey) { - throw new BizIllegalException("token已过期"); + throw new UnauthorizedException("token已过期"); } // 这里userInfo可以来自缓存 todo // 3.校验token diff --git a/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleOrderServiceImpl.java b/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleOrderServiceImpl.java index 177b26c..da92e3e 100644 --- a/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleOrderServiceImpl.java +++ b/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleOrderServiceImpl.java @@ -32,7 +32,6 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; -import javax.validation.Valid; /** *

@@ -94,7 +93,10 @@ public class RecycleOrderServiceImpl extends ServiceImpl { + target.setLatitude(source.getLocationDTO().getLatitude()); + target.setLongitude(source.getLocationDTO().getLongitude()); + }); String idNumber = CommonUtil.getIdNumber(BusinessCodeEnum.ORDER.getCode()); recycleOrder.setClientId(client.getId()); recycleOrder.setClientName(client.getNickName()); @@ -111,9 +113,12 @@ public class RecycleOrderServiceImpl extends ServiceImpl