farm模块-地区信息

This commit is contained in:
顾君禹
2025-08-16 13:39:53 +08:00
parent cb424b5beb
commit 4f2048673c
10 changed files with 246 additions and 1 deletions

View File

@@ -0,0 +1,56 @@
package cn.iocoder.yudao.module.farm.controller.admin.region;
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.controller.admin.region.vo.RegionPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.region.vo.RegionRespVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.region.RegionDO;
import cn.iocoder.yudao.module.farm.service.region.RegionService;
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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 区域")
@RestController
@RequestMapping("/farm/region")
@Validated
public class RegionController {
@Resource
private RegionService regionService;
@GetMapping("/get")
@Operation(summary = "获得区域")
public CommonResult<RegionRespVO> getRegion(@RequestParam("id") String id) {
RegionDO region = regionService.getRegion(id);
return success(BeanUtils.toBean(region, RegionRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得区域分页")
public CommonResult<PageResult<RegionRespVO>> getRegionPage(@Valid RegionPageReqVO pageReqVO) {
PageResult<RegionDO> pageResult = regionService.getRegionPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, RegionRespVO.class));
}
@GetMapping("/list")
@Operation(summary = "获得全部区域")
public CommonResult<List<RegionRespVO>> getRegionList() {
RegionPageReqVO reqVO = new RegionPageReqVO();
reqVO.setPageSize(cn.iocoder.yudao.framework.common.pojo.PageParam.PAGE_SIZE_NONE);
List<RegionDO> list = regionService.getRegionPage(reqVO).getList();
return success(cn.iocoder.yudao.framework.common.util.object.BeanUtils.toBean(list, RegionRespVO.class));
}
}

View File

@@ -0,0 +1,17 @@
package cn.iocoder.yudao.module.farm.controller.admin.region.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
@Data
public class RegionPageReqVO extends PageParam {
@Schema(description = "区域编码")
private String code;
@Schema(description = "区域名称")
private String name;
@Schema(description = "父级ID")
private String parentId;
@Schema(description = "层级")
private Integer level;
}

View File

@@ -0,0 +1,18 @@
package cn.iocoder.yudao.module.farm.controller.admin.region.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class RegionRespVO {
@Schema(description = "主键ID")
private String id;
@Schema(description = "区域编码")
private String code;
@Schema(description = "区域名称")
private String name;
@Schema(description = "父级ID")
private String parentId;
@Schema(description = "层级")
private Integer level;
}

View File

@@ -0,0 +1,18 @@
package cn.iocoder.yudao.module.farm.controller.admin.region.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class RegionSaveReqVO {
@Schema(description = "主键ID")
private String id;
@Schema(description = "区域编码")
private String code;
@Schema(description = "区域名称")
private String name;
@Schema(description = "父级ID")
private String parentId;
@Schema(description = "层级")
private Integer level;
}

View File

@@ -21,7 +21,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@RestController @RestController
@RequestMapping("/app/traceability-code") @RequestMapping("/app/traceability-code")
@Validated @Validated
public class TraceabilityCodeController { public class APPTraceabilityCodeController {
@Resource @Resource
private TraceabilityCodeService traceabilityCodeService; private TraceabilityCodeService traceabilityCodeService;

View File

@@ -0,0 +1,23 @@
package cn.iocoder.yudao.module.farm.dal.dataobject.region;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
@TableName("region")
@KeySequence("region_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode()
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RegionDO {
private String id;
private String code;
private String name;
private String parentId;
private Integer level;
}

View File

@@ -0,0 +1,27 @@
package cn.iocoder.yudao.module.farm.dal.mysql.region;
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.region.vo.RegionPageReqVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.region.RegionDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 区域 Mapper
*
* @author auto-gen
*/
@Mapper
public interface RegionMapper extends BaseMapperX<RegionDO> {
default PageResult<RegionDO> selectPage(RegionPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<RegionDO>()
.eqIfPresent(RegionDO::getCode, reqVO.getCode())
.likeIfPresent(RegionDO::getName, reqVO.getName())
.eqIfPresent(RegionDO::getParentId, reqVO.getParentId())
.eqIfPresent(RegionDO::getLevel, reqVO.getLevel())
.orderByDesc(RegionDO::getId)
);
}
}

View File

@@ -104,4 +104,7 @@ public interface ErrorCodeConstants {
// ========== 模型管理 1_050_031_000 ========== // ========== 模型管理 1_050_031_000 ==========
ErrorCode TRACEABILITY_CODE_NOT_EXISTS = new ErrorCode(1_050_031_000, "溯源码不存在"); ErrorCode TRACEABILITY_CODE_NOT_EXISTS = new ErrorCode(1_050_031_000, "溯源码不存在");
// ========== 模型管理 1_050_032_000 ==========
ErrorCode QR_CODE_WRITE_FAILED = new ErrorCode(1_050_032_000, "生成二维码失败");
} }

View File

@@ -0,0 +1,29 @@
package cn.iocoder.yudao.module.farm.service.region;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.farm.controller.admin.region.vo.RegionPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.region.vo.RegionSaveReqVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.region.RegionDO;
import jakarta.validation.Valid;
import java.util.List;
/**
* 区域 Service 接口
*
* @author auto-gen
*/
public interface RegionService {
String createRegion(@Valid RegionSaveReqVO createReqVO);
void updateRegion(@Valid RegionSaveReqVO updateReqVO);
void deleteRegion(String id);
void deleteRegionListByIds(List<String> ids);
RegionDO getRegion(String id);
PageResult<RegionDO> getRegionPage(RegionPageReqVO pageReqVO);
}

View File

@@ -0,0 +1,54 @@
package cn.iocoder.yudao.module.farm.service.region;
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.region.vo.RegionPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.region.vo.RegionSaveReqVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.region.RegionDO;
import cn.iocoder.yudao.module.farm.dal.mysql.region.RegionMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.util.List;
@Service
@Validated
public class RegionServiceImpl implements RegionService {
@Resource
private RegionMapper regionMapper;
@Override
public String createRegion(RegionSaveReqVO createReqVO) {
RegionDO region = BeanUtils.toBean(createReqVO, RegionDO.class);
regionMapper.insert(region);
return region.getId();
}
@Override
public void updateRegion(RegionSaveReqVO updateReqVO) {
RegionDO region = BeanUtils.toBean(updateReqVO, RegionDO.class);
regionMapper.updateById(region);
}
@Override
public void deleteRegion(String id) {
regionMapper.deleteById(id);
}
@Override
public void deleteRegionListByIds(List<String> ids) {
regionMapper.deleteBatch(RegionDO::getId, ids);
}
@Override
public RegionDO getRegion(String id) {
return regionMapper.selectById(id);
}
@Override
public PageResult<RegionDO> getRegionPage(RegionPageReqVO pageReqVO) {
return regionMapper.selectPage(pageReqVO);
}
}