From 1e7d024269f3cdc8324768d4d2aca362b9681b64 Mon Sep 17 00:00:00 2001 From: "Ray.Hao" <1490493387@qq.com> Date: Fri, 9 Jan 2026 11:47:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=96=B0=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E5=88=86=E6=9E=90=E6=8E=A5=E5=8F=A3=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=EF=BC=8C=E8=B0=83=E6=95=B4=E6=9F=A5=E8=AF=A2=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=92=8C=E8=BF=94=E5=9B=9E=E5=AF=B9=E8=B1=A1=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StatisticsController.java | 2 +- .../templates/codegen/api-types.ts.vm | 13 +++++++--- .../resources/templates/codegen/api.ts.vm | 10 +++---- .../templates/codegen/controller.java.vm | 2 +- .../templates/codegen/index.curd.vue.vm | 26 +++++++++---------- .../resources/templates/codegen/index.vue.vm | 24 ++++++++--------- .../resources/templates/codegen/mapper.xml.vm | 2 +- .../resources/templates/codegen/query.java.vm | 2 +- .../templates/codegen/serviceImpl.java.vm | 4 +-- 9 files changed, 45 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/youlai/boot/system/controller/StatisticsController.java b/src/main/java/com/youlai/boot/system/controller/StatisticsController.java index 7cc9d109..50184c5b 100644 --- a/src/main/java/com/youlai/boot/system/controller/StatisticsController.java +++ b/src/main/java/com/youlai/boot/system/controller/StatisticsController.java @@ -20,7 +20,7 @@ import java.time.LocalDate; */ @Tag(name = "11.统计分析") @RestController -@RequestMapping("/statistics") +@RequestMapping("/api/v1/statistics") @RequiredArgsConstructor public class StatisticsController { diff --git a/src/main/resources/templates/codegen/api-types.ts.vm b/src/main/resources/templates/codegen/api-types.ts.vm index 611fd522..dbcc50cc 100644 --- a/src/main/resources/templates/codegen/api-types.ts.vm +++ b/src/main/resources/templates/codegen/api-types.ts.vm @@ -2,8 +2,10 @@ * ${entityName} $!{businessName}类型定义 */ -/** $!{businessName}分页查询参数 */ -export interface ${entityName}PageQuery extends PageQuery { + import type { BaseQueryParams } from "./common"; + +/** $!{businessName}查询参数 */ +export interface ${entityName}QueryParams extends BaseQueryParams { #foreach($fieldConfig in $fieldConfigs) #if($fieldConfig.isShowInQuery) #if("$!fieldConfig.fieldComment" != "") @@ -34,8 +36,11 @@ export interface ${entityName}Form { #end } -/** $!{businessName}分页对象 */ -export interface ${entityName}PageVo { +/** $!{businessName}详情对象 */ +export type ${entityName}Detail = ${entityName}Item & ${entityName}Form; + +/** $!{businessName}列表项 */ +export interface ${entityName}Item { #foreach($fieldConfig in $fieldConfigs) #if($fieldConfig.isShowInList) #if("$!fieldConfig.fieldComment" != "") diff --git a/src/main/resources/templates/codegen/api.ts.vm b/src/main/resources/templates/codegen/api.ts.vm index 944f9535..5310fd82 100644 --- a/src/main/resources/templates/codegen/api.ts.vm +++ b/src/main/resources/templates/codegen/api.ts.vm @@ -1,13 +1,13 @@ import request from "@/utils/request"; -import type { ${entityName}Form, ${entityName}PageQuery, ${entityName}PageVo } from "@/api/types"; +import type { ${entityName}Form, ${entityName}QueryParams, ${entityName}Item } from "@/types/api"; const ${entityUpperSnake}_BASE_URL = "/api/v1/${entityKebab}"; const ${entityName}API = { /** 获取${businessName}分页数据 */ - getPage(queryParams?: ${entityName}PageQuery) { - return request>({ - url: `${${entityUpperSnake}_BASE_URL}/page`, + getPage(queryParams?: ${entityName}QueryParams) { + return request>({ + url: `${${entityUpperSnake}_BASE_URL}`, method: "get", params: queryParams, }); @@ -18,7 +18,7 @@ const ${entityName}API = { * @param id ${businessName}ID * @returns ${businessName}表单数据 */ - getFormData(id: number) { + getFormData(id: string) { return request({ url: `${${entityUpperSnake}_BASE_URL}/${id}/form`, method: "get", diff --git a/src/main/resources/templates/codegen/controller.java.vm b/src/main/resources/templates/codegen/controller.java.vm index 768a0de8..5cd6ba94 100644 --- a/src/main/resources/templates/codegen/controller.java.vm +++ b/src/main/resources/templates/codegen/controller.java.vm @@ -33,7 +33,7 @@ public class ${entityName}Controller { private final ${entityName}Service ${entityLowerCamel}Service; @Operation(summary = "$!{businessName}分页列表") - @GetMapping("/page") + @GetMapping @PreAuthorize("@ss.hasPerm('${moduleName}:${entityKebab}:query')") public PageResult<${entityName}Vo> get${entityName}Page(${entityName}Query queryParams ) { IPage<${entityName}Vo> result = ${entityLowerCamel}Service.get${entityName}Page(queryParams); diff --git a/src/main/resources/templates/codegen/index.curd.vue.vm b/src/main/resources/templates/codegen/index.curd.vue.vm index 2d89bece..3efcc34f 100644 --- a/src/main/resources/templates/codegen/index.curd.vue.vm +++ b/src/main/resources/templates/codegen/index.curd.vue.vm @@ -1,7 +1,7 @@ @@ -64,7 +64,7 @@ defineOptions({ name: "$entityName" }); import ${entityName}API from "@/api/${moduleName}/${entityKebab}"; -import type { ${entityName}Form, ${entityName}PageQuery } from "@/api/types"; +import type { ${entityName}Form, ${entityName}QueryParams } from "@/types/api"; import type { IObject, IModalConfig, IContentConfig, ISearchConfig } from "@/components/CURD/types"; import usePage from "@/components/CURD/usePage"; @@ -135,7 +135,7 @@ const searchConfig: ISearchConfig = reactive({ }); // 列表配置 -const contentConfig: IContentConfig<${entityName}PageQuery> = reactive({ +const contentConfig: IContentConfig<${entityName}QueryParams> = reactive({ // 权限前缀 permPrefix: "${moduleName}:${entityKebab}", table: { @@ -151,8 +151,8 @@ const contentConfig: IContentConfig<${entityName}PageQuery> = reactive({ // 数据解析函数 parseData(res: any) { return { - total: res.total, - list: res.list, + total: res?.page?.total ?? 0, + list: res?.data ?? [], }; }, // 分页配置 @@ -358,7 +358,7 @@ const editModalConfig: IModalConfig<${entityName}Form> = reactive({ const handleOperateClick = (data: IObject) => { if (data.name === "edit") { handleEditClick(data.row, async () => { - return await ${entityName}API.getFormData(data.row.id); + return await ${entityName}API.getFormData(String(data.row.id)); }); } }; diff --git a/src/main/resources/templates/codegen/index.vue.vm b/src/main/resources/templates/codegen/index.vue.vm index 2f7841e4..813eeb89 100644 --- a/src/main/resources/templates/codegen/index.vue.vm +++ b/src/main/resources/templates/codegen/index.vue.vm @@ -148,7 +148,7 @@ size="small" link icon="edit" - @click="handleOpenDialog(scope.row.id)" + @click="handleOpenDialog(String(scope.row.id))" > 编辑 @@ -158,7 +158,7 @@ size="small" link icon="delete" - @click="handleDelete(scope.row.id)" + @click="handleDelete(String(scope.row.id))" > 删除 @@ -274,22 +274,22 @@ }); import ${entityName}API from "@/api/${moduleName}/${entityKebab}"; - import type { ${entityName}PageVo, ${entityName}Form, ${entityName}PageQuery } from "@/api/types"; + import type { ${entityName}Item, ${entityName}Form, ${entityName}QueryParams } from "@/types/api"; const queryFormRef = ref(); const dataFormRef = ref(); const loading = ref(false); - const removeIds = ref([]); + const removeIds = ref([]); const total = ref(0); - const queryParams = reactive<${entityName}PageQuery>({ + const queryParams = reactive<${entityName}QueryParams>({ pageNum: 1, pageSize: 10, }); // $!{businessName}表格数据 - const pageData = ref<${entityName}PageVo[]>([]); + const pageData = ref<${entityName}Item[]>([]); // 弹窗 const dialog = reactive({ @@ -315,9 +315,9 @@ function handleQuery() { loading.value = true; ${entityName}API.getPage(queryParams) - .then((data) => { - pageData.value = data.list; - total.value = data.total; + .then((res) => { + pageData.value = res.data; + total.value = res.page?.total ?? 0; }) .finally(() => { loading.value = false; @@ -333,11 +333,11 @@ /** 行复选框选中记录选中ID集合 */ function handleSelectionChange(selection: any) { - removeIds.value = selection.map((item: any) => item.id); + removeIds.value = selection.map((item: any) => String(item.id)); } /** 打开$!{businessName}弹窗 */ - function handleOpenDialog(id?: number) { + function handleOpenDialog(id?: string) { dialog.visible = true; if (id) { dialog.title = "修改$!{businessName}"; @@ -385,7 +385,7 @@ } /** 删除$!{businessName} */ - function handleDelete(id?: number) { + function handleDelete(id?: string) { const ids = [id || removeIds.value].join(","); if (!ids) { ElMessage.warning("请勾选删除项"); diff --git a/src/main/resources/templates/codegen/mapper.xml.vm b/src/main/resources/templates/codegen/mapper.xml.vm index f690e0ee..30d0cc95 100644 --- a/src/main/resources/templates/codegen/mapper.xml.vm +++ b/src/main/resources/templates/codegen/mapper.xml.vm @@ -3,7 +3,7 @@ - SELECT #if($fieldConfigs) #set ($fields = []) diff --git a/src/main/resources/templates/codegen/query.java.vm b/src/main/resources/templates/codegen/query.java.vm index 3707d96c..ee06df4a 100644 --- a/src/main/resources/templates/codegen/query.java.vm +++ b/src/main/resources/templates/codegen/query.java.vm @@ -13,7 +13,7 @@ import java.math.BigDecimal; #end /** - * $!{businessName}分页查询对象 + * $!{businessName}查询对象 * * @author ${author} * @since ${date} diff --git a/src/main/resources/templates/codegen/serviceImpl.java.vm b/src/main/resources/templates/codegen/serviceImpl.java.vm index 6a2e981f..3fe35d8b 100644 --- a/src/main/resources/templates/codegen/serviceImpl.java.vm +++ b/src/main/resources/templates/codegen/serviceImpl.java.vm @@ -40,11 +40,11 @@ public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, $ */ @Override public IPage<${entityName}Vo> get${entityName}Page(${entityName}Query queryParams) { - Page<${entityName}Vo> pageVo = this.baseMapper.get${entityName}Page( + Page<${entityName}Vo> pageResult = this.baseMapper.get${entityName}Page( new Page<>(queryParams.getPageNum(), queryParams.getPageSize()), queryParams ); - return pageVo; + return pageResult; } /**