站点
This commit is contained in:
parent
6bab79843e
commit
34883e6258
@ -18,7 +18,6 @@ import com.cdzy.ebikeoperate.model.pojo.*;
|
||||
import com.cdzy.ebikeoperate.service.EbikeAdministrationZoneService;
|
||||
import com.cdzy.ebikeoperate.service.EbikeOperationRegionService;
|
||||
import com.cdzy.ebikeoperate.service.EbikeSiteRegionService;
|
||||
import com.cdzy.ebikeoperate.utils.MinioUtil;
|
||||
import com.ebike.feign.clients.StaffFeignClient;
|
||||
import com.ebike.feign.model.rsp.RspBikeInfo;
|
||||
import com.ebike.feign.model.rsp.StaffFeign;
|
||||
@ -72,9 +71,6 @@ public class EbikeRegionController {
|
||||
@Resource
|
||||
private EbikeRegionLevelMapper levelMapper;
|
||||
|
||||
@Resource
|
||||
private MinioUtil minioUtil;
|
||||
|
||||
/**
|
||||
* 添加运营区。
|
||||
*
|
||||
@ -223,8 +219,8 @@ public class EbikeRegionController {
|
||||
* @return {@code 200} 添加成功,{@code 500} 添加失败
|
||||
*/
|
||||
@PostMapping("updateSite")
|
||||
public JsonResult<?> updateSite(@RequestBody @Validated ReqSiteRegionDto regionDto) {
|
||||
siteRegionService.updateSiteRegion(regionDto);
|
||||
public JsonResult<?> updateSite(@RequestBody @Validated ReqSiteRegionDto regionDto,List<MultipartFile> files) throws Exception {
|
||||
siteRegionService.updateSiteRegion(regionDto,files);
|
||||
return JsonResult.success();
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
package com.cdzy.ebikeoperate.mapper;
|
||||
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeSiteImages;
|
||||
|
||||
/**
|
||||
* 映射层。
|
||||
*
|
||||
* @author attiya
|
||||
* @since 2025-05-07
|
||||
*/
|
||||
public interface EbikeSiteImagesMapper extends BaseMapper<EbikeSiteImages> {
|
||||
|
||||
}
|
||||
@ -1,6 +1,7 @@
|
||||
package com.cdzy.ebikeoperate.model.dto.response;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikePoint;
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeSiteImages;
|
||||
import com.mybatisflex.annotation.RelationOneToMany;
|
||||
import lombok.Data;
|
||||
|
||||
@ -107,4 +108,7 @@ public class ResEbikeSiteRegionInfoDto {
|
||||
@RelationOneToMany(selfField = "siteRegionId",targetField = "regionId")
|
||||
private List<EbikePoint> points;
|
||||
|
||||
@RelationOneToMany(selfField = "siteRegionId",targetField = "siteRegionId")
|
||||
private List<EbikeSiteImages> images;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,51 @@
|
||||
package com.cdzy.ebikeoperate.model.pojo;
|
||||
|
||||
import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
import java.io.Serializable;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 实体类。
|
||||
*
|
||||
* @author attiya
|
||||
* @since 2025-05-07
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table("ebike_site_images")
|
||||
public class EbikeSiteImages implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 图片ID
|
||||
*/
|
||||
@Id
|
||||
private Long imageId;
|
||||
|
||||
/**
|
||||
* 站点ID
|
||||
*/
|
||||
private Long siteRegionId;
|
||||
|
||||
/**
|
||||
* 桶名(冗余存储
|
||||
*/
|
||||
private String imageBucket;
|
||||
|
||||
/**
|
||||
* 图片名称
|
||||
*/
|
||||
private String imageName;
|
||||
|
||||
}
|
||||
@ -30,7 +30,7 @@ public interface EbikeSiteRegionService extends IService<EbikeSiteRegion> {
|
||||
* 修改站点
|
||||
* @param regionDto 站点信息
|
||||
*/
|
||||
void updateSiteRegion(ReqSiteRegionDto regionDto);
|
||||
void updateSiteRegion(ReqSiteRegionDto regionDto,List<MultipartFile> files) throws Exception;
|
||||
|
||||
/**
|
||||
* 批量删除站点
|
||||
|
||||
@ -6,6 +6,7 @@ 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.EbikeSiteImagesMapper;
|
||||
import com.cdzy.ebikeoperate.mapper.EbikeSiteRegionMapper;
|
||||
import com.cdzy.ebikeoperate.model.dto.request.ReqBatchRegionDto;
|
||||
import com.cdzy.ebikeoperate.model.dto.request.ReqEbikePointDto;
|
||||
@ -14,6 +15,7 @@ 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.EbikeSiteImages;
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeSiteRegion;
|
||||
import com.cdzy.ebikeoperate.service.EbikeSiteRegionService;
|
||||
import com.cdzy.ebikeoperate.utils.MinioUtil;
|
||||
@ -35,11 +37,13 @@ import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
|
||||
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.EbikeSiteImagesTableDef.EBIKE_SITE_IMAGES;
|
||||
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSiteRegionTableDef.EBIKE_SITE_REGION;
|
||||
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeStaffRegionTableDef.EBIKE_STAFF_REGION;
|
||||
|
||||
@ -64,12 +68,15 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
|
||||
@Resource
|
||||
private EbikeOperationRegionMapper operationRegionMapper;
|
||||
|
||||
@Resource
|
||||
private EbikeSiteImagesMapper siteImagesMapper;
|
||||
|
||||
@Resource
|
||||
private MinioUtil minioUtil;
|
||||
|
||||
|
||||
@Override
|
||||
public void createSiteRegion(ReqSiteRegionDto regionDto,List<MultipartFile> files) throws Exception {
|
||||
public void createSiteRegion(ReqSiteRegionDto regionDto, List<MultipartFile> files) throws Exception {
|
||||
Long operationRegionId = regionDto.getOperationRegionId();
|
||||
EbikeOperationRegion operationRegion = operationRegionMapper.selectOneById(operationRegionId);
|
||||
if (Objects.isNull(operationRegion)) {
|
||||
@ -81,16 +88,52 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
|
||||
siteRegion.setCreatedStaff(staffFeign.getStaffId());
|
||||
siteRegion.setOrgId(staffFeign.getOrgId());
|
||||
List<ReqEbikePointDto> points = regionDto.getPoints();
|
||||
for (MultipartFile file : files) {
|
||||
InputStream inputStream = file.getInputStream();
|
||||
minioUtil.uploadFile(inputStream,MinioUtil.BUCKET_SIT,"");
|
||||
}
|
||||
this.mapper.insert(siteRegion);
|
||||
saveImages(files, siteRegion.getSiteRegionId());
|
||||
savePoints(points, operationRegionId, siteRegion.getSiteRegionId());
|
||||
}
|
||||
|
||||
private void saveImages(List<MultipartFile> files, Long siteRegionId) throws Exception {
|
||||
List<EbikeSiteImages> images = new ArrayList<>();
|
||||
for (MultipartFile file : files) {
|
||||
EbikeSiteImages image = new EbikeSiteImages();
|
||||
InputStream inputStream = file.getInputStream();
|
||||
String fileName = file.getOriginalFilename();
|
||||
String fileUniqueKey = UUID.randomUUID() + fileName.substring(fileName.lastIndexOf("."));
|
||||
image.setImageName(fileUniqueKey);
|
||||
image.setImageBucket(MinioUtil.BUCKET_SIT);
|
||||
image.setSiteRegionId(siteRegionId);
|
||||
images.add(image);
|
||||
minioUtil.uploadFile(inputStream, MinioUtil.BUCKET_SIT, fileUniqueKey);
|
||||
}
|
||||
siteImagesMapper.insertBatch(images);
|
||||
}
|
||||
|
||||
private void updateImages(List<MultipartFile> files, Long siteRegionId) throws Exception {
|
||||
List<EbikeSiteImages> images = new ArrayList<>();
|
||||
for (MultipartFile file : files) {
|
||||
EbikeSiteImages image = new EbikeSiteImages();
|
||||
InputStream inputStream = file.getInputStream();
|
||||
String fileName = file.getOriginalFilename();
|
||||
String fileUniqueKey = UUID.randomUUID() + fileName.substring(fileName.lastIndexOf("."));
|
||||
image.setImageName(fileUniqueKey);
|
||||
image.setImageBucket(MinioUtil.BUCKET_SIT);
|
||||
image.setSiteRegionId(siteRegionId);
|
||||
images.add(image);
|
||||
minioUtil.uploadFile(inputStream, MinioUtil.BUCKET_SIT, fileUniqueKey);
|
||||
}
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.where(EBIKE_SITE_IMAGES.SITE_REGION_ID.eq(siteRegionId));
|
||||
List<EbikeSiteImages> list = siteImagesMapper.selectListByQuery(queryWrapper);
|
||||
for (EbikeSiteImages image : list) {
|
||||
minioUtil.deleteObject(image.getImageBucket(), image.getImageName());
|
||||
}
|
||||
siteImagesMapper.selectListByQuery(queryWrapper);
|
||||
siteImagesMapper.insertBatch(images);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSiteRegion(ReqSiteRegionDto regionDto) {
|
||||
public void updateSiteRegion(ReqSiteRegionDto regionDto, List<MultipartFile> files) throws Exception {
|
||||
Long operationRegionId = regionDto.getOperationRegionId();
|
||||
EbikeOperationRegion operationRegion = operationRegionMapper.selectOneById(operationRegionId);
|
||||
if (Objects.isNull(operationRegion)) {
|
||||
@ -106,13 +149,14 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
|
||||
if (points != null && !points.isEmpty()) {
|
||||
updatePoints(points, operationRegionId, regionDto.getSiteRegionId());
|
||||
}
|
||||
updateImages(files,regionDto.getSiteRegionId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delSite(ReqBatchRegionDto delRegionDto) {
|
||||
List<EbikeSiteRegion> siteRegions = this.mapper.selectListByIds(delRegionDto.getIds());
|
||||
siteRegions.forEach(region ->
|
||||
delPoints(region.getOperationRegionId(), region.getSiteRegionId())
|
||||
delPoints(region.getOperationRegionId(), region.getSiteRegionId())
|
||||
);
|
||||
this.mapper.deleteBatchByIds(delRegionDto.getIds());
|
||||
}
|
||||
@ -125,7 +169,7 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
|
||||
.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.selectListWithRelationsByQueryAs(queryWrapper,ResEbikeSiteRegionPageDto.class);
|
||||
return this.mapper.selectListWithRelationsByQueryAs(queryWrapper, ResEbikeSiteRegionPageDto.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -195,7 +239,7 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
|
||||
pointMapper.insertBatch(list);
|
||||
}
|
||||
|
||||
void delPoints(Long areaId, Long siteRegionId) {
|
||||
void delPoints(Long areaId, Long siteRegionId) {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.where(EBIKE_POINT.REGION_ID.eq(siteRegionId));
|
||||
pointMapper.deleteByQuery(queryWrapper);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user