站点分页、详情

This commit is contained in:
attiya 2025-05-07 11:14:06 +08:00
parent 3e1c4eec0f
commit 75ee58b11a
5 changed files with 155 additions and 22 deletions

View File

@ -25,7 +25,6 @@ import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryMethods; import com.mybatisflex.core.query.QueryMethods;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.update.UpdateChain; import com.mybatisflex.core.update.UpdateChain;
import com.mybatisflex.core.util.StringUtil;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -37,7 +36,6 @@ import java.util.Objects;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeAdministrationZoneTableDef.EBIKE_ADMINISTRATION_ZONE; import static com.cdzy.ebikeoperate.model.pojo.table.EbikeAdministrationZoneTableDef.EBIKE_ADMINISTRATION_ZONE;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeOperationRegionTableDef.EBIKE_OPERATION_REGION; import static com.cdzy.ebikeoperate.model.pojo.table.EbikeOperationRegionTableDef.EBIKE_OPERATION_REGION;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeRegionLevelTableDef.EBIKE_REGION_LEVEL; import static com.cdzy.ebikeoperate.model.pojo.table.EbikeRegionLevelTableDef.EBIKE_REGION_LEVEL;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSiteRegionTableDef.EBIKE_SITE_REGION;
/** /**
* 区域控制层 * 区域控制层
@ -197,16 +195,8 @@ public class EbikeRegionController {
* @return {@code 200} 添加成功{@code 500} 添加失败 * @return {@code 200} 添加成功{@code 500} 添加失败
*/ */
@GetMapping("pageSite") @GetMapping("pageSite")
public JsonResult<?> pageSite(@Validated PageParam pageParam,Long operationRegionDId, String zoneId, String siteName) { public JsonResult<?> pageSite(@Validated PageParam pageParam,Long operationRegionId, String zoneId, String siteName) {
QueryWrapper queryWrapper = QueryWrapper.create() Page<ResEbikeSiteRegionPageDto> page = siteRegionService.pageSite(pageParam,operationRegionId, zoneId, siteName);
.leftJoin(EBIKE_OPERATION_REGION).on(EBIKE_OPERATION_REGION.OPERATION_REGION_ID.eq(EBIKE_SITE_REGION.OPERATION_REGION_ID))
.leftJoin(EBIKE_ADMINISTRATION_ZONE).on(EBIKE_ADMINISTRATION_ZONE.ID.eq(EBIKE_OPERATION_REGION.ZONE_ID))
// .leftJoin(EBIKE_REGION_LEVEL).on(EBIKE_REGION_LEVEL.LEVEL_VALUE.eq(EBIKE_SITE_REGION.SITE_LEVEL))
// .where(EBIKE_REGION_LEVEL.LEVEL_TYPE.eq(RegionLevelType.SITE))
.where(EBIKE_ADMINISTRATION_ZONE.ID.eq(zoneId,StringUtil.hasText(zoneId)))
.where(EBIKE_SITE_REGION.SITE_NAME.like(siteName, StringUtil.hasText(siteName)))
.where(EBIKE_OPERATION_REGION.OPERATION_REGION_ID.eq(operationRegionDId, Objects.nonNull(operationRegionDId)));
Page<EbikeSiteRegion> page = siteRegionService.page(pageParam.getPage(), queryWrapper);
return JsonResult.success(page); return JsonResult.success(page);
} }

View File

