Merge remote-tracking branch 'origin/main'

This commit is contained in:
达富斌
2025-08-21 15:09:48 +08:00
6 changed files with 67 additions and 15 deletions

View File

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

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 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<String> imageList;
@Schema(description = "发生次数", example = "17530")
@ExcelProperty("发生次数")
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 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<String> imageList;
@Schema(description = "发生次数", example = "17530")
private Integer disasterCount;

View File

@@ -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<String> imageList;
/**
* 发生次数
*/
private Integer disasterCount;
/**
*
*/
private String disasterTime;
@@ -64,5 +71,21 @@ public class DisasterDataDO extends BaseDO {
* 删除状态 (1:已删除;2:未删除)
*/
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.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<DisasterDataDO> 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);
}