diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataPageReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataPageReqVO.java index fe3e2aa4..a945d03d 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataPageReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataPageReqVO.java @@ -21,7 +21,7 @@ public class DisasterDataPageReqVO { private String name; @Schema(description = "灾害类型2=病害,1=虫害,3=草害") - private Integer category; + private String category; @Schema(description = "灾害类型 1:普通; 2:气象灾害") private Integer type; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataRespVO.java index cb44554b..e9833ddf 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataRespVO.java @@ -2,8 +2,8 @@ package cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; -import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import cn.idev.excel.annotation.*; @@ -22,7 +22,7 @@ public class DisasterDataRespVO { @Schema(description = "灾害类型2=病害,1=虫害,3=草害") @ExcelProperty("灾害类型2=病害,1=虫害,3=草害") - private Integer category; + private String category; @Schema(description = "灾害类型 1:普通; 2:气象灾害") private Integer type; @@ -36,6 +36,9 @@ public class DisasterDataRespVO { @Schema(description = "图片地址") private String imgUrl; + @Schema(description = "图片列表") + private List imageList; + @Schema(description = "发生次数", example = "17530") @ExcelProperty("发生次数") private Integer disasterCount; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataSaveReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataSaveReqVO.java index c89be16c..29f2ca5a 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataSaveReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataSaveReqVO.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; @Schema(description = "管理后台 - 灾害数据新增/修改 Request VO") @Data @@ -12,7 +13,7 @@ public class DisasterDataSaveReqVO { @Schema(description = "灾害名称", example = "赵六") private String name; @Schema(description = "灾害类型1=环境,2=病害,3=虫害,4=草害") - private Integer category; + private String category; @Schema(description = "灾害类型 1:普通; 2:气象灾害") private Integer type; @Schema(description = "灾害描述") @@ -20,8 +21,12 @@ public class DisasterDataSaveReqVO { @Schema(description = "防治建议") private String treatmentSuggestion; @Schema(description = "图片地址") + @com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = cn.iocoder.yudao.module.farm.framework.json.StringOrArrayToStringDeserializer.class) private String imgUrl; + @Schema(description = "图片列表") + private List imageList; + @Schema(description = "发生次数", example = "17530") private Integer disasterCount; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/disasterdata/DisasterDataDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/disasterdata/DisasterDataDO.java index 96eab3f5..b174af9d 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/disasterdata/DisasterDataDO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/disasterdata/DisasterDataDO.java @@ -1,13 +1,13 @@ package cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata; -import cn.idev.excel.annotation.ExcelProperty; -import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +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 java.time.LocalDateTime; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import java.util.List; /** * 灾害数据 DO @@ -35,7 +35,7 @@ public class DisasterDataDO extends BaseDO { /** * 灾害类型 2=病害,1=虫害,3=草害 */ - private Integer category; + private String category; /** * 灾害类别 1:普通; 2:气象灾害 */ @@ -52,11 +52,18 @@ public class DisasterDataDO extends BaseDO { * 图片地址 */ private String imgUrl; + + /** + * 图片集合(业务层使用) + */ + @TableField(exist = false) + private List imageList; /** * 发生次数 */ private Integer disasterCount; /** + * */ private String disasterTime; @@ -64,5 +71,21 @@ public class DisasterDataDO extends BaseDO { * 删除状态 (1:已删除;2:未删除) */ private Integer useStatus; + /** + * 获取图片集合 + */ + public List getImageList() { + if (imageList == null) { + imageList = ImageCollectionUtil.toImageList(this.imgUrl); + } + return imageList; + } + /** + * 设置图片集合 + */ + public void setImageList(List imageList) { + this.imageList = imageList; + this.imgUrl = ImageCollectionUtil.toDatabaseString(imageList); + } } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/disasterdata/DisasterDataServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/disasterdata/DisasterDataServiceImpl.java index 028f172f..20a5fe3e 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/disasterdata/DisasterDataServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/disasterdata/DisasterDataServiceImpl.java @@ -10,9 +10,9 @@ import org.springframework.validation.annotation.Validated; import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; 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.framework.util.ImageCollectionUtil; import java.util.List; @@ -34,9 +34,13 @@ public class DisasterDataServiceImpl implements DisasterDataService { @Override public String createDisasterData(DisasterDataSaveReqVO createReqVO) { - LoginUser user = getLoginUser(); + getLoginUser(); // 插入 DisasterDataDO disasterData = BeanUtils.toBean(createReqVO, DisasterDataDO.class); + // 将图片集合转换为数据库存储的字符串,仅当前端传了列表时进行转换 + if (disasterData.getImageList() != null) { + disasterData.setImgUrl(ImageCollectionUtil.toDatabaseString(disasterData.getImageList())); + } disasterData.setId(IdUtil.fastUUID()); disasterDataMapper.insert(disasterData); @@ -50,6 +54,10 @@ public class DisasterDataServiceImpl implements DisasterDataService { validateDisasterDataExists(updateReqVO.getId()); // 更新 DisasterDataDO updateObj = BeanUtils.toBean(updateReqVO, DisasterDataDO.class); + // 将图片集合转换为数据库存储的字符串,仅当前端传了列表时进行转换 + if (updateObj.getImageList() != null) { + updateObj.setImgUrl(ImageCollectionUtil.toDatabaseString(updateObj.getImageList())); + } disasterDataMapper.updateById(updateObj); } @@ -78,7 +86,12 @@ public class DisasterDataServiceImpl implements DisasterDataService { @Override public DisasterDataDO getDisasterData(String id) { - return disasterDataMapper.selectById(id); + DisasterDataDO data = disasterDataMapper.selectById(id); + if (data != null) { + // 触发图片集合转换,确保返回对象包含转换后的图片集合 + data.getImageList(); + } + return data; } @Override @@ -91,9 +104,16 @@ public class DisasterDataServiceImpl implements DisasterDataService { int offset = (pageNo - 1) * pageSize; reqVO.setOffset(offset); List list = disasterDataMapper.selectDisasterDataPage(reqVO); + if (list != null) { + list.forEach(item -> { + if (item != null) { + // 触发图片集合转换 + item.getImageList(); + } + }); + } long total = disasterDataMapper.selectDisasterDataCount(reqVO); -// long totalPages = (long) Math.ceil((double) total / pageSize); return new PageResult<>(list,total); } diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index c0ff9edc..a5bb4580 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -283,6 +283,7 @@ yudao: - /admin-api/app/traceability-code/scan ignore-tables: - region + - farm_production_plan ignore-caches: - user_role_ids - permission_menu_ids