From 1d942ccbe6075497238364e1b211911a23f9cb96 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: Mon, 4 Mar 2024 17:07:22 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=B8=9A=E5=8A=A1=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=BC=80=E5=8F=91v4=E3=80=81=E5=9B=9E=E6=94=B6?= =?UTF-8?q?=E7=AB=99=E4=B8=9A=E5=8A=A1=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= =?UTF-8?q?v1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nxhs-common/pom.xml | 4 + .../cc/yunxi/common/domain/PageQuery.java | 4 +- .../java/cc/yunxi/common/genCodeMain.java | 2 +- .../cc/yunxi/common/utils/CommonUtil.java | 8 +- .../controller/RecycleOrderController.java | 33 +++-- .../controller/RecycleStationController.java | 75 ++++++++++ .../java/cc/yunxi/domain/dto/LocationDTO.java | 18 ++- .../cc/yunxi/domain/po/RecycleStation.java | 138 ++++++++++++++++++ .../yunxi/domain/query/RecycleOrderQuery.java | 2 +- .../domain/query/RecycleStationQuery.java | 26 ++++ .../recyclestation/RecycleStationRespVO.java | 100 +++++++++++++ .../cc/yunxi/mapper/RecycleStationMapper.java | 38 +++++ .../yunxi/service/IRecycleStationService.java | 35 +++++ .../cc/yunxi/service/impl/CommonService.java | 1 + .../service/impl/RecycleOrderServiceImpl.java | 3 + .../impl/RecycleStationServiceImpl.java | 52 +++++++ .../resources/mapper/RecycleStationMapper.xml | 23 +++ pom.xml | 7 + 18 files changed, 546 insertions(+), 23 deletions(-) create mode 100644 nxhs-service/src/main/java/cc/yunxi/controller/RecycleStationController.java create mode 100644 nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleStation.java create mode 100644 nxhs-service/src/main/java/cc/yunxi/domain/query/RecycleStationQuery.java create mode 100644 nxhs-service/src/main/java/cc/yunxi/domain/vo/recyclestation/RecycleStationRespVO.java create mode 100644 nxhs-service/src/main/java/cc/yunxi/mapper/RecycleStationMapper.java create mode 100644 nxhs-service/src/main/java/cc/yunxi/service/IRecycleStationService.java create mode 100644 nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleStationServiceImpl.java create mode 100644 nxhs-service/src/main/resources/mapper/RecycleStationMapper.xml diff --git a/nxhs-common/pom.xml b/nxhs-common/pom.xml index 1b307d2..84518ef 100644 --- a/nxhs-common/pom.xml +++ b/nxhs-common/pom.xml @@ -66,6 +66,10 @@ cn.hutool hutool-all + + org.gavaghan + geodesy + org.hibernate.validator diff --git a/nxhs-common/src/main/java/cc/yunxi/common/domain/PageQuery.java b/nxhs-common/src/main/java/cc/yunxi/common/domain/PageQuery.java index 65931c9..cb912c5 100644 --- a/nxhs-common/src/main/java/cc/yunxi/common/domain/PageQuery.java +++ b/nxhs-common/src/main/java/cc/yunxi/common/domain/PageQuery.java @@ -28,11 +28,11 @@ import java.util.stream.Collectors; public class PageQuery { public static final Integer DEFAULT_PAGE_SIZE = 20; public static final Integer DEFAULT_PAGE_NUM = 1; - @ApiModelProperty(value = "页码", required = true, example = "1") + @ApiModelProperty(value = "页码", required = false, example = "1") @Min(value = 1, message = "页码不能小于1") private Integer pageNo = DEFAULT_PAGE_NUM; - @ApiModelProperty(value = "每页个数", required = true, example = "10") + @ApiModelProperty(value = "每页个数", required = false, example = "10") @Min(value = 1, message = "每页查询数量不能小于1") private Integer pageSize = DEFAULT_PAGE_SIZE; diff --git a/nxhs-common/src/main/java/cc/yunxi/common/genCodeMain.java b/nxhs-common/src/main/java/cc/yunxi/common/genCodeMain.java index 1833963..ea6dab5 100644 --- a/nxhs-common/src/main/java/cc/yunxi/common/genCodeMain.java +++ b/nxhs-common/src/main/java/cc/yunxi/common/genCodeMain.java @@ -41,7 +41,7 @@ public class genCodeMain { }) //4、策略配置 .strategyConfig(builder -> { - builder.addInclude("nx_recycle_order") // 设置需要生成的数据表名 + builder.addInclude("nx_enterprise_recycle_station") // 设置需要生成的数据表名 .addTablePrefix("nx") // 设置过滤表前缀 //4.1、Mapper策略配置 .mapperBuilder() diff --git a/nxhs-common/src/main/java/cc/yunxi/common/utils/CommonUtil.java b/nxhs-common/src/main/java/cc/yunxi/common/utils/CommonUtil.java index 0ade85b..e627714 100644 --- a/nxhs-common/src/main/java/cc/yunxi/common/utils/CommonUtil.java +++ b/nxhs-common/src/main/java/cc/yunxi/common/utils/CommonUtil.java @@ -77,10 +77,10 @@ public class CommonUtil { public static void main(String[] args) { - String lon1 = "119.6438888888889"; - String lat1 = "37.966944444444444"; - String lon2 = "119.63916666666667"; - String lat2 = "37.9675"; + String lon1 = "121.233549"; + String lat1 = "31.035796"; + String lon2 = "121.404032"; + String lat2 = "31.163973"; System.out.println(getDistance(lon1, lat1, lon2, lat2)); } } 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 8b8a307..bb36ad6 100644 --- a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java +++ b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java @@ -6,6 +6,7 @@ import cc.yunxi.common.domain.CommonResult; import cc.yunxi.common.domain.PageDTO; import cc.yunxi.common.utils.BeanUtils; import cc.yunxi.common.utils.CommonUtil; +import cc.yunxi.domain.dto.LocationDTO; import cc.yunxi.domain.vo.recycleorder.RecycleOrderCreateVO; import cc.yunxi.domain.po.RecycleOrder; import cc.yunxi.domain.query.RecycleOrderQuery; @@ -47,19 +48,18 @@ public class RecycleOrderController { // 1.分页查询 Page result = recycleOrderService.queryOrderByPage(recycleOrderQuery); // 1.1 订单距离计算 - if (ObjectUtil.isNotEmpty(recycleOrderQuery.getLocation())) { - String longitude = recycleOrderQuery.getLocation().getLongitude(); - String latitude = recycleOrderQuery.getLocation().getLatitude(); - if (StrUtil.isNotEmpty(longitude) && StrUtil.isNotEmpty(latitude)) { - for(RecycleOrder recycleOrder : result.getRecords()) { - String distance = CommonUtil.getDistance(longitude, latitude, recycleOrder.getLongitude(), recycleOrder.getLatitude()); - recycleOrder.setDistance(distance); - } + LocationDTO locationDTO = recycleOrderQuery.getLocation(); + if (ObjectUtil.isNotEmpty(locationDTO) && locationDTO.isValid()) { + String longitude = locationDTO.getLongitude(); + String latitude = locationDTO.getLatitude(); + for(RecycleOrder recycleOrder : result.getRecords()) { + String distance = CommonUtil.getDistance(longitude, latitude, recycleOrder.getLongitude(), recycleOrder.getLatitude()); + recycleOrder.setDistance(distance); } } // 2.封装并返回 - PageDTO recyclerPageDTO = PageDTO.of(result, RecycleOrderRespVO.class); - return CommonResult.success(recyclerPageDTO); + PageDTO recyclerPageVO = PageDTO.of(result, RecycleOrderRespVO.class); + return CommonResult.success(recyclerPageVO); } @ApiOperation("创建回收订单") @@ -72,9 +72,16 @@ public class RecycleOrderController { @ApiOperation("回收订单详情") - @GetMapping("/info") - public CommonResult findOrder(@RequestParam("id") String id) { - RecycleOrder recycleOrder = recycleOrderService.getOrderById(id); + @PostMapping("/info") + public CommonResult findOrder(@RequestBody RecycleOrderQuery recycleOrderQuery) { + RecycleOrder recycleOrder = recycleOrderService.getOrderById(recycleOrderQuery.getId()); + LocationDTO locationDTO = recycleOrderQuery.getLocation(); + if (ObjectUtil.isNotEmpty(locationDTO) && locationDTO.isValid()) { + String longitude = locationDTO.getLongitude(); + String latitude = locationDTO.getLatitude(); + String distance = CommonUtil.getDistance(longitude, latitude, recycleOrder.getLongitude(), recycleOrder.getLatitude()); + recycleOrder.setDistance(distance); + } RecycleOrderRespVO recycleOrderRespVO = BeanUtils.copyBean(recycleOrder, RecycleOrderRespVO.class); return CommonResult.success(recycleOrderRespVO); } diff --git a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleStationController.java b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleStationController.java new file mode 100644 index 0000000..2c60639 --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleStationController.java @@ -0,0 +1,75 @@ +package cc.yunxi.controller; + + +import cc.yunxi.common.domain.CommonResult; +import cc.yunxi.common.domain.PageDTO; +import cc.yunxi.common.exception.BizIllegalException; +import cc.yunxi.common.utils.BeanUtils; +import cc.yunxi.domain.dto.LocationDTO; +import cc.yunxi.domain.po.RecycleOrder; +import cc.yunxi.domain.po.RecycleStation; +import cc.yunxi.domain.po.Recycler; +import cc.yunxi.domain.query.RecycleStationQuery; +import cc.yunxi.domain.query.RecyclerQuery; +import cc.yunxi.domain.vo.RecyclerVO; +import cc.yunxi.domain.vo.recycleorder.RecycleOrderRespVO; +import cc.yunxi.domain.vo.recyclestation.RecycleStationRespVO; +import cc.yunxi.service.IRecycleStationService; +import cc.yunxi.service.IRecyclerService; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + *

