From 38e45ce137dd1c46549557f318955439cca919c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Tue, 14 Oct 2025 14:00:48 +0800 Subject: [PATCH] =?UTF-8?q?fix=20(farm):=20=E5=BE=AE=E4=BF=A1=E7=AB=AF/PC?= =?UTF-8?q?=E7=AB=AF=20=E5=86=9C=E4=B8=9A=E8=B5=84=E8=AE=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 资讯详情 --- .../farmnews/FarmInformationController.java | 88 ++++++++++++++++--- .../farmnews/vo/FarmInformationPageReqVO.java | 33 +++++-- .../vo/FarmInformationPageRespVO.java | 25 ------ .../farmnews/vo/FarmInformationRespVO.java | 38 ++++++++ .../farmnews/vo/FarmInformationSaveReqVO.java | 30 +++++++ .../controller/admin/wx/WxController.java | 29 +++--- .../farminformation/FarmInformationDO.java | 37 ++++++-- .../FarmInformationMapper.java | 21 +++-- .../module/farm/enums/ErrorCodeConstants.java | 2 + .../FarmInformationService.java | 62 +++++++++++-- .../FarmInformationServiceImpl.java | 80 ++++++++++++----- 11 files changed, 339 insertions(+), 106 deletions(-) delete mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationPageRespVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationRespVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationSaveReqVO.java diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/FarmInformationController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/FarmInformationController.java index 95832700..2a031ee8 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/FarmInformationController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/FarmInformationController.java @@ -1,15 +1,30 @@ package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews; +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationPageRespVO; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationPageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationRespVO; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationSaveReqVO; +import cn.iocoder.yudao.module.farm.dal.dataobject.farminformation.FarmInformationDO; import cn.iocoder.yudao.module.farm.service.farminformation.FarmInformationService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.module.farm.enums.CommonConstants.NEWS_TYPE_MAP; /** * @description: @@ -28,14 +43,67 @@ public class FarmInformationController { this.farmInformationService = farmInformationService; } - @GetMapping("/page") - @Operation(summary = "资讯信息-分页") - public CommonResult> pageInfo() { - - PageResult res = null; - return CommonResult.success(res); + @PostMapping("/create") + @Operation(summary = "创建农业资讯") + public CommonResult createFarmInformation(@Valid @RequestBody FarmInformationSaveReqVO createReqVO) { + return success(farmInformationService.createFarmInformation(createReqVO)); } + @PutMapping("/update") + @Operation(summary = "更新农业资讯") + public CommonResult updateFarmInformation(@Valid @RequestBody FarmInformationSaveReqVO updateReqVO) { + farmInformationService.updateFarmInformation(updateReqVO); + return success(true); + } + @DeleteMapping("/delete") + @Operation(summary = "删除农业资讯") + @Parameter(name = "id", description = "编号", required = true) + public CommonResult deleteFarmInformation(@RequestParam("id") String id) { + farmInformationService.deleteFarmInformation(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除农业资讯") + public CommonResult deleteFarmInformationList(@RequestParam("ids") List ids) { + farmInformationService.deleteFarmInformationListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得农业资讯") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + public CommonResult getFarmInformation(@RequestParam("id") String id) { + FarmInformationDO farmInformation = farmInformationService.getFarmInformation(id); + FarmInformationRespVO res = BeanUtils.toBean(farmInformation, FarmInformationRespVO.class); + res.setInfoTypeName(NEWS_TYPE_MAP.getOrDefault(res.getInfoType(), "其他")); + + return success(res); + } + + @GetMapping("/page") + @Operation(summary = "获得农业资讯分页") + public CommonResult> getFarmInformationPage(@Valid FarmInformationPageReqVO pageReqVO) { + PageResult pageResult = farmInformationService.getFarmInformationPage(pageReqVO); + PageResult result = BeanUtils.toBean(pageResult, FarmInformationRespVO.class); + for (FarmInformationRespVO e : result.getList()) { + e.setInfoTypeName(NEWS_TYPE_MAP.getOrDefault(e.getInfoType(), "其他")); + } + return success(result); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出农业资讯 Excel") + @ApiAccessLog(operateType = EXPORT) + public void exportFarmInformationExcel(@Valid FarmInformationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = farmInformationService.getFarmInformationPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "农业资讯.xls", "数据", FarmInformationRespVO.class, + BeanUtils.toBean(list, FarmInformationRespVO.class)); + } } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationPageReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationPageReqVO.java index ba57fb81..763df7db 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationPageReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationPageReqVO.java @@ -1,17 +1,32 @@ package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import lombok.Data; -/** - * @description: TODO - * @author: binda - * @date: 2025/10/13 10:58 - */ +import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 农业资讯分页 Request VO") @Data public class FarmInformationPageReqVO extends PageParam { - private String id; + @Schema(description = "资讯类型 (1: 要闻; 99:其他)", example = "1") + private String infoType; + + @Schema(description = "资讯标题") private String infoTitle; -} + @Schema(description = "资讯正文") + private String infoText; + + @Schema(description = "发布状态 (1: 已发布; 0:未发布)", example = "1") + private Integer publishStatus; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationPageRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationPageRespVO.java deleted file mode 100644 index e0aa67db..00000000 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationPageRespVO.java +++ /dev/null @@ -1,25 +0,0 @@ -package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @description: TODO - * @author: binda - * @date: 2025/9/25 17:09 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class FarmInformationPageRespVO { - - private String id; - @Schema(description = "资讯类型 (1: 要闻; 99:其他)") - private String infoType; - private String infoTypeName; - @Schema(description = "资讯标题") - private String infoTitle; - -} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationRespVO.java new file mode 100644 index 00000000..6b501390 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationRespVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 农业资讯 Response VO") +@Data +@ExcelIgnoreUnannotated +public class FarmInformationRespVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29934") + @ExcelProperty("主键id") + private String id; + + @Schema(description = "资讯类型 (1: 要闻; 99:其他)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("资讯类型 (1: 要闻; 99:其他)") + private String infoType; + private String infoTypeName; + + @Schema(description = "资讯标题", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("资讯标题") + private String infoTitle; + + @Schema(description = "资讯正文", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("资讯正文") + private String infoText; + + @Schema(description = "发布状态 (1: 已发布; 0:未发布)", example = "1") + @ExcelProperty("发布状态 (1: 已发布; 0:未发布)") + private Integer publishStatus; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationSaveReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationSaveReqVO.java new file mode 100644 index 00000000..acd85004 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/farmnews/vo/FarmInformationSaveReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 农业资讯新增/修改 Request VO") +@Data +public class FarmInformationSaveReqVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29934") + private String id; + + @Schema(description = "资讯类型 (1: 要闻; 99:其他)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "资讯类型 (1: 要闻; 99:其他)不能为空") + private String infoType; + + @Schema(description = "资讯标题", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "资讯标题不能为空") + private String infoTitle; + + @Schema(description = "资讯正文", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "资讯正文不能为空") + private String infoText; + + @Schema(description = "发布状态 (1: 已发布; 0:未发布)", example = "1") + private Integer publishStatus; + +} \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/wx/WxController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/wx/WxController.java index 08014783..ef804d39 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/wx/WxController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/wx/WxController.java @@ -2,18 +2,19 @@ package cn.iocoder.yudao.module.farm.controller.admin.wx; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.farm.config.CompanyConf; import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DeviceStateRespVO; import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.ProductionPlanPage2ReqVO; import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.ProductionPlanResp2VO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.baseinfo.vo.wx.BaseInfoForWxRespVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.baseinfo.vo.wx.RegularPlotInfoRespVO; -import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationDetailRespVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationPageReqVO; -import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationPageRespVO; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationRespVO; import cn.iocoder.yudao.module.farm.controller.admin.wx.vo.*; import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO; import cn.iocoder.yudao.module.farm.dal.dataobject.deviceinfo.DeviceInfoDO; +import cn.iocoder.yudao.module.farm.dal.dataobject.farminformation.FarmInformationDO; import cn.iocoder.yudao.module.farm.dal.dataobject.plotinfo.PlotInfoDO; import cn.iocoder.yudao.module.farm.service.baseinfo.BaseInfoService; import cn.iocoder.yudao.module.farm.service.cropFarmingCenter.CropFarmingCenterService; @@ -41,8 +42,7 @@ import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; -import static cn.iocoder.yudao.module.farm.enums.CommonConstants.BINDING_STATE_MAP; -import static cn.iocoder.yudao.module.farm.enums.CommonConstants.DEVICE_STATE_MAP; +import static cn.iocoder.yudao.module.farm.enums.CommonConstants.*; /** * @description: 微信端 @@ -191,19 +191,26 @@ public class WxController { return success(new PageResult(resetList,size)); } - @Operation(summary = "农业资讯") + @Operation(summary = "农业资讯-分页") @GetMapping("/farm-information/page") - public CommonResult> getFarmInformation(@Valid FarmInformationPageReqVO req) { - PageResult result = farmInformationService.getFarmInformationPage(req); - return CommonResult.success(result); + public CommonResult> getFarmInformation(@Valid FarmInformationPageReqVO req) { + PageResult pageResult = farmInformationService.getFarmInformationPage(req); + PageResult result = BeanUtils.toBean(pageResult, FarmInformationRespVO.class); + for (FarmInformationRespVO e : result.getList()) { + e.setInfoTypeName(NEWS_TYPE_MAP.getOrDefault(e.getInfoType(), "其他")); + } + return success(result); } @Operation(summary = "农业资讯-详情页") @GetMapping("/farm-information/detail") @Parameter(name = "id", description = "咨询ID") - public CommonResult getFarmInformationDetail(@RequestParam("id") String id) { - FarmInformationDetailRespVO result = farmInformationService.getFarmInformationDetail(id); - return CommonResult.success(result); + public CommonResult getFarmInformationDetail(@RequestParam("id") String id) { + FarmInformationDO farmInformation = farmInformationService.getFarmInformation(id); + FarmInformationRespVO res = BeanUtils.toBean(farmInformation, FarmInformationRespVO.class); + res.setInfoTypeName(NEWS_TYPE_MAP.getOrDefault(res.getInfoType(), "其他")); + + return success(res); } @GetMapping("/message-center/abnormal-state") diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/farminformation/FarmInformationDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/farminformation/FarmInformationDO.java index a99133a2..1a1fbefa 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/farminformation/FarmInformationDO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/farminformation/FarmInformationDO.java @@ -1,16 +1,19 @@ package cn.iocoder.yudao.module.farm.dal.dataobject.farminformation; -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; /** - * @description: - * @author: binda - * @date: 2025/9/25 17:22 + * 农业资讯 DO + * + * @author 超级管理 */ @TableName("farm_information") +@KeySequence("farm_information_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @@ -19,11 +22,27 @@ import lombok.*; @AllArgsConstructor public class FarmInformationDO extends BaseDO { - @TableId + /** + * 主键id + */ + @TableId(type = IdType.INPUT) private String id; + /** + * 资讯类型 (1: 要闻; 99:其他) + */ private String infoType; + /** + * 资讯标题 + */ private String infoTitle; + /** + * 资讯正文 + */ private String infoText; - private String tenantId; + /** + * 发布状态 (1: 已发布; 0:未发布) + */ + private Integer publishStatus; -} + +} \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/farminformation/FarmInformationMapper.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/farminformation/FarmInformationMapper.java index 4772ec10..34a5d717 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/farminformation/FarmInformationMapper.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/farminformation/FarmInformationMapper.java @@ -1,26 +1,29 @@ package cn.iocoder.yudao.module.farm.dal.mysql.farminformation; + import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.companyinfo.vo.CompanyInfoPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationPageReqVO; -import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationPageRespVO; -import cn.iocoder.yudao.module.farm.dal.dataobject.companyinfo.CompanyInfoDO; import cn.iocoder.yudao.module.farm.dal.dataobject.farminformation.FarmInformationDO; import org.apache.ibatis.annotations.Mapper; /** - * @description: 农业资讯 - * @author: binda - * @data: 2025/9/25 17:20 + * 农业资讯 Mapper + * + * @author 超级管理 */ @Mapper public interface FarmInformationMapper extends BaseMapperX { default PageResult selectPage(FarmInformationPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() - .likeIfPresent(FarmInformationDO::getInfoTitle, reqVO.getInfoTitle()) - .orderByDesc(FarmInformationDO::getCreateTime)); + .eqIfPresent(FarmInformationDO::getInfoType, reqVO.getInfoType()) + .eqIfPresent(FarmInformationDO::getInfoTitle, reqVO.getInfoTitle()) + .eqIfPresent(FarmInformationDO::getInfoText, reqVO.getInfoText()) + .eqIfPresent(FarmInformationDO::getPublishStatus, reqVO.getPublishStatus()) + .betweenIfPresent(FarmInformationDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(FarmInformationDO::getId)); } -} + +} \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java index ba8b4da8..d691964f 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java @@ -153,4 +153,6 @@ public interface ErrorCodeConstants { ErrorCode ENVIRONMENT_INDICATORS_NOT_EXISTS = new ErrorCode(1_050_048_000, "环境指标不存在"); + + ErrorCode FARM_INFORMATION_NOT_EXISTS = new ErrorCode(1_050_049_000, "农业资讯不存在"); } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farminformation/FarmInformationService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farminformation/FarmInformationService.java index 32695c4c..08454268 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farminformation/FarmInformationService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farminformation/FarmInformationService.java @@ -1,18 +1,62 @@ package cn.iocoder.yudao.module.farm.service.farminformation; +import java.util.*; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationDetailRespVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationPageReqVO; -import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationPageRespVO; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationSaveReqVO; +import cn.iocoder.yudao.module.farm.dal.dataobject.farminformation.FarmInformationDO; +import jakarta.validation.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; /** - * @description: - * @author: binda - * @date: 2025/9/25 17:27 + * 农业资讯 Service 接口 + * + * @author 超级管理 */ public interface FarmInformationService { - PageResult getFarmInformationPage(FarmInformationPageReqVO req); + /** + * 创建农业资讯 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + String createFarmInformation(@Valid FarmInformationSaveReqVO createReqVO); - FarmInformationDetailRespVO getFarmInformationDetail(String id); -} + /** + * 更新农业资讯 + * + * @param updateReqVO 更新信息 + */ + void updateFarmInformation(@Valid FarmInformationSaveReqVO updateReqVO); + + /** + * 删除农业资讯 + * + * @param id 编号 + */ + void deleteFarmInformation(String id); + + /** + * 批量删除农业资讯 + * + * @param ids 编号 + */ + void deleteFarmInformationListByIds(List ids); + + /** + * 获得农业资讯 + * + * @param id 编号 + * @return 农业资讯 + */ + FarmInformationDO getFarmInformation(String id); + + /** + * 获得农业资讯分页 + * + * @param pageReqVO 分页查询 + * @return 农业资讯分页 + */ + PageResult getFarmInformationPage(FarmInformationPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farminformation/FarmInformationServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farminformation/FarmInformationServiceImpl.java index c2f114f3..ddc36a6d 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farminformation/FarmInformationServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farminformation/FarmInformationServiceImpl.java @@ -1,48 +1,80 @@ package cn.iocoder.yudao.module.farm.service.farminformation; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationDetailRespVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationPageReqVO; -import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationPageRespVO; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.farmnews.vo.FarmInformationSaveReqVO; import cn.iocoder.yudao.module.farm.dal.dataobject.farminformation.FarmInformationDO; import cn.iocoder.yudao.module.farm.dal.mysql.farminformation.FarmInformationMapper; import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import static cn.iocoder.yudao.module.farm.enums.CommonConstants.NEWS_TYPE_MAP; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.FARM_INFORMATION_NOT_EXISTS; /** - * @description: - * @author: binda - * @date: 2025/9/25 17:27 + * 农业资讯 Service 实现类 + * + * @author 超级管理 */ @Service -public class FarmInformationServiceImpl implements FarmInformationService{ +@Validated +public class FarmInformationServiceImpl implements FarmInformationService { - private final FarmInformationMapper farmInformationMapper; + @Resource + private FarmInformationMapper farmInformationMapper; - public FarmInformationServiceImpl(FarmInformationMapper farmInformationMapper) { - this.farmInformationMapper = farmInformationMapper; + @Override + public String createFarmInformation(FarmInformationSaveReqVO createReqVO) { + // 插入 + FarmInformationDO farmInformation = BeanUtils.toBean(createReqVO, FarmInformationDO.class); + farmInformationMapper.insert(farmInformation); + + // 返回 + return farmInformation.getId(); } @Override - public PageResult getFarmInformationPage(FarmInformationPageReqVO req) { - PageResult page = farmInformationMapper.selectPage(req); - PageResult result = BeanUtils.toBean(page, FarmInformationPageRespVO.class); - for (FarmInformationPageRespVO e : result.getList()) { - e.setInfoTypeName(NEWS_TYPE_MAP.getOrDefault(e.getInfoType(), "其他")); + public void updateFarmInformation(FarmInformationSaveReqVO updateReqVO) { + // 校验存在 + validateFarmInformationExists(updateReqVO.getId()); + // 更新 + FarmInformationDO updateObj = BeanUtils.toBean(updateReqVO, FarmInformationDO.class); + farmInformationMapper.updateById(updateObj); + } + + @Override + public void deleteFarmInformation(String id) { + // 校验存在 + validateFarmInformationExists(id); + // 删除 + farmInformationMapper.deleteById(id); + } + + @Override + public void deleteFarmInformationListByIds(List ids) { + // 删除 + farmInformationMapper.deleteByIds(ids); + } + + + private void validateFarmInformationExists(String id) { + if (farmInformationMapper.selectById(id) == null) { + throw exception(FARM_INFORMATION_NOT_EXISTS); } - return result; } @Override - public FarmInformationDetailRespVO getFarmInformationDetail(String id) { - FarmInformationDO farmInformationDO = farmInformationMapper.selectOne(FarmInformationDO::getId, id); - FarmInformationDetailRespVO res = BeanUtils.toBean(farmInformationDO, FarmInformationDetailRespVO.class); - res.setInfoTypeName(NEWS_TYPE_MAP.getOrDefault(res.getInfoType(),"其他")); - - return res; + public FarmInformationDO getFarmInformation(String id) { + return farmInformationMapper.selectById(id); } + @Override + public PageResult getFarmInformationPage(FarmInformationPageReqVO pageReqVO) { + return farmInformationMapper.selectPage(pageReqVO); + } -} +} \ No newline at end of file