提交poiType表的增删查改方法

This commit is contained in:
仙风道骨小半仙儿 2025-04-08 22:31:30 +08:00
parent d38648d847
commit 8a0f4de277
7 changed files with 367 additions and 0 deletions

View File

@ -0,0 +1,95 @@
package cn.iocoder.yudao.module.map.controller.admin.poitypes;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.constraints.*;
import jakarta.validation.*;
import jakarta.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.map.controller.admin.poitypes.vo.*;
import cn.iocoder.yudao.module.map.dal.dataobject.poitypes.PoiTypesDO;
import cn.iocoder.yudao.module.map.service.poitypes.PoiTypesService;
@Tag(name = "管理后台 - POI类型")
@RestController
@RequestMapping("/map/poi-types")
@Validated
public class PoiTypesController {
@Resource
private PoiTypesService poiTypesService;
@PostMapping("/create")
@Operation(summary = "创建POI类型")
@PreAuthorize("@ss.hasPermission('map:poi-types:create')")
public CommonResult<Long> createPoiTypes(@Valid @RequestBody PoiTypesSaveReqVO createReqVO) {
return success(poiTypesService.createPoiTypes(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新POI类型")
@PreAuthorize("@ss.hasPermission('map:poi-types:update')")
public CommonResult<Boolean> updatePoiTypes(@Valid @RequestBody PoiTypesSaveReqVO updateReqVO) {
poiTypesService.updatePoiTypes(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除POI类型")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('map:poi-types:delete')")
public CommonResult<Boolean> deletePoiTypes(@RequestParam("id") Long id) {
poiTypesService.deletePoiTypes(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得POI类型")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('map:poi-types:query')")
public CommonResult<PoiTypesRespVO> getPoiTypes(@RequestParam("id") Long id) {
PoiTypesDO poiTypes = poiTypesService.getPoiTypes(id);
return success(BeanUtils.toBean(poiTypes, PoiTypesRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得POI类型分页")
@PreAuthorize("@ss.hasPermission('map:poi-types:query')")
public CommonResult<PageResult<PoiTypesRespVO>> getPoiTypesPage(@Valid PoiTypesPageReqVO pageReqVO) {
PageResult<PoiTypesDO> pageResult = poiTypesService.getPoiTypesPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, PoiTypesRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出POI类型 Excel")
@PreAuthorize("@ss.hasPermission('map:poi-types:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportPoiTypesExcel(@Valid PoiTypesPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<PoiTypesDO> list = poiTypesService.getPoiTypesPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "POI类型.xls", "数据", PoiTypesRespVO.class,
BeanUtils.toBean(list, PoiTypesRespVO.class));
}
}

View File

@ -0,0 +1,46 @@
package cn.iocoder.yudao.module.map.controller.admin.poitypes.vo;
import lombok.*;
import java.util.*;
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 = "管理后台 - POI类型分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PoiTypesPageReqVO extends PageParam {
@Schema(description = "描述", example = "随便")
private String description;
@Schema(description = "类别编号", example = "2")
private String newType;
@Schema(description = "大类_中文")
private String bigCategoryCn;
@Schema(description = "中类_中文")
private String midCategoryCn;
@Schema(description = "小类_中文")
private String subCategoryCn;
@Schema(description = "大类_英文")
private String bigCategoryEn;
@Schema(description = "中类_英文")
private String midCategoryEn;
@Schema(description = "小类_英文")
private String subCategoryEn;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,55 @@
package cn.iocoder.yudao.module.map.controller.admin.poitypes.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - POI类型 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PoiTypesRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18981")
@ExcelProperty("编号")
private Long id;
@Schema(description = "描述", example = "随便")
@ExcelProperty("描述")
private String description;
@Schema(description = "类别编号", example = "2")
@ExcelProperty("类别编号")
private String newType;
@Schema(description = "大类_中文")
@ExcelProperty("大类_中文")
private String bigCategoryCn;
@Schema(description = "中类_中文")
@ExcelProperty("中类_中文")
private String midCategoryCn;
@Schema(description = "小类_中文")
@ExcelProperty("小类_中文")
private String subCategoryCn;
@Schema(description = "大类_英文")
@ExcelProperty("大类_英文")
private String bigCategoryEn;
@Schema(description = "中类_英文")
@ExcelProperty("中类_英文")
private String midCategoryEn;
@Schema(description = "小类_英文")
@ExcelProperty("小类_英文")
private String subCategoryEn;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,39 @@
package cn.iocoder.yudao.module.map.controller.admin.poitypes.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
@Schema(description = "管理后台 - POI类型新增/修改 Request VO")
@Data
public class PoiTypesSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18981")
private Long id;
@Schema(description = "描述", example = "随便")
private String description;
@Schema(description = "类别编号", example = "2")
private String newType;
@Schema(description = "大类_中文")
private String bigCategoryCn;
@Schema(description = "中类_中文")
private String midCategoryCn;
@Schema(description = "小类_中文")
private String subCategoryCn;
@Schema(description = "大类_英文")
private String bigCategoryEn;
@Schema(description = "中类_英文")
private String midCategoryEn;
@Schema(description = "小类_英文")
private String subCategoryEn;
}

View File

@ -0,0 +1,63 @@
package cn.iocoder.yudao.module.map.dal.dataobject.poitypes;
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;
/**
* POI类型 DO
*
* @author
*/
@TableName("map_poi_types")
@KeySequence("map_poi_types_seq") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 MySQL 等数据库可不写
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PoiTypesDO extends BaseDO {
/**
* 编号
*/
@TableId
private Long id;
/**
* 描述
*/
private String description;
/**
* 类别编号
*/
private String newType;
/**
* 大类_中文
*/
private String bigCategoryCn;
/**
* 中类_中文
*/
private String midCategoryCn;
/**
* 小类_中文
*/
private String subCategoryCn;
/**
* 大类_英文
*/
private String bigCategoryEn;
/**
* 中类_英文
*/
private String midCategoryEn;
/**
* 小类_英文
*/
private String subCategoryEn;
}

View File

@ -0,0 +1,57 @@
package cn.iocoder.yudao.module.map.dal.mysql.poitypes;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.map.dal.dataobject.poitypes.PoiTypesDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.map.controller.admin.poitypes.vo.*;
/**
* POI类型 Mapper
*
* @author
*/
@Mapper
public interface PoiTypesMapper extends BaseMapperX<PoiTypesDO> {
default PageResult<PoiTypesDO> selectPage(PoiTypesPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<PoiTypesDO>()
.eqIfPresent(PoiTypesDO::getDescription, reqVO.getDescription())
.eqIfPresent(PoiTypesDO::getNewType, reqVO.getNewType())
.likeIfPresent(PoiTypesDO::getBigCategoryCn, reqVO.getBigCategoryCn())
.likeIfPresent(PoiTypesDO::getMidCategoryCn, reqVO.getMidCategoryCn())
.likeIfPresent(PoiTypesDO::getSubCategoryCn, reqVO.getSubCategoryCn())
.likeIfPresent(PoiTypesDO::getBigCategoryEn, reqVO.getBigCategoryEn())
.likeIfPresent(PoiTypesDO::getMidCategoryEn, reqVO.getMidCategoryEn())
.likeIfPresent(PoiTypesDO::getSubCategoryEn, reqVO.getSubCategoryEn())
.betweenIfPresent(PoiTypesDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(PoiTypesDO::getId));
}
// 根据分词查询的list结果对每一个词进行CategoryCn字段的查询返回NewType查询集合
default List<PoiTypesDO> selectByWords(List<String> words) {
LambdaQueryWrapperX<PoiTypesDO> pt = new LambdaQueryWrapperX<PoiTypesDO>();
// 循环添加查询条件 用or语句
boolean firstOr = true;
for (String word : words) {
if (firstOr) {
pt.like(PoiTypesDO::getBigCategoryCn, word)
.or()
.like(PoiTypesDO::getMidCategoryCn, word)
.or()
.like(PoiTypesDO::getSubCategoryCn, word);
firstOr = false;
} else {
pt.or().like(PoiTypesDO::getBigCategoryCn, word)
.or()
.like(PoiTypesDO::getMidCategoryCn, word)
.or()
.like(PoiTypesDO::getSubCategoryCn, word);
}
}
return selectList(pt);
}
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.map.dal.mysql.poitypes.PoiTypesMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>