+ * 回收站信息 + *

+ * + * @author ccongli + * @since 2024-03-04 11:28:47 + */ +@Api(tags = "回收站点接口") +@RequiredArgsConstructor +@RestController +@RequestMapping("/recycle-station") +@Slf4j +public class RecycleStationController { + + private final IRecycleStationService recycleStationService; + + @ApiOperation("分页查询回收站") + @PostMapping("/page") + public CommonResult> queryStationByPage(@RequestBody RecycleStationQuery recycleStationQuery) { + LocationDTO locationDTO = recycleStationQuery.getLocation(); + log.info("client locationDTO: {}", locationDTO); + if (ObjectUtil.isEmpty(locationDTO) && !locationDTO.isValid()) { + throw new BizIllegalException("授权定位信息未授权 或 定位信息错误"); + } + Page result = recycleStationService.queryStationByPage(recycleStationQuery); + PageDTO recycleStationPageVO = PageDTO.of(result, RecycleStationRespVO.class); + return CommonResult.success(recycleStationPageVO); + } + + + @ApiOperation("回收站详情") + @GetMapping("/info") + public CommonResult findOrder(@RequestBody RecycleStationQuery recycleStationQuery) { + RecycleStation station = recycleStationService.getStationById(recycleStationQuery.getStationId()); + RecycleStationRespVO recycleStationRespVO = BeanUtils.copyBean(station, RecycleStationRespVO.class); + // 站点距离计算 + LocationDTO locationDTO = recycleStationQuery.getLocation(); + log.info("client locationDTO: {}", locationDTO); + if (ObjectUtil.isEmpty(locationDTO) && !locationDTO.isValid()) { + 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 3d33582..4a50ed9 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,13 +4,27 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.regex.Pattern; + @Data @ApiModel(description = "当前位置实体") public class LocationDTO { - @ApiModelProperty(value = "当前经度", required = true, example = "119.643888") + 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})$/"; + + + @ApiModelProperty(value = "当前经度", required = true, example = "121.404032") private String longitude; - @ApiModelProperty(value = "当前经度", required = true, example = "37.966944") + @ApiModelProperty(value = "当前经度", required = true, example = "31.163973") private String 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/po/RecycleStation.java b/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleStation.java new file mode 100644 index 0000000..1f31408 --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/domain/po/RecycleStation.java @@ -0,0 +1,138 @@ +package cc.yunxi.domain.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.time.LocalDateTime; +import java.util.Date; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 企业-回收站信息 + *

+ * + * @author ccongli + * @since 2024-03-04 11:28:47 + */ +@Data +@TableName("nx_enterprise_recycle_station") +@ApiModel(value = "RecycleStation", description = "回收站") +public class RecycleStation { + + @ApiModelProperty("自然主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty("企业id") + @TableField("enterprise_id") + private String enterpriseId; + + @ApiModelProperty("回收站编号") + @TableField("station_code") + private String stationCode; + + @ApiModelProperty("回收站名称") + @TableField("station_name") + private String stationName; + + @ApiModelProperty("回收站简称") + @TableField("short_name") + private String shortName; + + @ApiModelProperty("回收站照片") + @TableField("station_img") + private String stationImg; + +// @ApiModelProperty("经营模式:直营,加盟") +// @TableField("management_model") +// private String managementModel; + +// @ApiModelProperty("所在城市") +// @TableField("city") +// private String city; + +// @ApiModelProperty("回收类目id集合") +// @TableField("recycle_type_ids") +// private String recycleTypeIds; + + @ApiModelProperty("联系人") + @TableField("first_contact_person") + private String contactPerson; + +// @ApiModelProperty("手机号码") +// @TableField("first_contact_person_tel") +// private String contactPersonTel; + + @ApiModelProperty("回收电话") + @TableField("recycle_tel") + private String recycleTel; + + @ApiModelProperty("详细地址") + @TableField("address") + private String address; + + @ApiModelProperty("地址经度") + @TableField("longitude") + private String longitude; + + @ApiModelProperty("地址纬度") + @TableField("latitude") + private String latitude; + + @ApiModelProperty("回收站介绍") + @TableField("station_description") + private String stationDescription; + + @ApiModelProperty("回收站状态:0禁用,1启用") + @TableField("station_status") + private Integer stationStatus; + + @ApiModelProperty("备注") + @TableField("remark") + private String remark; + + @ApiModelProperty("营业日期") + @TableField("business_days") + private String businessDays; + +// @ApiModelProperty("营业时间") +// @TableField("business_hours") +// private String businessHours; + + @ApiModelProperty("营业时刻起") + @TableField("appointment_time_start") + private String appointmentTimeStart; + + @ApiModelProperty("营业时刻止") + @TableField("appointment_time_end") + private String appointmentTimeEnd; + +// @ApiModelProperty("预计上门时长(单位:分钟)") +// @TableField("predict_arrive_time") +// private String predictArriveTime; + + @ApiModelProperty("范围限制(单位:m)") + @TableField("accept_range") + private Integer acceptRange; + + @ApiModelProperty("服务范围内小区") + @TableField("accept_housing_estate") + private String acceptHousingEstate; + + @ApiModelProperty("创建时间") + @TableField("creator_time") + private LocalDateTime creatorTime; + + + @ApiModelProperty("站点距离(m)") + @TableField(exist = false) + private String distance; + +} diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/query/RecycleOrderQuery.java b/nxhs-service/src/main/java/cc/yunxi/domain/query/RecycleOrderQuery.java index 264047c..587a8f1 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/query/RecycleOrderQuery.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/query/RecycleOrderQuery.java @@ -20,7 +20,7 @@ public class RecycleOrderQuery extends PageQuery { private OrderStatusEnum status; - @ApiModelProperty(value = "回收员当前经度", required = false) + @ApiModelProperty(value = "回收员当前位置", required = false) private LocationDTO location; } diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/query/RecycleStationQuery.java b/nxhs-service/src/main/java/cc/yunxi/domain/query/RecycleStationQuery.java new file mode 100644 index 0000000..802e3ee --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/domain/query/RecycleStationQuery.java @@ -0,0 +1,26 @@ +package cc.yunxi.domain.query; + +import cc.yunxi.common.domain.PageQuery; +import cc.yunxi.domain.dto.LocationDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +@EqualsAndHashCode(callSuper = true) +@Data +@ApiModel(value = "RecycleStationQuery", description = "回收站查询条件") +public class RecycleStationQuery extends PageQuery { + + @ApiModelProperty(value = "回收站id", required = false, example = "519071906947663877") + private String stationId; + + @ApiModelProperty(value = "回收站名称", required = false, example = "回收站1") + private String stationName; + + + @ApiModelProperty(value = "散户当前位置", required = true) + private LocationDTO location; + +} diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/recyclestation/RecycleStationRespVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recyclestation/RecycleStationRespVO.java new file mode 100644 index 0000000..e8a6228 --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/recyclestation/RecycleStationRespVO.java @@ -0,0 +1,100 @@ +package cc.yunxi.domain.vo.recyclestation; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + *

+ * 回收站VO + *

+ * + * @author ccongli + * @since 2024-03-01 11:15:39 + */ +@ApiModel(description = "回收订单回收站") +@Data +public class RecycleStationRespVO { + + @ApiModelProperty("主键id") + private String id; + + @ApiModelProperty("企业id") + private String enterpriseId; + + @ApiModelProperty("回收站编号") + private String stationCode; + + @ApiModelProperty("回收站名称") + private String stationName; + + @ApiModelProperty("回收站简称") + private String shortName; + + @ApiModelProperty("回收站照片") + private String stationImg; + +// @ApiModelProperty("经营模式:直营,加盟") +// @TableField("management_model") +// private String managementModel; + +// @ApiModelProperty("所在城市") +// @TableField("city") +// private String city; + +// @ApiModelProperty("回收类目id集合") +// @TableField("recycle_type_ids") +// private String recycleTypeIds; + + @ApiModelProperty("联系人") + private String contactPerson; + +// @ApiModelProperty("手机号码") +// @TableField("first_contact_person_tel") +// private String contactPersonTel; + + @ApiModelProperty("回收电话") + private String recycleTel; + + @ApiModelProperty("详细地址") + private String address; + + @ApiModelProperty("地址经度") + private String longitude; + + @ApiModelProperty("地址纬度") + private String latitude; + + @ApiModelProperty("回收站介绍") + private String stationDescription; + + @ApiModelProperty("回收站状态:0禁用,1启用") + private Integer stationStatus; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("营业日") + private String businessDays; + + @ApiModelProperty("营业时刻起") + private String appointmentTimeStart; + + @ApiModelProperty("营业时刻止") + private String appointmentTimeEnd; + + + @ApiModelProperty("范围限制(单位:m)") + private Integer acceptRange; + + @ApiModelProperty("服务范围内小区") + private String acceptHousingEstate; + + @ApiModelProperty("创建时间") + private LocalDateTime creatorTime; + + @ApiModelProperty("站点距离(m)") + private String distance; +} diff --git a/nxhs-service/src/main/java/cc/yunxi/mapper/RecycleStationMapper.java b/nxhs-service/src/main/java/cc/yunxi/mapper/RecycleStationMapper.java new file mode 100644 index 0000000..929f3ad --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/mapper/RecycleStationMapper.java @@ -0,0 +1,38 @@ +package cc.yunxi.mapper; + +import cc.yunxi.domain.dto.LocationDTO; +import cc.yunxi.domain.po.RecycleStation; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.LinkedHashMap; +import java.util.List; + +/** + *

+ * 企业-回收站信息 Mapper 接口 + *

+ * + * @author ccongli + * @since 2024-03-04 11:28:47 + */ +@Mapper +public interface RecycleStationMapper extends BaseMapper { + + /** + * 复杂sql xml分页查询回收站 + * @param page + * @param queryWrapper + * @return + */ + Page queryStationByPage( + @Param("location") LocationDTO locationDTO, Page page, + @Param(Constants.WRAPPER) LambdaQueryWrapper queryWrapper); + +} diff --git a/nxhs-service/src/main/java/cc/yunxi/service/IRecycleStationService.java b/nxhs-service/src/main/java/cc/yunxi/service/IRecycleStationService.java new file mode 100644 index 0000000..4608a9e --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/service/IRecycleStationService.java @@ -0,0 +1,35 @@ +package cc.yunxi.service; + +import cc.yunxi.domain.po.RecycleOrder; +import cc.yunxi.domain.po.RecycleStation; +import cc.yunxi.domain.query.RecycleStationQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 企业-回收站信息 服务类 + *

+ * + * @author ccongli + * @since 2024-03-04 11:28:47 + */ +public interface IRecycleStationService extends IService { + + + /** + * 分页查询 + * @param recycleStationQuery + * @return Page + */ + Page queryStationByPage(RecycleStationQuery recycleStationQuery); + + + /** + * 订单详情 + * @param id + * @return RecycleOrder + */ + RecycleStation getStationById(String id); + +} diff --git a/nxhs-service/src/main/java/cc/yunxi/service/impl/CommonService.java b/nxhs-service/src/main/java/cc/yunxi/service/impl/CommonService.java index 631741a..acc65a2 100644 --- a/nxhs-service/src/main/java/cc/yunxi/service/impl/CommonService.java +++ b/nxhs-service/src/main/java/cc/yunxi/service/impl/CommonService.java @@ -89,6 +89,7 @@ public class CommonService implements ICommonService { recycler = recyclerService.registerRecycler(userDTO.getPhone(), userDTO.getOpenid()); } userDTO.setId(recycler.getId()); + userDTO.setStationId(recycler.getStationId()); userDTO.setUserType(UserTypeEnum.RECYCLER.getCode()); userDTO.setUsername(recycler.getStaffsName()); return userDTO; 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 9a2839c..068b4b1 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 @@ -76,6 +76,9 @@ public class RecycleOrderServiceImpl extends ServiceImpl + * 企业-回收站信息 服务实现类 + *

+ * + * @author ccongli + * @since 2024-03-04 11:28:47 + */ +@Service +public class RecycleStationServiceImpl extends ServiceImpl implements IRecycleStationService { + + @Resource + private RecycleStationMapper recycleStationMapper; + + + public Page queryStationByPage(RecycleStationQuery recycleStationQuery) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(StrUtil.isNotEmpty(recycleStationQuery.getStationName()), + RecycleStation::getStationName, recycleStationQuery.getStationName()); +// Page page = recycleStationQuery.buildPage(RecycleStation.class); + Page page = recycleStationQuery.buildPageByDefaultOrder(RecycleStation::getCreatorTime, false); + Page recycleStationPage = recycleStationMapper.queryStationByPage(recycleStationQuery.getLocation(), page, wrapper); + return recycleStationPage; + } + + + public RecycleStation getStationById(String id) { + if (StrUtil.isEmpty(id)) { + throw new BizIllegalException("请求参数缺失"); + } + return recycleStationMapper.selectById(id); + } + +} diff --git a/nxhs-service/src/main/resources/mapper/RecycleStationMapper.xml b/nxhs-service/src/main/resources/mapper/RecycleStationMapper.xml new file mode 100644 index 0000000..e339a0a --- /dev/null +++ b/nxhs-service/src/main/resources/mapper/RecycleStationMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/pom.xml b/pom.xml index 62b0479..cf89e54 100644 --- a/pom.xml +++ b/pom.xml @@ -23,6 +23,7 @@ 2.7.6 3.4.3 5.8.11 + 1.1.3 4.1.0 1.0.9.RELEASE @@ -61,6 +62,12 @@ spring-security-rsa ${security-rsa.version}
+ + + org.gavaghan + geodesy + ${geodesy.version} +