feat(farm): 新增协议管理功能

- 添加协议相关的VO、DO、Mapper及Service接口与实现
- 实现协议的增删改查及分页查询接口
- 配置协议表结构SQL脚本
- 更新应用配置文件激活环境为gtr7
This commit is contained in:
甘宇辉
2025-11-06 15:23:01 +08:00
parent 6db0aaa5ed
commit 380ff542d9
11 changed files with 296 additions and 1 deletions

View File

@@ -0,0 +1,13 @@
CREATE TABLE system_agreement (
`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '唯一标识符,自增主键',
`type` VARCHAR(50) NOT NULL COMMENT '内容类型,建议使用枚举值如',
`context` LONGTEXT NOT NULL COMMENT '内容主体,支持长文本存储',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
INDEX idx_type (type) COMMENT '类型字段索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统协议表';

View File

@@ -0,0 +1,50 @@
package cn.iocoder.yudao.module.farm.controller.admin.agreement;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.farm.controller.admin.agreement.vo.AgreementAddVO;
import cn.iocoder.yudao.module.farm.controller.admin.agreement.vo.AgreementReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.agreement.vo.AgreementVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.agreement.AgreementDO;
import cn.iocoder.yudao.module.farm.service.agreement.AgreementService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@Tag(name = "协议政策")
@RestController
@RequestMapping("/system/agreement")
@Validated
public class AgreementController {
@Resource
private AgreementService agreementService;
@GetMapping()
@Operation(summary = "协议-分页")
public CommonResult<PageResult<AgreementDO>> getAgreementPage(AgreementReqVO req) {
return agreementService.getPage(req);
}
@PostMapping()
@Operation(summary = "协议-新增")
public CommonResult<Integer> addAgreement(@Valid @RequestBody AgreementAddVO req) {
return agreementService.createAgreement(req);
}
@GetMapping("/{id}")
@Operation(summary = "协议-详情")
public CommonResult<AgreementDO> getAgreement(@PathVariable("id") String id) {
return agreementService.getAgreement(id);
}
@PutMapping()
@Operation(summary = "协议-修改")
public CommonResult<Integer> updateAgreement(@Valid @RequestBody AgreementVO req) {
return agreementService.updateAgreement(req);
}
}

View File

@@ -0,0 +1,18 @@
package cn.iocoder.yudao.module.farm.controller.admin.agreement.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class AgreementAddVO {
/**
* 类型
*/
private String type;
/**
* 文本内容
*/
private String context;
}

View File

@@ -0,0 +1,24 @@
package cn.iocoder.yudao.module.farm.controller.admin.agreement.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @description: 种植计划 响应实体
* @author: binda
* @date: 2025/9/4 09:34
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AgreementPagesVO {
@Schema(description = "id")
private String id;
@Schema(description = "类型")
private String type;
}

View File

@@ -0,0 +1,16 @@
package cn.iocoder.yudao.module.farm.controller.admin.agreement.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @description: 种植计划 请求实体
* @author: binda
* @date: 2025/9/4 09:35
*/
@Data
//@AllArgsConstructor
@NoArgsConstructor
public class AgreementReqVO extends PageParam {
}

View File

@@ -0,0 +1,25 @@
package cn.iocoder.yudao.module.farm.controller.admin.agreement.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class AgreementVO {
/**
* id
*/
@TableId(type = IdType.AUTO)
private String id;
/**
* 类型
*/
private String type;
/**
* 文本内容
*/
private String context;
}

View File

@@ -0,0 +1,31 @@
package cn.iocoder.yudao.module.farm.dal.dataobject.agreement;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* 协议表
*
* @author 甘宇辉
*/
@TableName("system_agreement")
@Data
public class AgreementDO extends BaseDO {
/**
* id
*/
@TableId(type = IdType.AUTO)
private String id;
/**
* 类型
*/
private String type;
/**
* 文本内容
*/
private String context;
}

View File

@@ -0,0 +1,17 @@
package cn.iocoder.yudao.module.farm.dal.mysql.agreement;
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.agreement.vo.AgreementReqVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.agreement.AgreementDO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface AgreementMapper extends BaseMapperX<AgreementDO> {
default PageResult<AgreementDO> selectPage(AgreementReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<AgreementDO>().orderByDesc(AgreementDO::getCreateTime));
}
}

View File

@@ -0,0 +1,46 @@
package cn.iocoder.yudao.module.farm.service.agreement;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.farm.controller.admin.agreement.vo.AgreementAddVO;
import cn.iocoder.yudao.module.farm.controller.admin.agreement.vo.AgreementReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.agreement.vo.AgreementVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.agreement.AgreementDO;
import jakarta.validation.Valid;
/**
* 协议 Service 接口
*
* @author 芋道源码
*/
public interface AgreementService {
/**
* api 接口
* 协议列表-分页查询
*
* @param req
* @return
*/
CommonResult<PageResult<AgreementDO>> getPage(AgreementReqVO req);
/**
* api 接口
* 协议 - 新增
*
*/
CommonResult<Integer> createAgreement(@Valid AgreementAddVO createReqVO);
/**
* api 接口
* 协议 - 详情
* */
CommonResult<AgreementDO> getAgreement(String id);
/**
* api 接口
* 协议 - 修改
* */
CommonResult<Integer> updateAgreement(@Valid AgreementVO updateReqVO);
}

View File

@@ -0,0 +1,55 @@
package cn.iocoder.yudao.module.farm.service.agreement;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.farm.controller.admin.agreement.vo.AgreementAddVO;
import cn.iocoder.yudao.module.farm.controller.admin.agreement.vo.AgreementReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.agreement.vo.AgreementVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.agreement.AgreementDO;
import cn.iocoder.yudao.module.farm.dal.mysql.agreement.AgreementMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
/**
* 协议实现类
*
* @author 芋道源码
*/
@Service
@Validated
public class AgreementServiceImpl implements AgreementService {
@Resource
private AgreementMapper agreementMapper;
@Override
public CommonResult<PageResult<AgreementDO>> getPage(AgreementReqVO pageReqVO) {
return CommonResult.success(agreementMapper.selectPage(pageReqVO));
}
@Override
public CommonResult<Integer> createAgreement(AgreementAddVO createReqVO) {
AgreementDO agreementDO = new AgreementDO();
agreementDO.setType(createReqVO.getType());
agreementDO.setContext(createReqVO.getContext());
return CommonResult.success(agreementMapper.insert(agreementDO));
}
@Override
public CommonResult<AgreementDO> getAgreement(String id) {
return CommonResult.success(agreementMapper.selectById(id));
}
@Override
public CommonResult<Integer> updateAgreement(AgreementVO res) {
AgreementDO agreementDO = new AgreementDO();
agreementDO.setId(res.getId());
agreementDO.setType(res.getType());
agreementDO.setContext(res.getContext());
return CommonResult.success(agreementMapper.updateById(agreementDO));
}
}

View File

@@ -3,7 +3,7 @@ spring:
name: yudao-server
profiles:
active: dev
active: gtr7
config:
import:
- classpath:db.properties