This commit is contained in:
attiya 2025-05-07 15:36:58 +08:00
parent 6bab79843e
commit 34883e6258
6 changed files with 125 additions and 16 deletions

View File

@ -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();
}

View File

@ -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> {
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
/**
* 批量删除站点

View File

@ -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,6 +68,9 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
@Resource
private EbikeOperationRegionMapper operationRegionMapper;
@Resource
private EbikeSiteImagesMapper siteImagesMapper;
@Resource
private MinioUtil minioUtil;
@ -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,6 +149,7 @@ public class EbikeSiteRegionServiceImpl extends ServiceImpl<EbikeSiteRegionMappe
if (points != null && !points.isEmpty()) {
updatePoints(points, operationRegionId, regionDto.getSiteRegionId());
}
updateImages(files,regionDto.getSiteRegionId());
}
@Override