@ -44,6 +44,8 @@ public class ResEbikeSiteRegionInfoDto {
*/ */
private Integer siteLevel; private Integer siteLevel;
private String levelName;
/** /**
* 经度 * 经度
*/ */

View File

@ -0,0 +1,102 @@
package com.cdzy.ebikeoperate.model.dto.response;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @author attiya
* @since 2025-05-07
*/
@Data
public class ResEbikeSiteRegionPageDto {
private Long siteRegionId;
/**
* 运营区ID
*/
private Long operationRegionId;
/**
* 站点名称
*/
private String siteName;
/**
* 站点地址
*/
private String siteAdress;
/**
* 站点类型
*/
private Integer siteType;
/**
* 站点级别
*/
private Integer siteLevel;
private String levelName;
/**
* 经度
*/
private Double siteLng;
/**
* 纬度
*/
private Double siteLat;
/**
* 1圆形 2多边形
*/
private Integer shapeType;
/**
* 半径
*/
private Float radius;
/**
* 可停数量
*/
private Integer allowedParkingNum;
/**
* 最大可停
*/
private Integer allowedParkingMax;
/**
* 组织id运营商id
*/
private Long orgId;
/**
* 创建员工id
*/
private Long createdStaff;
/**
* 创建时间
*/
private LocalDateTime createdTime;
/**
* 修改时间
*/
private LocalDateTime updateTime;
/**
* 修改人
*/
private Long updateStaff;
/**
* 逻辑删除
*/
private Integer isDelete;
}

View File

@ -1,9 +1,12 @@
package com.cdzy.ebikeoperate.service; package com.cdzy.ebikeoperate.service;
import com.cdzy.common.model.PageParam;
import com.cdzy.ebikeoperate.model.dto.request.ReqBatchRegionDto; import com.cdzy.ebikeoperate.model.dto.request.ReqBatchRegionDto;
import com.cdzy.ebikeoperate.model.dto.request.ReqSiteRegionDto; import com.cdzy.ebikeoperate.model.dto.request.ReqSiteRegionDto;
import com.cdzy.ebikeoperate.model.dto.response.ResEbikeSiteRegionInfoDto; import com.cdzy.ebikeoperate.model.dto.response.ResEbikeSiteRegionInfoDto;
import com.cdzy.ebikeoperate.model.dto.response.ResEbikeSiteRegionPageDto;
import com.cdzy.ebikeoperate.model.pojo.EbikeSiteRegion; import com.cdzy.ebikeoperate.model.pojo.EbikeSiteRegion;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService; import com.mybatisflex.core.service.IService;
import java.util.List; import java.util.List;
@ -47,4 +50,14 @@ public interface EbikeSiteRegionService extends IService<EbikeSiteRegion> {
* @return 详情 * @return 详情
*/ */
ResEbikeSiteRegionInfoDto siteInfo(Long siteRegionId); ResEbikeSiteRegionInfoDto siteInfo(Long siteRegionId);
/**
* 分页查询站点
* @param pageParam 分页参数
* @param operationRegionId 运营区id
* @param zoneId 行政区id
* @param siteName 站点名称
* @return 分页列表
*/
Page<ResEbikeSiteRegionPageDto> pageSite(PageParam pageParam, Long operationRegionId, String zoneId, String siteName);
} }

View File

