站点分页、详情

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.QueryWrapper;
import com.mybatisflex.core.update.UpdateChain;
import com.mybatisflex.core.util.StringUtil;
import jakarta.annotation.Resource;
import jakarta.validation.constraints.NotNull;
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.EbikeOperationRegionTableDef.EBIKE_OPERATION_REGION;
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} 添加失败
*/
@GetMapping("pageSite")
public JsonResult<?> pageSite(@Validated PageParam pageParam,Long operationRegionDId, String zoneId, String siteName) {
QueryWrapper queryWrapper = QueryWrapper.create()
.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);
public JsonResult<?> pageSite(@Validated PageParam pageParam,Long operationRegionId, String zoneId, String siteName) {
Page<ResEbikeSiteRegionPageDto> page = siteRegionService.pageSite(pageParam,operationRegionId, zoneId, siteName);
return JsonResult.success(page);
}

View File

@ -44,6 +44,8 @@ public class ResEbikeSiteRegionInfoDto {
*/
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;
import com.cdzy.common.model.PageParam;
import com.cdzy.ebikeoperate.model.dto.request.ReqBatchRegionDto;
import com.cdzy.ebikeoperate.model.dto.request.ReqSiteRegionDto;
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.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import java.util.List;
@ -47,4 +50,14 @@ public interface EbikeSiteRegionService extends IService<EbikeSiteRegion> {
* @return 详情
*/
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 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.EbikePointMapper;
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.ReqSiteRegionDto;
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.EbikePoint;
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.ebike.feign.clients.StaffFeignClient;
import com.ebike.feign.model.rsp.StaffFeign;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.util.StringUtil;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import org.locationtech.jts.geom.Coordinate;
@ -28,8 +33,10 @@ import java.util.ArrayList;
import java.util.List;
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.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.EbikeStaffRegionTableDef.EBIKE_STAFF_REGION;
@ -40,7 +47,7 @@ import static com.cdzy.ebikeoperate.model.pojo.table.EbikeStaffRegionTableDef.EB
* @since 2025-04-29
*/
@Service
public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMapper, EbikeSiteRegion> implements EbikeSiteRegionService{
public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMapper, EbikeSiteRegion> implements EbikeSiteRegionService {
@Resource
private StaffFeignClient staffFeignClient;
@ -69,7 +76,7 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
siteRegion.setOrgId(staffFeign.getOrgId());
List<ReqEbikePointDto> points = regionDto.getPoints();
this.mapper.insert(siteRegion);
savePoints(points,operationRegionId,siteRegion.getSiteRegionId());
savePoints(points, operationRegionId, siteRegion.getSiteRegionId());
}
@Override
@ -94,9 +101,9 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
@Override
public void delSite(ReqBatchRegionDto delRegionDto) {
List<EbikeSiteRegion> siteRegions = this.mapper.selectListByIds(delRegionDto.getIds());
siteRegions.forEach(region->{
delPoints(region.getOperationRegionId(),region.getSiteRegionId());
});
siteRegions.forEach(region ->
delPoints(region.getOperationRegionId(), region.getSiteRegionId())
);
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_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.REGION_ID.eq(regionId,regionId!=null));
return this.mapper.selectListByQuery(queryWrapper);
.where(EBIKE_STAFF_REGION.REGION_ID.eq(regionId, regionId != null));
return this.mapper.selectListByQuery(queryWrapper);
}
@Override
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) {
@ -166,13 +192,13 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
// redisUtil.addOperationArea(orgId, operateRegionId, vertices);
}
StaffFeign getStaff(){
StaffFeign getStaff() {
String tokenValue = StpUtil.getTokenValue();
JsonResult<StaffFeign> jsonResult = staffFeignClient.getInfoByToken(tokenValue);
StaffFeign staffFeign = jsonResult.getData();
if (jsonResult.getCode() != 200 || staffFeign == null) {
throw new RuntimeException("获取当前登陆用户信息失败");
}
return jsonResult.getData();
return jsonResult.getData();
}
}