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}
+