diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/region/RegionController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/region/RegionController.java new file mode 100644 index 00000000..95a47869 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/region/RegionController.java @@ -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 getRegion(@RequestParam("id") String id) { + RegionDO region = regionService.getRegion(id); + return success(BeanUtils.toBean(region, RegionRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得区域分页") + public CommonResult> getRegionPage(@Valid RegionPageReqVO pageReqVO) { + PageResult pageResult = regionService.getRegionPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, RegionRespVO.class)); + } + + @GetMapping("/list") + @Operation(summary = "获得全部区域") + public CommonResult> getRegionList() { + RegionPageReqVO reqVO = new RegionPageReqVO(); + reqVO.setPageSize(cn.iocoder.yudao.framework.common.pojo.PageParam.PAGE_SIZE_NONE); + List list = regionService.getRegionPage(reqVO).getList(); + return success(cn.iocoder.yudao.framework.common.util.object.BeanUtils.toBean(list, RegionRespVO.class)); + } +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/region/vo/RegionPageReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/region/vo/RegionPageReqVO.java new file mode 100644 index 00000000..5616dbd5 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/region/vo/RegionPageReqVO.java @@ -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; +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/region/vo/RegionRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/region/vo/RegionRespVO.java new file mode 100644 index 00000000..8930362b --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/region/vo/RegionRespVO.java @@ -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; +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/region/vo/RegionSaveReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/region/vo/RegionSaveReqVO.java new file mode 100644 index 00000000..d468e9cc --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/region/vo/RegionSaveReqVO.java @@ -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; +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/app/traceabilitycode/TraceabilityCodeController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/app/traceabilitycode/APPTraceabilityCodeController.java similarity index 97% rename from yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/app/traceabilitycode/TraceabilityCodeController.java rename to yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/app/traceabilitycode/APPTraceabilityCodeController.java index 384d1f47..06c44325 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/app/traceabilitycode/TraceabilityCodeController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/app/traceabilitycode/APPTraceabilityCodeController.java @@ -21,7 +21,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @RestController @RequestMapping("/app/traceability-code") @Validated -public class TraceabilityCodeController { +public class APPTraceabilityCodeController { @Resource private TraceabilityCodeService traceabilityCodeService; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/region/RegionDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/region/RegionDO.java new file mode 100644 index 00000000..f57960a3 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/region/RegionDO.java @@ -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; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/region/RegionMapper.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/region/RegionMapper.java new file mode 100644 index 00000000..876394df --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/region/RegionMapper.java @@ -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 { + + default PageResult selectPage(RegionPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(RegionDO::getCode, reqVO.getCode()) + .likeIfPresent(RegionDO::getName, reqVO.getName()) + .eqIfPresent(RegionDO::getParentId, reqVO.getParentId()) + .eqIfPresent(RegionDO::getLevel, reqVO.getLevel()) + .orderByDesc(RegionDO::getId) + ); + } +} 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 3e1f4671..0f1c1383 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 @@ -104,4 +104,7 @@ public interface ErrorCodeConstants { // ========== 模型管理 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, "生成二维码失败"); } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/region/RegionService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/region/RegionService.java new file mode 100644 index 00000000..3c3ea3b7 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/region/RegionService.java @@ -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 ids); + + RegionDO getRegion(String id); + + PageResult getRegionPage(RegionPageReqVO pageReqVO); +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/region/RegionServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/region/RegionServiceImpl.java new file mode 100644 index 00000000..c58321de --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/region/RegionServiceImpl.java @@ -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 ids) { + regionMapper.deleteBatch(RegionDO::getId, ids); + } + + @Override + public RegionDO getRegion(String id) { + return regionMapper.selectById(id); + } + + @Override + public PageResult getRegionPage(RegionPageReqVO pageReqVO) { + return regionMapper.selectPage(pageReqVO); + } +}