@ -2,6 +2,8 @@ package com.cdzy.ebikeoperate.service.impl;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import com.cdzy.common.model.JsonResult; import com.cdzy.common.model.JsonResult;
import com.cdzy.common.model.PageParam;
import com.cdzy.ebikeoperate.enums.RegionLevelType;
import com.cdzy.ebikeoperate.mapper.EbikeOperationRegionMapper; import com.cdzy.ebikeoperate.mapper.EbikeOperationRegionMapper;
import com.cdzy.ebikeoperate.mapper.EbikePointMapper; import com.cdzy.ebikeoperate.mapper.EbikePointMapper;
import com.cdzy.ebikeoperate.mapper.EbikeSiteRegionMapper; import com.cdzy.ebikeoperate.mapper.EbikeSiteRegionMapper;
@ -9,6 +11,7 @@ import com.cdzy.ebikeoperate.model.dto.request.ReqBatchRegionDto;
import com.cdzy.ebikeoperate.model.dto.request.ReqEbikePointDto; import com.cdzy.ebikeoperate.model.dto.request.ReqEbikePointDto;
import com.cdzy.ebikeoperate.model.dto.request.ReqSiteRegionDto; import com.cdzy.ebikeoperate.model.dto.request.ReqSiteRegionDto;
import com.cdzy.ebikeoperate.model.dto.response.ResEbikeSiteRegionInfoDto; import com.cdzy.ebikeoperate.model.dto.response.ResEbikeSiteRegionInfoDto;
import com.cdzy.ebikeoperate.model.dto.response.ResEbikeSiteRegionPageDto;
import com.cdzy.ebikeoperate.model.pojo.EbikeOperationRegion; import com.cdzy.ebikeoperate.model.pojo.EbikeOperationRegion;
import com.cdzy.ebikeoperate.model.pojo.EbikePoint; import com.cdzy.ebikeoperate.model.pojo.EbikePoint;
import com.cdzy.ebikeoperate.model.pojo.EbikeSiteRegion; import com.cdzy.ebikeoperate.model.pojo.EbikeSiteRegion;
@ -16,7 +19,9 @@ import com.cdzy.ebikeoperate.service.EbikeSiteRegionService;
import com.cdzy.ebikeoperate.utils.RedisUtil; import com.cdzy.ebikeoperate.utils.RedisUtil;
import com.ebike.feign.clients.StaffFeignClient; import com.ebike.feign.clients.StaffFeignClient;
import com.ebike.feign.model.rsp.StaffFeign; import com.ebike.feign.model.rsp.StaffFeign;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.util.StringUtil;
import com.mybatisflex.spring.service.impl.ServiceImpl; import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.Coordinate;
@ -28,8 +33,10 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeAdministrationZoneTableDef.EBIKE_ADMINISTRATION_ZONE;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeOperationRegionTableDef.EBIKE_OPERATION_REGION; import static com.cdzy.ebikeoperate.model.pojo.table.EbikeOperationRegionTableDef.EBIKE_OPERATION_REGION;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikePointTableDef.EBIKE_POINT; import static com.cdzy.ebikeoperate.model.pojo.table.EbikePointTableDef.EBIKE_POINT;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeRegionLevelTableDef.EBIKE_REGION_LEVEL;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSiteRegionTableDef.EBIKE_SITE_REGION; import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSiteRegionTableDef.EBIKE_SITE_REGION;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeStaffRegionTableDef.EBIKE_STAFF_REGION; import static com.cdzy.ebikeoperate.model.pojo.table.EbikeStaffRegionTableDef.EBIKE_STAFF_REGION;
@ -40,7 +47,7 @@ import static com.cdzy.ebikeoperate.model.pojo.table.EbikeStaffRegionTableDef.EB
* @since 2025-04-29 * @since 2025-04-29
*/ */
@Service @Service
public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMapper, EbikeSiteRegion> implements EbikeSiteRegionService{ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMapper, EbikeSiteRegion> implements EbikeSiteRegionService {
@Resource @Resource
private StaffFeignClient staffFeignClient; private StaffFeignClient staffFeignClient;
@ -69,7 +76,7 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
siteRegion.setOrgId(staffFeign.getOrgId()); siteRegion.setOrgId(staffFeign.getOrgId());
List<ReqEbikePointDto> points = regionDto.getPoints(); List<ReqEbikePointDto> points = regionDto.getPoints();
this.mapper.insert(siteRegion); this.mapper.insert(siteRegion);
savePoints(points,operationRegionId,siteRegion.getSiteRegionId()); savePoints(points, operationRegionId, siteRegion.getSiteRegionId());
} }
@Override @Override
@ -94,9 +101,9 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
@Override @Override
public void delSite(ReqBatchRegionDto delRegionDto) { public void delSite(ReqBatchRegionDto delRegionDto) {
List<EbikeSiteRegion> siteRegions = this.mapper.selectListByIds(delRegionDto.getIds()); List<EbikeSiteRegion> siteRegions = this.mapper.selectListByIds(delRegionDto.getIds());
siteRegions.forEach(region->{ siteRegions.forEach(region ->
delPoints(region.getOperationRegionId(),region.getSiteRegionId()); delPoints(region.getOperationRegionId(), region.getSiteRegionId())
}); );
this.mapper.deleteBatchByIds(delRegionDto.getIds()); this.mapper.deleteBatchByIds(delRegionDto.getIds());
} }
@ -107,13 +114,32 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
.leftJoin(EBIKE_OPERATION_REGION).on(EBIKE_SITE_REGION.OPERATION_REGION_ID.eq(EBIKE_OPERATION_REGION.OPERATION_REGION_ID)) .leftJoin(EBIKE_OPERATION_REGION).on(EBIKE_SITE_REGION.OPERATION_REGION_ID.eq(EBIKE_OPERATION_REGION.OPERATION_REGION_ID))
.leftJoin(EBIKE_STAFF_REGION).on(EBIKE_STAFF_REGION.REGION_ID.eq(EBIKE_OPERATION_REGION.OPERATION_REGION_ID)) .leftJoin(EBIKE_STAFF_REGION).on(EBIKE_STAFF_REGION.REGION_ID.eq(EBIKE_OPERATION_REGION.OPERATION_REGION_ID))
.where(EBIKE_STAFF_REGION.STAFF_ID.eq(staffFeign.getStaffId())) .where(EBIKE_STAFF_REGION.STAFF_ID.eq(staffFeign.getStaffId()))
.where(EBIKE_STAFF_REGION.REGION_ID.eq(regionId,regionId!=null)); .where(EBIKE_STAFF_REGION.REGION_ID.eq(regionId, regionId != null));
return this.mapper.selectListByQuery(queryWrapper); return this.mapper.selectListByQuery(queryWrapper);
} }
@Override @Override
public ResEbikeSiteRegionInfoDto siteInfo(Long siteRegionId) { public ResEbikeSiteRegionInfoDto siteInfo(Long siteRegionId) {
return this.mapper.selectOneWithRelationsByIdAs(siteRegionId,ResEbikeSiteRegionInfoDto.class); QueryWrapper queryWrapper = QueryWrapper.create()
.select(EBIKE_SITE_REGION.ALL_COLUMNS, EBIKE_REGION_LEVEL.LEVEL_NAME)
.leftJoin(EBIKE_REGION_LEVEL).on(EBIKE_REGION_LEVEL.LEVEL_VALUE.eq(EBIKE_SITE_REGION.SITE_LEVEL))
.where(EBIKE_REGION_LEVEL.LEVEL_TYPE.eq(RegionLevelType.SITE))
.where(EBIKE_SITE_REGION.SITE_REGION_ID.eq(siteRegionId));
return this.mapper.selectOneWithRelationsByQueryAs(queryWrapper, ResEbikeSiteRegionInfoDto.class);
}
@Override
public Page<ResEbikeSiteRegionPageDto> pageSite(PageParam pageParam, Long operationRegionId, String zoneId, String siteName) {
QueryWrapper queryWrapper = QueryWrapper.create()
.select(EBIKE_SITE_REGION.ALL_COLUMNS, EBIKE_REGION_LEVEL.LEVEL_NAME)
.leftJoin(EBIKE_OPERATION_REGION).on(EBIKE_OPERATION_REGION.OPERATION_REGION_ID.eq(EBIKE_SITE_REGION.OPERATION_REGION_ID))
.leftJoin(EBIKE_ADMINISTRATION_ZONE).on(EBIKE_ADMINISTRATION_ZONE.ID.eq(EBIKE_OPERATION_REGION.ZONE_ID))
.leftJoin(EBIKE_REGION_LEVEL).on(EBIKE_REGION_LEVEL.LEVEL_VALUE.eq(EBIKE_SITE_REGION.SITE_LEVEL))
.where(EBIKE_REGION_LEVEL.LEVEL_TYPE.eq(RegionLevelType.SITE))
.where(EBIKE_ADMINISTRATION_ZONE.ID.eq(zoneId, StringUtil.hasText(zoneId)))
.where(EBIKE_SITE_REGION.SITE_NAME.like(siteName, StringUtil.hasText(siteName)))
.where(EBIKE_OPERATION_REGION.OPERATION_REGION_ID.eq(operationRegionId, Objects.nonNull(operationRegionId)));
return this.mapper.paginateAs(pageParam.getPage(), queryWrapper, ResEbikeSiteRegionPageDto.class);
} }
void savePoints(List<ReqEbikePointDto> points, Long areaId, Long siteRegionId) { void savePoints(List<ReqEbikePointDto> points, Long areaId, Long siteRegionId) {
@ -166,13 +192,13 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
// redisUtil.addOperationArea(orgId, operateRegionId, vertices); // redisUtil.addOperationArea(orgId, operateRegionId, vertices);
} }
StaffFeign getStaff(){ StaffFeign getStaff() {
String tokenValue = StpUtil.getTokenValue(); String tokenValue = StpUtil.getTokenValue();
JsonResult<StaffFeign> jsonResult = staffFeignClient.getInfoByToken(tokenValue); JsonResult<StaffFeign> jsonResult = staffFeignClient.getInfoByToken(tokenValue);
StaffFeign staffFeign = jsonResult.getData(); StaffFeign staffFeign = jsonResult.getData();
if (jsonResult.getCode() != 200 || staffFeign == null) { if (jsonResult.getCode() != 200 || staffFeign == null) {
throw new RuntimeException("获取当前登陆用户信息失败"); throw new RuntimeException("获取当前登陆用户信息失败");
} }
return jsonResult.getData(); return jsonResult.getData();
} }
} }