farm模块-图片转换

This commit is contained in:
顾君禹
2025-08-21 15:09:27 +08:00
parent 19ff6f1a26
commit 337fc33da9
6 changed files with 67 additions and 15 deletions

View File

@@ -21,7 +21,7 @@ public class DisasterDataPageReqVO {
private String name; private String name;
@Schema(description = "灾害类型2=病害,1=虫害,3=草害") @Schema(description = "灾害类型2=病害,1=虫害,3=草害")
private Integer category; private String category;
@Schema(description = "灾害类型 1:普通; 2:气象灾害") @Schema(description = "灾害类型 1:普通; 2:气象灾害")
private Integer type; private Integer type;

View File

@@ -2,8 +2,8 @@ package cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.List;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import cn.idev.excel.annotation.*; import cn.idev.excel.annotation.*;
@@ -22,7 +22,7 @@ public class DisasterDataRespVO {
@Schema(description = "灾害类型2=病害,1=虫害,3=草害") @Schema(description = "灾害类型2=病害,1=虫害,3=草害")
@ExcelProperty("灾害类型2=病害,1=虫害,3=草害") @ExcelProperty("灾害类型2=病害,1=虫害,3=草害")
private Integer category; private String category;
@Schema(description = "灾害类型 1:普通; 2:气象灾害") @Schema(description = "灾害类型 1:普通; 2:气象灾害")
private Integer type; private Integer type;
@@ -36,6 +36,9 @@ public class DisasterDataRespVO {
@Schema(description = "图片地址") @Schema(description = "图片地址")
private String imgUrl; private String imgUrl;
@Schema(description = "图片列表")
private List<String> imageList;
@Schema(description = "发生次数", example = "17530") @Schema(description = "发生次数", example = "17530")
@ExcelProperty("发生次数") @ExcelProperty("发生次数")
private Integer disasterCount; private Integer disasterCount;

View File

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 灾害数据新增/修改 Request VO") @Schema(description = "管理后台 - 灾害数据新增/修改 Request VO")
@Data @Data
@@ -12,7 +13,7 @@ public class DisasterDataSaveReqVO {
@Schema(description = "灾害名称", example = "赵六") @Schema(description = "灾害名称", example = "赵六")
private String name; private String name;
@Schema(description = "灾害类型1=环境,2=病害,3=虫害,4=草害") @Schema(description = "灾害类型1=环境,2=病害,3=虫害,4=草害")
private Integer category; private String category;
@Schema(description = "灾害类型 1:普通; 2:气象灾害") @Schema(description = "灾害类型 1:普通; 2:气象灾害")
private Integer type; private Integer type;
@Schema(description = "灾害描述") @Schema(description = "灾害描述")
@@ -20,8 +21,12 @@ public class DisasterDataSaveReqVO {
@Schema(description = "防治建议") @Schema(description = "防治建议")
private String treatmentSuggestion; private String treatmentSuggestion;
@Schema(description = "图片地址") @Schema(description = "图片地址")
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = cn.iocoder.yudao.module.farm.framework.json.StringOrArrayToStringDeserializer.class)
private String imgUrl; private String imgUrl;
@Schema(description = "图片列表")
private List<String> imageList;
@Schema(description = "发生次数", example = "17530") @Schema(description = "发生次数", example = "17530")
private Integer disasterCount; private Integer disasterCount;

View File

@@ -1,13 +1,13 @@
package cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata; package cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata;
import cn.idev.excel.annotation.ExcelProperty; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import io.swagger.v3.oas.annotations.media.Schema; import cn.iocoder.yudao.module.farm.framework.util.ImageCollectionUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.*; import lombok.*;
import java.time.LocalDateTime; import java.util.List;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/** /**
* 灾害数据 DO * 灾害数据 DO
@@ -35,7 +35,7 @@ public class DisasterDataDO extends BaseDO {
/** /**
* 灾害类型 2=病害,1=虫害,3=草害 * 灾害类型 2=病害,1=虫害,3=草害
*/ */
private Integer category; private String category;
/** /**
* 灾害类别 1:普通; 2:气象灾害 * 灾害类别 1:普通; 2:气象灾害
*/ */
@@ -52,11 +52,18 @@ public class DisasterDataDO extends BaseDO {
* 图片地址 * 图片地址
*/ */
private String imgUrl; private String imgUrl;
/**
* 图片集合(业务层使用)
*/
@TableField(exist = false)
private List<String> imageList;
/** /**
* 发生次数 * 发生次数
*/ */
private Integer disasterCount; private Integer disasterCount;
/** /**
*
*/ */
private String disasterTime; private String disasterTime;
@@ -64,5 +71,21 @@ public class DisasterDataDO extends BaseDO {
* 删除状态 (1:已删除;2:未删除) * 删除状态 (1:已删除;2:未删除)
*/ */
private Integer useStatus; private Integer useStatus;
/**
* 获取图片集合
*/
public List<String> getImageList() {
if (imageList == null) {
imageList = ImageCollectionUtil.toImageList(this.imgUrl);
}
return imageList;
}
/**
* 设置图片集合
*/
public void setImageList(List<String> imageList) {
this.imageList = imageList;
this.imgUrl = ImageCollectionUtil.toDatabaseString(imageList);
}
} }

View File

@@ -10,9 +10,9 @@ import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO; import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.module.farm.dal.mysql.disasterdata.DisasterDataMapper; import cn.iocoder.yudao.module.farm.dal.mysql.disasterdata.DisasterDataMapper;
import cn.iocoder.yudao.module.farm.framework.util.ImageCollectionUtil;
import java.util.List; import java.util.List;
@@ -34,9 +34,13 @@ public class DisasterDataServiceImpl implements DisasterDataService {
@Override @Override
public String createDisasterData(DisasterDataSaveReqVO createReqVO) { public String createDisasterData(DisasterDataSaveReqVO createReqVO) {
LoginUser user = getLoginUser(); getLoginUser();
// 插入 // 插入
DisasterDataDO disasterData = BeanUtils.toBean(createReqVO, DisasterDataDO.class); DisasterDataDO disasterData = BeanUtils.toBean(createReqVO, DisasterDataDO.class);
// 将图片集合转换为数据库存储的字符串,仅当前端传了列表时进行转换
if (disasterData.getImageList() != null) {
disasterData.setImgUrl(ImageCollectionUtil.toDatabaseString(disasterData.getImageList()));
}
disasterData.setId(IdUtil.fastUUID()); disasterData.setId(IdUtil.fastUUID());
disasterDataMapper.insert(disasterData); disasterDataMapper.insert(disasterData);
@@ -50,6 +54,10 @@ public class DisasterDataServiceImpl implements DisasterDataService {
validateDisasterDataExists(updateReqVO.getId()); validateDisasterDataExists(updateReqVO.getId());
// 更新 // 更新
DisasterDataDO updateObj = BeanUtils.toBean(updateReqVO, DisasterDataDO.class); DisasterDataDO updateObj = BeanUtils.toBean(updateReqVO, DisasterDataDO.class);
// 将图片集合转换为数据库存储的字符串,仅当前端传了列表时进行转换
if (updateObj.getImageList() != null) {
updateObj.setImgUrl(ImageCollectionUtil.toDatabaseString(updateObj.getImageList()));
}
disasterDataMapper.updateById(updateObj); disasterDataMapper.updateById(updateObj);
} }
@@ -78,7 +86,12 @@ public class DisasterDataServiceImpl implements DisasterDataService {
@Override @Override
public DisasterDataDO getDisasterData(String id) { public DisasterDataDO getDisasterData(String id) {
return disasterDataMapper.selectById(id); DisasterDataDO data = disasterDataMapper.selectById(id);
if (data != null) {
// 触发图片集合转换,确保返回对象包含转换后的图片集合
data.getImageList();
}
return data;
} }
@Override @Override
@@ -91,9 +104,16 @@ public class DisasterDataServiceImpl implements DisasterDataService {
int offset = (pageNo - 1) * pageSize; int offset = (pageNo - 1) * pageSize;
reqVO.setOffset(offset); reqVO.setOffset(offset);
List<DisasterDataDO> list = disasterDataMapper.selectDisasterDataPage(reqVO); List<DisasterDataDO> list = disasterDataMapper.selectDisasterDataPage(reqVO);
if (list != null) {
list.forEach(item -> {
if (item != null) {
// 触发图片集合转换
item.getImageList();
}
});
}
long total = disasterDataMapper.selectDisasterDataCount(reqVO); long total = disasterDataMapper.selectDisasterDataCount(reqVO);
// long totalPages = (long) Math.ceil((double) total / pageSize);
return new PageResult<>(list,total); return new PageResult<>(list,total);
} }

View File

@@ -283,6 +283,7 @@ yudao:
- /admin-api/app/traceability-code/scan - /admin-api/app/traceability-code/scan
ignore-tables: ignore-tables:
- region - region
- farm_production_plan
ignore-caches: ignore-caches:
- user_role_ids - user_role_ids
- permission_menu_ids - permission_menu_ids