From b5b0a8b66f3d9298b62cc6ed4c70afd75a8dca60 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Thu, 17 Jul 2025 02:34:24 -0700 Subject: [PATCH 01/21] feat: Add model API --- .../sql/mysql/create_model_ddl_2025_0717.sql | 20 ++ .../com/tinyengine/it/common/enums/Enums.java | 47 +++++ .../it/controller/ModelController.java | 156 +++++++++++++++ .../com/tinyengine/it/mapper/ModelMapper.java | 40 ++++ .../tinyengine/it/model/dto/MethodDto.java | 29 +++ .../it/model/dto/ParametersDto.java | 26 +++ .../it/model/dto/RequestParameter.java | 29 +++ .../it/model/dto/ResponseParameter.java | 26 +++ .../com/tinyengine/it/model/entity/Model.java | 55 ++++++ .../it/service/material/ModelService.java | 57 ++++++ .../material/impl/ModelServiceImpl.java | 160 +++++++++++++++ .../main/resources/mappers/ModelMapper.xml | 183 ++++++++++++++++++ .../main/resources/mappers/TenantMapper.xml | 2 +- 13 files changed, 829 insertions(+), 1 deletion(-) create mode 100644 app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql create mode 100644 base/src/main/java/com/tinyengine/it/controller/ModelController.java create mode 100644 base/src/main/java/com/tinyengine/it/mapper/ModelMapper.java create mode 100644 base/src/main/java/com/tinyengine/it/model/dto/MethodDto.java create mode 100644 base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java create mode 100644 base/src/main/java/com/tinyengine/it/model/dto/RequestParameter.java create mode 100644 base/src/main/java/com/tinyengine/it/model/dto/ResponseParameter.java create mode 100644 base/src/main/java/com/tinyengine/it/model/entity/Model.java create mode 100644 base/src/main/java/com/tinyengine/it/service/material/ModelService.java create mode 100644 base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java create mode 100644 base/src/main/resources/mappers/ModelMapper.xml diff --git a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql new file mode 100644 index 00000000..dbbe651e --- /dev/null +++ b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql @@ -0,0 +1,20 @@ +drop table if exists `t_model`; + +create table `t_model` +( + `id` int not null auto_increment comment '主键id', + `name` varchar(255) comment '名称', + `version` varchar(255) comment '版本', + `parameters` varchar(2000) not null comment '字段参数', + `method` longtext comment '方法', + `description` varchar(2000) comment '描述', + `created_by` varchar(60) not null comment '创建人', + `created_time` timestamp not null default current_timestamp comment '创建时间', + `last_updated_by` varchar(60) not null comment '最后修改人', + `last_updated_time` timestamp not null default current_timestamp comment '更新时间', + `tenant_id` varchar(60) comment '租户id', + `renter_id` varchar(60) comment '业务租户id', + `site_id` varchar(60) comment '站点id,设计预留字段', + primary key (`id`) using btree, + unique index `u_idx_model` (`name`,`version`) using btree +) engine = innodb comment = '模型表'; diff --git a/base/src/main/java/com/tinyengine/it/common/enums/Enums.java b/base/src/main/java/com/tinyengine/it/common/enums/Enums.java index c534de21..baab6b12 100644 --- a/base/src/main/java/com/tinyengine/it/common/enums/Enums.java +++ b/base/src/main/java/com/tinyengine/it/common/enums/Enums.java @@ -1003,4 +1003,51 @@ public String getValue() { return value; } } + + public enum methodName { + + /** + * CREATED name. + */ + CREATED("新增方法"), + + /** + * UPDATE name. + */ + UPDATE("修改方法"), + + /** + * DELETE name. + */ + DELETE("删除方法"), + + /** + * QUERY name. + */ + QUERY("查询方法"), + + /** + * NAME name. + */ + NAME("params"), + /** + * TYPE name. + */ + TYPE("Object"); + + private final String value; + + methodName(String value) { + this.value = value; + } + + /** + * Gets value. + * + * @return the value + */ + public String getValue() { + return value; + } + } } diff --git a/base/src/main/java/com/tinyengine/it/controller/ModelController.java b/base/src/main/java/com/tinyengine/it/controller/ModelController.java new file mode 100644 index 00000000..ca3fbfa0 --- /dev/null +++ b/base/src/main/java/com/tinyengine/it/controller/ModelController.java @@ -0,0 +1,156 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ + +package com.tinyengine.it.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.tinyengine.it.common.base.Result; +import com.tinyengine.it.common.log.SystemControllerLog; +import com.tinyengine.it.model.entity.Model; +import com.tinyengine.it.service.material.ModelService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * 模型 + * + * @since 2025-07-17 + */ +@Validated +@RestController +@RequestMapping("/material-center/api") +@Tag(name = "模型") +public class ModelController { + /** + * The Model service. + */ + @Autowired + private ModelService modelService; + + /** + * 查询表Model信息 + * + * @return all Model信息 + */ + @Operation(summary = "查询表Model信息列表", description = "查询表Model信息列表", parameters = { + @Parameter(name = "currentPage", description = "当前页"), + @Parameter(name = "pageSize", description = "页数") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) + @SystemControllerLog(description = "查询表Model信息列表") + @GetMapping("/model/list") + public Result> getAllModel(@RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "pageSize", required = false) Integer pageSize) { + Page modelPage = modelService.pageQuery(currentPage, pageSize); + return Result.success(modelPage); + } + + /** + * 创建Model + * + * @param model the model + * @return Model信息 result + */ + @Operation(summary = "创建Model", description = "创建Model", parameters = { + @Parameter(name = "Model", description = "Model入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", content = @Content(mediaType = "application/json", + schema = @Schema(implementation = Model.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) + @SystemControllerLog(description = "创建Model") + @PostMapping("/model/create") + public Result createModel(@Valid @RequestBody Model model) { + Model result = modelService.createModel(model); + return Result.success(result); + } + + /** + * 修改Model信息 + * + * @param id the id + * @param model the model + * @return Model信息 result + */ + @Operation(summary = "修改单个Model信息", description = "修改单个Model信息", parameters = { + @Parameter(name = "id", description = "appId"), + @Parameter(name = "Model", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) + @SystemControllerLog(description = "修改单个Model信息") + @PostMapping("/model/update/{id}") + public Result updateModel(@PathVariable Integer id, @RequestBody Model model) { + model.setId(id); + Model result = modelService.updateModelById(model); + return Result.success(result); + } + + /** + * 删除Model信息 + * + * @param id the id + * @return app信息 result + */ + @Operation(summary = "删除Model信息", description = "删除Model信息", parameters = { + @Parameter(name = "id", description = "Model主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) + @SystemControllerLog(description = "删除Model信息") + @DeleteMapping("/model/delete/{id}") + public Result deleteModel(@PathVariable Integer id) { + Model result = modelService.deleteModelById(id); + return Result.success(result); + } + + /** + * 获取Model信息详情 + * + * @param id the id + * @return the result + */ + @Operation(summary = "获取Model信息详情", description = "获取Model信息详情", parameters = { + @Parameter(name = "id", description = "appId") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), + @ApiResponse(responseCode = "400", description = "请求失败")}) + @SystemControllerLog(description = "获取Model信息详情") + @GetMapping("/model/detail/{id}") + public Result detail(@PathVariable Integer id) { + Model result = modelService.queryModelById(id); + return Result.success(result); + } +} diff --git a/base/src/main/java/com/tinyengine/it/mapper/ModelMapper.java b/base/src/main/java/com/tinyengine/it/mapper/ModelMapper.java new file mode 100644 index 00000000..1ecbbf2a --- /dev/null +++ b/base/src/main/java/com/tinyengine/it/mapper/ModelMapper.java @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ + +package com.tinyengine.it.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.tinyengine.it.model.entity.Model; + +/** + * The interface Model mapper. + * + * @since 2025-07-17 + */ +public interface ModelMapper extends BaseMapper { + /** + * 新增表t_model数据 + * + * @param model the model + * @return the int + */ + int createModel(Model model); + + /** + * 修改表t_model数据 + * + * @param model the model + * @return the int + */ + int updateModelById(Model model); + +} diff --git a/base/src/main/java/com/tinyengine/it/model/dto/MethodDto.java b/base/src/main/java/com/tinyengine/it/model/dto/MethodDto.java new file mode 100644 index 00000000..c3dff4c9 --- /dev/null +++ b/base/src/main/java/com/tinyengine/it/model/dto/MethodDto.java @@ -0,0 +1,29 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ + +package com.tinyengine.it.model.dto; + +import lombok.Data; + +import java.util.List; + +/** + * The type Method dto. + * + * @since 2025-07-17 + */ +@Data +public class MethodDto { + private String name; + private List requestParameters; + private List responseParameters; +} diff --git a/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java b/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java new file mode 100644 index 00000000..0d01da7b --- /dev/null +++ b/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java @@ -0,0 +1,26 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ + +package com.tinyengine.it.model.dto; + +import lombok.Data; + +/** + * The type Parameters dto. + * + * @since 2025-07-17 + */ +@Data +public class ParametersDto { + private String prop; + private String type; +} diff --git a/base/src/main/java/com/tinyengine/it/model/dto/RequestParameter.java b/base/src/main/java/com/tinyengine/it/model/dto/RequestParameter.java new file mode 100644 index 00000000..dbc7048d --- /dev/null +++ b/base/src/main/java/com/tinyengine/it/model/dto/RequestParameter.java @@ -0,0 +1,29 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ + +package com.tinyengine.it.model.dto; + +import lombok.Data; + +import java.util.List; + +/** + * The type responseParameter dto. + * + * @since 2025-07-17 + */ +@Data +public class RequestParameter { + private String name; + private String type; + private List children; +} diff --git a/base/src/main/java/com/tinyengine/it/model/dto/ResponseParameter.java b/base/src/main/java/com/tinyengine/it/model/dto/ResponseParameter.java new file mode 100644 index 00000000..2e4185a3 --- /dev/null +++ b/base/src/main/java/com/tinyengine/it/model/dto/ResponseParameter.java @@ -0,0 +1,26 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ + +package com.tinyengine.it.model.dto; + +import lombok.Data; + +/** + * The type responseParameter dto. + * + * @since 2025-07-17 + */ +@Data +public class ResponseParameter { + private String name; + private String type; +} diff --git a/base/src/main/java/com/tinyengine/it/model/entity/Model.java b/base/src/main/java/com/tinyengine/it/model/entity/Model.java new file mode 100644 index 00000000..a9de61cf --- /dev/null +++ b/base/src/main/java/com/tinyengine/it/model/entity/Model.java @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ + + +package com.tinyengine.it.model.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.tinyengine.it.common.base.BaseEntity; +import com.tinyengine.it.common.handler.ListTypeHandler; +import com.tinyengine.it.model.dto.MethodDto; +import com.tinyengine.it.model.dto.ParametersDto; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +/** + * 模型表 + * + * @since 2025-07-17 + */ +@Getter +@Setter +@TableName("t_model") +@Schema(name = "Model", description = "模型表") +public class Model extends BaseEntity { + @Schema(name = "name", description = "名称") + private String name; + + @Schema(name = "version", description = "版本") + private String version; + + @Schema(name = "parameters", description = "字段参数") + @TableField(typeHandler = ListTypeHandler.class) + private List parameters; + + @Schema(name = "method", description = "方法") + @TableField(typeHandler = ListTypeHandler.class) + private List method; + + @Schema(name = "description", description = "描述") + private String description; + +} diff --git a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java new file mode 100644 index 00000000..a777e816 --- /dev/null +++ b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ + +package com.tinyengine.it.service.material; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.tinyengine.it.model.entity.Model; + +public interface ModelService extends IService{ + /** + * 查询表t_model信息 + * + * @return the Model + */ + Model queryModelById(Integer id); + + /** + * 分页查询表t_model + * + * @return the Page + */ + Page pageQuery(int currentPage, int pageSize); + + /** + * 创建t_model + * + * @return the model + * @ param the model + */ + Model createModel(Model model); + + /** + * 删除t_model + * + * @return the Model + * @ param the id + */ + Model deleteModelById(Integer id); + + /** + * 修改t_model + * + * @return the model + * @ param the model + */ + Model updateModelById(Model model); +} diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java new file mode 100644 index 00000000..dc154fcd --- /dev/null +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -0,0 +1,160 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ + +package com.tinyengine.it.service.material.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.tinyengine.it.common.enums.Enums; +import com.tinyengine.it.common.exception.ExceptionEnum; +import com.tinyengine.it.common.exception.ServiceException; +import com.tinyengine.it.common.log.SystemServiceLog; +import com.tinyengine.it.mapper.ModelMapper; +import com.tinyengine.it.model.dto.MethodDto; +import com.tinyengine.it.model.dto.RequestParameter; +import com.tinyengine.it.model.dto.ResponseParameter; +import com.tinyengine.it.model.entity.Model; +import com.tinyengine.it.service.material.ModelService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@Service +@Slf4j +public class ModelServiceImpl extends ServiceImpl implements ModelService { + /** + * 查询表t_model信息 + * + * @param id + * @return the Model + */ + @Override + @SystemServiceLog(description = "根据id查询model实现方法") + public Model queryModelById(Integer id) { + return this.baseMapper.selectById(id); + } + + /** + * 分页查询表t_model信息 + * + * @return the list + */ + @Override + @SystemServiceLog(description = "分页查询model实现方法") + public Page pageQuery(int currentPage, int pageSize) { + Page page = new Page<>(currentPage, pageSize); + QueryWrapper queryWrapper = new QueryWrapper<>(); + page(page, queryWrapper); + return page; + } + + /** + * 创建t_material + * + * @param model + * @return the model + * @ param the model + */ + @Override + @SystemServiceLog(description = "创建model实现方法") + public Model createModel(Model model) { + List methodDtos = new ArrayList<>(); + methodDtos.add(getMethodDto(Enums.methodName.CREATED.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.UPDATE.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.QUERY.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.DELETE.getValue(), model)); + model.setMethod(methodDtos); + int result = this.baseMapper.createModel(model); + if (result != 1) { + throw new ServiceException(ExceptionEnum.CM001.getResultCode(), ExceptionEnum.CM001.getResultCode()); + } + return model; + } + + /** + * 删除t_model + * + * @param id + * @return the Model + * @ param the id + */ + @Override + @SystemServiceLog(description = "根据id删除model实现方法") + public Model deleteModelById(Integer id) { + Model model = this.baseMapper.selectById(id); + int result = this.baseMapper.deleteById(id); + if (result != 1) { + throw new ServiceException(ExceptionEnum.CM001.getResultCode(), ExceptionEnum.CM001.getResultCode()); + } + return model; + } + + /** + * 修改t_model + * + * @param model + * @return the model + * @ param the model + */ + @Override + @SystemServiceLog(description = "根据id修改model实现方法") + public Model updateModelById(Model model) { + List methodDtos = new ArrayList<>(); + methodDtos.add(getMethodDto(Enums.methodName.CREATED.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.UPDATE.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.QUERY.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.DELETE.getValue(), model)); + model.setMethod(methodDtos); + if (model.getId() == null) { + throw new ServiceException(ExceptionEnum.CM002.getResultCode(), ExceptionEnum.CM002.getResultCode()); + } + int result = this.baseMapper.updateModelById(model); + if (result != 1) { + throw new ServiceException(ExceptionEnum.CM001.getResultCode(), ExceptionEnum.CM001.getResultCode()); + } + Model modelResult = this.baseMapper.selectById(model.getId()); + return modelResult; + } + + private MethodDto getMethodDto(String name, Model model) { + MethodDto methodDto = new MethodDto(); + methodDto.setName(name); + RequestParameter requestParameter = new RequestParameter(); + requestParameter.setName("id"); + requestParameter.setType("Number"); + + if (name != Enums.methodName.DELETE.getValue()) { + requestParameter.setName(Enums.methodName.NAME.getValue()); + requestParameter.setType(Enums.methodName.TYPE.getValue()); + requestParameter.setChildren(model.getParameters()); + } + + ResponseParameter code = new ResponseParameter(); + code.setName("code"); + code.setType("Number"); + ResponseParameter message = new ResponseParameter(); + message.setName("message"); + message.setType("String"); + List responseParameterList = new ArrayList<>(); + responseParameterList.add(code); + responseParameterList.add(message); + methodDto.setRequestParameters(Arrays.asList(requestParameter)); + methodDto.setResponseParameters(responseParameterList); + return methodDto; + } + + +} diff --git a/base/src/main/resources/mappers/ModelMapper.xml b/base/src/main/resources/mappers/ModelMapper.xml new file mode 100644 index 00000000..cedf7cdd --- /dev/null +++ b/base/src/main/resources/mappers/ModelMapper.xml @@ -0,0 +1,183 @@ + + + + + + + + + id + , `name`, version, parameters, `method`, description, created_by, last_updated_by, created_time, last_updated_time, tenant_id, renter_id, site_id + + + + + + AND `name` = #{name} + + + AND version = #{version} + + + AND parameters = #{parameters} + + + AND `method` = #{method} + + + AND description = #{description} + + + AND created_by = #{createdBy} + + + AND last_updated_by = #{lastUpdatedBy} + + + AND created_time = #{createdTime} + + + AND last_updated_time = #{lastUpdatedTime} + + + AND tenant_id = #{tenantId} + + + AND renter_id = #{renterId} + + + AND site_id = #{siteId} + + + + + + + + `name` = #{name}, + + + version = #{version}, + + + parameters = #{parameters}, + + + `method` = #{method}, + + + description = #{description}, + + + created_by = #{createdBy}, + + + last_updated_by = #{lastUpdatedBy}, + + + created_time = #{createdTime}, + + + last_updated_time = #{lastUpdatedTime}, + + + tenant_id = #{tenantId}, + + + renter_id = #{renterId}, + + + site_id = #{siteId}, + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE + FROM t_model + WHERE id = #{id} + + + + + UPDATE t_model + + + + WHERE + id=#{id} + + + + + INSERT INTO t_model ( id + , `name` + , version + , parameters + , `method` + , description + , created_by + , last_updated_by + , created_time + , last_updated_time + , tenant_id + , renter_id + , site_id) + VALUES ( #{id} + , #{name} + , #{version} + , #{parameters} + , #{method} + , #{description} + , #{createdBy} + , #{lastUpdatedBy} + , #{createdTime} + , #{lastUpdatedTime} + , #{tenantId} + , #{renterId} + , #{siteId}) + + diff --git a/base/src/main/resources/mappers/TenantMapper.xml b/base/src/main/resources/mappers/TenantMapper.xml index 7486be7f..dbf43841 100644 --- a/base/src/main/resources/mappers/TenantMapper.xml +++ b/base/src/main/resources/mappers/TenantMapper.xml @@ -142,6 +142,6 @@ , #{lastUpdatedBy} , #{createdTime} , #{lastUpdatedTime} - , #{orgCode} + , #{orgCode}) From bba181a6140b57a138dcfecfd99c00165149c4e9 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Fri, 18 Jul 2025 02:04:55 -0700 Subject: [PATCH 02/21] feat: Model add query method --- .../sql/h2/create_model_ddl_2025_0717.sql | 20 +++++++++++++++++ .../sql/h2/update_all_tables_ddl.sql | 3 --- .../it/controller/ModelController.java | 22 +++++++++++++++++++ .../it/service/material/ModelService.java | 9 ++++++++ .../material/impl/ModelServiceImpl.java | 14 ++++++++++++ .../mysql/init/create_model_ddl_2025_0717.sql | 20 +++++++++++++++++ 6 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql create mode 100644 docker-deploy-data/mysql/init/create_model_ddl_2025_0717.sql diff --git a/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql new file mode 100644 index 00000000..dbbe651e --- /dev/null +++ b/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql @@ -0,0 +1,20 @@ +drop table if exists `t_model`; + +create table `t_model` +( + `id` int not null auto_increment comment '主键id', + `name` varchar(255) comment '名称', + `version` varchar(255) comment '版本', + `parameters` varchar(2000) not null comment '字段参数', + `method` longtext comment '方法', + `description` varchar(2000) comment '描述', + `created_by` varchar(60) not null comment '创建人', + `created_time` timestamp not null default current_timestamp comment '创建时间', + `last_updated_by` varchar(60) not null comment '最后修改人', + `last_updated_time` timestamp not null default current_timestamp comment '更新时间', + `tenant_id` varchar(60) comment '租户id', + `renter_id` varchar(60) comment '业务租户id', + `site_id` varchar(60) comment '站点id,设计预留字段', + primary key (`id`) using btree, + unique index `u_idx_model` (`name`,`version`) using btree +) engine = innodb comment = '模型表'; diff --git a/app/src/main/resources/sql/h2/update_all_tables_ddl.sql b/app/src/main/resources/sql/h2/update_all_tables_ddl.sql index 879a44c7..7a944faf 100644 --- a/app/src/main/resources/sql/h2/update_all_tables_ddl.sql +++ b/app/src/main/resources/sql/h2/update_all_tables_ddl.sql @@ -27,6 +27,3 @@ ALTER TABLE t_platform MODIFY tenant_id varchar(60) NULL; ALTER TABLE t_platform_history MODIFY tenant_id varchar(60) NULL; ALTER TABLE t_task_record MODIFY tenant_id varchar(60) NULL; ALTER TABLE t_user MODIFY tenant_id varchar(60) NULL; - -ALTER TABLE t_component_library ADD app_id int NULL; - diff --git a/base/src/main/java/com/tinyengine/it/controller/ModelController.java b/base/src/main/java/com/tinyengine/it/controller/ModelController.java index ca3fbfa0..cbc5f697 100644 --- a/base/src/main/java/com/tinyengine/it/controller/ModelController.java +++ b/base/src/main/java/com/tinyengine/it/controller/ModelController.java @@ -35,6 +35,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * 模型 * @@ -72,6 +74,26 @@ public Result> getAllModel(@RequestParam(value = "currentPage", requ return Result.success(modelPage); } + /** + * 根据name查询表Model信息 + * + * @return Model信息 + */ + @Operation(summary = "根据name查询表Model信息", description = "根据name查询表Model信息", parameters = { + @Parameter(name = "currentPage", description = "当前页"), + @Parameter(name = "pageSize", description = "页数") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) + @SystemControllerLog(description = "根据name查询表Model信息") + @GetMapping("/model/find") + public Result> getModelByName(@RequestParam(value = "name", required = false) String name) { + List modelPage = modelService.getModelByName(name); + return Result.success(modelPage); + } + /** * 创建Model * diff --git a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java index a777e816..72b4dc5e 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java +++ b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java @@ -16,6 +16,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.tinyengine.it.model.entity.Model; +import java.util.List; + public interface ModelService extends IService{ /** * 查询表t_model信息 @@ -24,6 +26,13 @@ public interface ModelService extends IService{ */ Model queryModelById(Integer id); + /** + * 根据name查询表t_model信息 + * + * @return the model list + */ + List getModelByName(String name); + /** * 分页查询表t_model * diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index dc154fcd..52977a14 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -47,6 +47,20 @@ public Model queryModelById(Integer id) { return this.baseMapper.selectById(id); } + /** + * 根据name查询表t_model信息 + * + * @param name + * @return the model list + */ + @Override + @SystemServiceLog(description = "根据名称查询model实现方法") + public List getModelByName(String name) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like("name", name); + return this.baseMapper.selectList(queryWrapper); + } + /** * 分页查询表t_model信息 * diff --git a/docker-deploy-data/mysql/init/create_model_ddl_2025_0717.sql b/docker-deploy-data/mysql/init/create_model_ddl_2025_0717.sql new file mode 100644 index 00000000..dbbe651e --- /dev/null +++ b/docker-deploy-data/mysql/init/create_model_ddl_2025_0717.sql @@ -0,0 +1,20 @@ +drop table if exists `t_model`; + +create table `t_model` +( + `id` int not null auto_increment comment '主键id', + `name` varchar(255) comment '名称', + `version` varchar(255) comment '版本', + `parameters` varchar(2000) not null comment '字段参数', + `method` longtext comment '方法', + `description` varchar(2000) comment '描述', + `created_by` varchar(60) not null comment '创建人', + `created_time` timestamp not null default current_timestamp comment '创建时间', + `last_updated_by` varchar(60) not null comment '最后修改人', + `last_updated_time` timestamp not null default current_timestamp comment '更新时间', + `tenant_id` varchar(60) comment '租户id', + `renter_id` varchar(60) comment '业务租户id', + `site_id` varchar(60) comment '站点id,设计预留字段', + primary key (`id`) using btree, + unique index `u_idx_model` (`name`,`version`) using btree +) engine = innodb comment = '模型表'; From a88c460387129ac68e04e6df909d5e99b238fcfe Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Fri, 18 Jul 2025 02:14:47 -0700 Subject: [PATCH 03/21] feat: Model add query method --- .../com/tinyengine/it/controller/ModelController.java | 11 ++++++----- .../tinyengine/it/service/material/ModelService.java | 2 +- .../it/service/material/impl/ModelServiceImpl.java | 3 ++- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/controller/ModelController.java b/base/src/main/java/com/tinyengine/it/controller/ModelController.java index cbc5f697..2211a5cf 100644 --- a/base/src/main/java/com/tinyengine/it/controller/ModelController.java +++ b/base/src/main/java/com/tinyengine/it/controller/ModelController.java @@ -60,7 +60,8 @@ public class ModelController { */ @Operation(summary = "查询表Model信息列表", description = "查询表Model信息列表", parameters = { @Parameter(name = "currentPage", description = "当前页"), - @Parameter(name = "pageSize", description = "页数") + @Parameter(name = "pageSize", description = "页数"), + @Parameter(name = "name", description = "模型名称") }, responses = { @ApiResponse(responseCode = "200", description = "返回信息", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), @@ -69,8 +70,9 @@ public class ModelController { @SystemControllerLog(description = "查询表Model信息列表") @GetMapping("/model/list") public Result> getAllModel(@RequestParam(value = "currentPage", required = false) Integer currentPage, - @RequestParam(value = "pageSize", required = false) Integer pageSize) { - Page modelPage = modelService.pageQuery(currentPage, pageSize); + @RequestParam(value = "pageSize", required = false) Integer pageSize, + @RequestParam(value = "name", required = false) String name) { + Page modelPage = modelService.pageQuery(currentPage, pageSize, name); return Result.success(modelPage); } @@ -80,8 +82,7 @@ public Result> getAllModel(@RequestParam(value = "currentPage", requ * @return Model信息 */ @Operation(summary = "根据name查询表Model信息", description = "根据name查询表Model信息", parameters = { - @Parameter(name = "currentPage", description = "当前页"), - @Parameter(name = "pageSize", description = "页数") + @Parameter(name = "name", description = "名称"), }, responses = { @ApiResponse(responseCode = "200", description = "返回信息", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), diff --git a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java index 72b4dc5e..ca86c40b 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java +++ b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java @@ -38,7 +38,7 @@ public interface ModelService extends IService{ * * @return the Page */ - Page pageQuery(int currentPage, int pageSize); + Page pageQuery(int currentPage, int pageSize, String name); /** * 创建t_model diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index 52977a14..42ea091b 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -68,9 +68,10 @@ public List getModelByName(String name) { */ @Override @SystemServiceLog(description = "分页查询model实现方法") - public Page pageQuery(int currentPage, int pageSize) { + public Page pageQuery(int currentPage, int pageSize, String name) { Page page = new Page<>(currentPage, pageSize); QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like("name", name); page(page, queryWrapper); return page; } From f06b026450e441cc188b39ecb34d7679a382ef72 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Mon, 21 Jul 2025 21:01:21 -0700 Subject: [PATCH 04/21] feat: fix model query method --- .../tinyengine/it/service/material/impl/ModelServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index 42ea091b..c755bed6 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -71,7 +71,9 @@ public List getModelByName(String name) { public Page pageQuery(int currentPage, int pageSize, String name) { Page page = new Page<>(currentPage, pageSize); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like("name", name); + if(name != null && !name.isEmpty()){ + queryWrapper.like("name", name); + } page(page, queryWrapper); return page; } From 6b4c6741be4cef900262f63f8cac3e40de0bb774 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Mon, 21 Jul 2025 23:35:56 -0700 Subject: [PATCH 05/21] feat: fix model create method --- .../com/tinyengine/it/model/dto/RequestParameter.java | 2 +- .../com/tinyengine/it/model/dto/ResponseParameter.java | 2 +- .../it/service/material/impl/ModelServiceImpl.java | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/model/dto/RequestParameter.java b/base/src/main/java/com/tinyengine/it/model/dto/RequestParameter.java index dbc7048d..109f2086 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/RequestParameter.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/RequestParameter.java @@ -23,7 +23,7 @@ */ @Data public class RequestParameter { - private String name; + private String prop; private String type; private List children; } diff --git a/base/src/main/java/com/tinyengine/it/model/dto/ResponseParameter.java b/base/src/main/java/com/tinyengine/it/model/dto/ResponseParameter.java index 2e4185a3..2f42152c 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/ResponseParameter.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/ResponseParameter.java @@ -21,6 +21,6 @@ */ @Data public class ResponseParameter { - private String name; + private String prop; private String type; } diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index c755bed6..1e463611 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -150,20 +150,20 @@ private MethodDto getMethodDto(String name, Model model) { MethodDto methodDto = new MethodDto(); methodDto.setName(name); RequestParameter requestParameter = new RequestParameter(); - requestParameter.setName("id"); + requestParameter.setProp("id"); requestParameter.setType("Number"); if (name != Enums.methodName.DELETE.getValue()) { - requestParameter.setName(Enums.methodName.NAME.getValue()); + requestParameter.setProp(Enums.methodName.NAME.getValue()); requestParameter.setType(Enums.methodName.TYPE.getValue()); requestParameter.setChildren(model.getParameters()); } ResponseParameter code = new ResponseParameter(); - code.setName("code"); + code.setProp("code"); code.setType("Number"); ResponseParameter message = new ResponseParameter(); - message.setName("message"); + message.setProp("message"); message.setType("String"); List responseParameterList = new ArrayList<>(); responseParameterList.add(code); From b4a515b93dc74f9e077d1dd797111eb3a2b4a95b Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Mon, 21 Jul 2025 23:48:38 -0700 Subject: [PATCH 06/21] feat: fix model create method --- .../service/material/impl/ModelServiceImpl.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index 1e463611..e5d61d64 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -159,18 +159,27 @@ private MethodDto getMethodDto(String name, Model model) { requestParameter.setChildren(model.getParameters()); } + List responseParameterList = getResponseParameters(); + methodDto.setRequestParameters(Arrays.asList(requestParameter)); + methodDto.setResponseParameters(responseParameterList); + return methodDto; + } + + private static List getResponseParameters() { ResponseParameter code = new ResponseParameter(); code.setProp("code"); code.setType("Number"); ResponseParameter message = new ResponseParameter(); message.setProp("message"); message.setType("String"); + ResponseParameter data = new ResponseParameter(); + data.setProp("data"); + data.setType("Array"); List responseParameterList = new ArrayList<>(); responseParameterList.add(code); responseParameterList.add(message); - methodDto.setRequestParameters(Arrays.asList(requestParameter)); - methodDto.setResponseParameters(responseParameterList); - return methodDto; + responseParameterList.add(data); + return responseParameterList; } From 775ba737b792ec8e60b9b30157669cb61b93b831 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Tue, 22 Jul 2025 01:52:36 -0700 Subject: [PATCH 07/21] feat: fix parametersDto --- .../src/main/java/com/tinyengine/it/model/dto/ParametersDto.java | 1 + 1 file changed, 1 insertion(+) diff --git a/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java b/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java index 0d01da7b..6761596e 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java @@ -22,5 +22,6 @@ @Data public class ParametersDto { private String prop; + private String label; private String type; } From 687280ed5ab810151096b5758888d30320f15972 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Tue, 22 Jul 2025 18:26:07 -0700 Subject: [PATCH 08/21] feat: fix parametersDto --- .../main/java/com/tinyengine/it/model/dto/ParametersDto.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java b/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java index 6761596e..87073841 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java @@ -24,4 +24,6 @@ public class ParametersDto { private String prop; private String label; private String type; + private boolean required; + private String description; } From 85bc9213447fc8356b8e9625f0d798a6483dbd54 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Tue, 22 Jul 2025 19:22:52 -0700 Subject: [PATCH 09/21] feat: fix model API --- .../sql/mysql/create_model_ddl_2025_0717.sql | 3 ++- .../it/controller/ModelController.java | 5 ++-- .../com/tinyengine/it/model/entity/Model.java | 7 ++++-- .../it/service/material/ModelService.java | 2 +- .../material/impl/ModelServiceImpl.java | 18 ++++++++++--- .../main/resources/mappers/ModelMapper.xml | 25 +++++++++++++------ 6 files changed, 43 insertions(+), 17 deletions(-) diff --git a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql index dbbe651e..a80574f2 100644 --- a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql +++ b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql @@ -3,7 +3,8 @@ drop table if exists `t_model`; create table `t_model` ( `id` int not null auto_increment comment '主键id', - `name` varchar(255) comment '名称', + `name_cn` varchar(255) comment '中文名称', + `name_en` varchar(255) comment '英文名称', `version` varchar(255) comment '版本', `parameters` varchar(2000) not null comment '字段参数', `method` longtext comment '方法', diff --git a/base/src/main/java/com/tinyengine/it/controller/ModelController.java b/base/src/main/java/com/tinyengine/it/controller/ModelController.java index 2211a5cf..8bf51562 100644 --- a/base/src/main/java/com/tinyengine/it/controller/ModelController.java +++ b/base/src/main/java/com/tinyengine/it/controller/ModelController.java @@ -71,8 +71,9 @@ public class ModelController { @GetMapping("/model/list") public Result> getAllModel(@RequestParam(value = "currentPage", required = false) Integer currentPage, @RequestParam(value = "pageSize", required = false) Integer pageSize, - @RequestParam(value = "name", required = false) String name) { - Page modelPage = modelService.pageQuery(currentPage, pageSize, name); + @RequestParam(value = "nameCn", required = false) String nameCn, + @RequestParam(value = "nameEn", required = false) String nameEn) { + Page modelPage = modelService.pageQuery(currentPage, pageSize, nameCn, nameEn); return Result.success(modelPage); } diff --git a/base/src/main/java/com/tinyengine/it/model/entity/Model.java b/base/src/main/java/com/tinyengine/it/model/entity/Model.java index a9de61cf..3bc2cfc4 100644 --- a/base/src/main/java/com/tinyengine/it/model/entity/Model.java +++ b/base/src/main/java/com/tinyengine/it/model/entity/Model.java @@ -35,8 +35,11 @@ @TableName("t_model") @Schema(name = "Model", description = "模型表") public class Model extends BaseEntity { - @Schema(name = "name", description = "名称") - private String name; + @Schema(name = "name_cn", description = "中文名称") + private String nameCn; + + @Schema(name = "name_En", description = "英文名称") + private String nameEn; @Schema(name = "version", description = "版本") private String version; diff --git a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java index ca86c40b..469d9aee 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java +++ b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java @@ -38,7 +38,7 @@ public interface ModelService extends IService{ * * @return the Page */ - Page pageQuery(int currentPage, int pageSize, String name); + Page pageQuery(int currentPage, int pageSize, String nameCn, String nameEn); /** * 创建t_model diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index e5d61d64..e2e109da 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -68,12 +68,24 @@ public List getModelByName(String name) { */ @Override @SystemServiceLog(description = "分页查询model实现方法") - public Page pageQuery(int currentPage, int pageSize, String name) { + public Page pageQuery(int currentPage, int pageSize, String nameCn, String nameEn) { Page page = new Page<>(currentPage, pageSize); QueryWrapper queryWrapper = new QueryWrapper<>(); - if(name != null && !name.isEmpty()){ - queryWrapper.like("name", name); + + // 判断 nameCn 是否存在 + if (nameCn != null && !nameCn.isEmpty()) { + queryWrapper.like("name_cn", nameCn); + } + + // 判断 nameEn 是否存在 + if (nameEn != null && !nameEn.isEmpty()) { + if (nameCn != null && !nameCn.isEmpty()) { + queryWrapper.or().like("name_en", nameEn); + } else { + queryWrapper.like("name_en", nameEn); + } } + page(page, queryWrapper); return page; } diff --git a/base/src/main/resources/mappers/ModelMapper.xml b/base/src/main/resources/mappers/ModelMapper.xml index cedf7cdd..18993adc 100644 --- a/base/src/main/resources/mappers/ModelMapper.xml +++ b/base/src/main/resources/mappers/ModelMapper.xml @@ -7,13 +7,16 @@ id - , `name`, version, parameters, `method`, description, created_by, last_updated_by, created_time, last_updated_time, tenant_id, renter_id, site_id + , name_cn, name_en, version, parameters, `method`, description, created_by, last_updated_by, created_time, last_updated_time, tenant_id, renter_id, site_id - - AND `name` = #{name} + + AND name_cn = #{nameCn} + + + AND name_en = #{nameEn} AND version = #{version} @@ -53,8 +56,11 @@ - - `name` = #{name}, + + name_cn = #{nameCn}, + + + name_en = #{nameEn}, version = #{version}, @@ -95,7 +101,8 @@ - + + @@ -154,7 +161,8 @@ INSERT INTO t_model ( id - , `name` + , name_cn + , name_en , version , parameters , `method` @@ -167,7 +175,8 @@ , renter_id , site_id) VALUES ( #{id} - , #{name} + , #{nameCn} + , #{nameEn} , #{version} , #{parameters} , #{method} From 1e12c135641651f705e006c72cfca01a0297259c Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Tue, 22 Jul 2025 20:08:08 -0700 Subject: [PATCH 10/21] feat: fix model API --- app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql | 5 +++-- .../main/resources/sql/mysql/create_model_ddl_2025_0717.sql | 2 +- .../java/com/tinyengine/it/controller/ModelController.java | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql index dbbe651e..bfe23f80 100644 --- a/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql +++ b/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql @@ -3,7 +3,8 @@ drop table if exists `t_model`; create table `t_model` ( `id` int not null auto_increment comment '主键id', - `name` varchar(255) comment '名称', + `name_cn` varchar(255) comment '中文名称', + `name_en` varchar(255) comment '英文名称', `version` varchar(255) comment '版本', `parameters` varchar(2000) not null comment '字段参数', `method` longtext comment '方法', @@ -16,5 +17,5 @@ create table `t_model` `renter_id` varchar(60) comment '业务租户id', `site_id` varchar(60) comment '站点id,设计预留字段', primary key (`id`) using btree, - unique index `u_idx_model` (`name`,`version`) using btree + unique index `u_idx_model` (`name_cn`,`version`) using btree ) engine = innodb comment = '模型表'; diff --git a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql index a80574f2..bfe23f80 100644 --- a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql +++ b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql @@ -17,5 +17,5 @@ create table `t_model` `renter_id` varchar(60) comment '业务租户id', `site_id` varchar(60) comment '站点id,设计预留字段', primary key (`id`) using btree, - unique index `u_idx_model` (`name`,`version`) using btree + unique index `u_idx_model` (`name_cn`,`version`) using btree ) engine = innodb comment = '模型表'; diff --git a/base/src/main/java/com/tinyengine/it/controller/ModelController.java b/base/src/main/java/com/tinyengine/it/controller/ModelController.java index 8bf51562..c1eca90e 100644 --- a/base/src/main/java/com/tinyengine/it/controller/ModelController.java +++ b/base/src/main/java/com/tinyengine/it/controller/ModelController.java @@ -61,7 +61,8 @@ public class ModelController { @Operation(summary = "查询表Model信息列表", description = "查询表Model信息列表", parameters = { @Parameter(name = "currentPage", description = "当前页"), @Parameter(name = "pageSize", description = "页数"), - @Parameter(name = "name", description = "模型名称") + @Parameter(name = "nameCn", description = "模型中文名称"), + @Parameter(name = "nameEn", description = "模型英文名称") }, responses = { @ApiResponse(responseCode = "200", description = "返回信息", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), From 216177b118f6d65a0725a80ead32a4bf2d238852 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Tue, 22 Jul 2025 21:07:41 -0700 Subject: [PATCH 11/21] feat: fix model API --- .../com/tinyengine/it/common/enums/Enums.java | 107 +++++++++++++++++- .../it/controller/ModelController.java | 3 +- .../material/impl/ModelServiceImpl.java | 62 +++++++--- 3 files changed, 151 insertions(+), 21 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/common/enums/Enums.java b/base/src/main/java/com/tinyengine/it/common/enums/Enums.java index baab6b12..b8f45d5d 100644 --- a/base/src/main/java/com/tinyengine/it/common/enums/Enums.java +++ b/base/src/main/java/com/tinyengine/it/common/enums/Enums.java @@ -1024,20 +1024,117 @@ public enum methodName { /** * QUERY name. */ - QUERY("查询方法"), + QUERY("查询方法"); + + private final String value; + + methodName(String value) { + this.value = value; + } /** - * NAME name. + * Gets value. + * + * @return the value */ - NAME("params"), + public String getValue() { + return value; + } + } + + public enum paramType { + /** * TYPE name. */ - TYPE("Object"); + OBJECT("Object"), + + /** + * CREATED name. + */ + NUMBER("Number"), + + /** + * UPDATE name. + */ + STRING("String"), + + /** + * DELETE name. + */ + ARRAY("Array"); private final String value; - methodName(String value) { + paramType(String value) { + this.value = value; + } + + /** + * Gets value. + * + * @return the value + */ + public String getValue() { + return value; + } + } + + public enum methodParam { + + /** + * ID + */ + ID("id"), + /** + * CURRENTPAGE + */ + CURRENTPAGE("currentPage"), + + /** + * PAGESIZE + */ + PAGESIZE("pageSize"), + + /** + * NAMECN + */ + NAMECN("nameCn"), + + /** + * NAMEEN + */ + NAMEEN("nameEn"), + + /** + * PARAMS + */ + PARAMS("params"), + + /** + * CODE + */ + CODE("code"), + + /** + * MESSAGE + */ + MESSAGE("message"), + + /** + * DATA + */ + DATA("data"), + + /** + * TOTAL + */ + TOTAL("total"); + + + private final String value; + + methodParam(String value) { this.value = value; } diff --git a/base/src/main/java/com/tinyengine/it/controller/ModelController.java b/base/src/main/java/com/tinyengine/it/controller/ModelController.java index c1eca90e..c8b21296 100644 --- a/base/src/main/java/com/tinyengine/it/controller/ModelController.java +++ b/base/src/main/java/com/tinyengine/it/controller/ModelController.java @@ -30,6 +30,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -133,7 +134,7 @@ public Result createModel(@Valid @RequestBody Model model) { @ApiResponse(responseCode = "400", description = "请求失败") }) @SystemControllerLog(description = "修改单个Model信息") - @PostMapping("/model/update/{id}") + @PutMapping("/model/update/{id}") public Result updateModel(@PathVariable Integer id, @RequestBody Model model) { model.setId(id); Model result = modelService.updateModelById(model); diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index e2e109da..78bd2e48 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -29,7 +29,6 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; @Service @@ -58,7 +57,7 @@ public Model queryModelById(Integer id) { public List getModelByName(String name) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like("name", name); - return this.baseMapper.selectList(queryWrapper); + return this.baseMapper.selectList(queryWrapper); } /** @@ -161,33 +160,66 @@ public Model updateModelById(Model model) { private MethodDto getMethodDto(String name, Model model) { MethodDto methodDto = new MethodDto(); methodDto.setName(name); + List responseParameterList = getResponseParameters(name); RequestParameter requestParameter = new RequestParameter(); - requestParameter.setProp("id"); - requestParameter.setType("Number"); + requestParameter.setProp(Enums.methodParam.ID.getValue()); + requestParameter.setType(Enums.paramType.NUMBER.getValue()); + List parameterList = new ArrayList<>(); + if (name.equals(Enums.methodName.QUERY.getValue())) { + RequestParameter currentPage = new RequestParameter(); + currentPage.setProp(Enums.methodParam.CURRENTPAGE.getValue()); + currentPage.setType(Enums.paramType.NUMBER.getValue()); + RequestParameter pageSize = new RequestParameter(); + pageSize.setProp(Enums.methodParam.PAGESIZE.getValue()); + pageSize.setType(Enums.paramType.NUMBER.getValue()); + RequestParameter nameCn = new RequestParameter(); + nameCn.setProp(Enums.methodParam.NAMECN.getValue()); + nameCn.setType(Enums.paramType.STRING.getValue()); + RequestParameter nameEn = new RequestParameter(); + nameEn.setProp(Enums.methodParam.NAMEEN.getValue()); + nameEn.setType(Enums.paramType.STRING.getValue()); + parameterList.add(currentPage); + parameterList.add(pageSize); + parameterList.add(nameCn); + parameterList.add(nameEn); + } if (name != Enums.methodName.DELETE.getValue()) { - requestParameter.setProp(Enums.methodName.NAME.getValue()); - requestParameter.setType(Enums.methodName.TYPE.getValue()); + requestParameter.setProp(Enums.methodParam.PARAMS.getValue()); + requestParameter.setType(Enums.paramType.OBJECT.getValue()); requestParameter.setChildren(model.getParameters()); + parameterList.add(requestParameter); + + methodDto.setRequestParameters(parameterList); + methodDto.setResponseParameters(responseParameterList); + return methodDto; } - List responseParameterList = getResponseParameters(); - methodDto.setRequestParameters(Arrays.asList(requestParameter)); + parameterList.add(requestParameter); + methodDto.setRequestParameters(parameterList); methodDto.setResponseParameters(responseParameterList); return methodDto; } - private static List getResponseParameters() { + private static List getResponseParameters(String name) { ResponseParameter code = new ResponseParameter(); - code.setProp("code"); - code.setType("Number"); + code.setProp(Enums.methodParam.CODE.getValue()); + code.setType(Enums.paramType.NUMBER.getValue()); ResponseParameter message = new ResponseParameter(); - message.setProp("message"); - message.setType("String"); + message.setProp(Enums.methodParam.MESSAGE.getValue()); + message.setType(Enums.paramType.STRING.getValue()); ResponseParameter data = new ResponseParameter(); - data.setProp("data"); - data.setType("Array"); + data.setProp(Enums.methodParam.DATA.getValue()); + data.setType(Enums.paramType.ARRAY.getValue()); + List responseParameterList = new ArrayList<>(); + if (name.equals(Enums.methodName.QUERY.getValue())) { + ResponseParameter total = new ResponseParameter(); + total.setProp(Enums.methodParam.TOTAL.getValue()); + total.setType(Enums.paramType.NUMBER.getValue()); + responseParameterList.add(total); + } + responseParameterList.add(code); responseParameterList.add(message); responseParameterList.add(data); From b6ae13ee0327cd3ceeef0eac316635521e1c895b Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Wed, 23 Jul 2025 02:18:05 -0700 Subject: [PATCH 12/21] feat: fix model API --- .../java/com/tinyengine/it/controller/ModelController.java | 4 ++-- .../com/tinyengine/it/service/material/ModelService.java | 2 +- .../it/service/material/impl/ModelServiceImpl.java | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/controller/ModelController.java b/base/src/main/java/com/tinyengine/it/controller/ModelController.java index c8b21296..4b21298c 100644 --- a/base/src/main/java/com/tinyengine/it/controller/ModelController.java +++ b/base/src/main/java/com/tinyengine/it/controller/ModelController.java @@ -93,8 +93,8 @@ public Result> getAllModel(@RequestParam(value = "currentPage", requ }) @SystemControllerLog(description = "根据name查询表Model信息") @GetMapping("/model/find") - public Result> getModelByName(@RequestParam(value = "name", required = false) String name) { - List modelPage = modelService.getModelByName(name); + public Result> getModelByName(@RequestParam(value = "nameCn", required = false) String nameCn) { + List modelPage = modelService.getModelByName(nameCn); return Result.success(modelPage); } diff --git a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java index 469d9aee..78b792a6 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java +++ b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java @@ -31,7 +31,7 @@ public interface ModelService extends IService{ * * @return the model list */ - List getModelByName(String name); + List getModelByName(String nameCn); /** * 分页查询表t_model diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index 78bd2e48..88b37280 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -49,14 +49,14 @@ public Model queryModelById(Integer id) { /** * 根据name查询表t_model信息 * - * @param name + * @param nameCn * @return the model list */ @Override @SystemServiceLog(description = "根据名称查询model实现方法") - public List getModelByName(String name) { + public List getModelByName(String nameCn) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like("name", name); + queryWrapper.like("name_cn", nameCn); return this.baseMapper.selectList(queryWrapper); } From ee3ae1651c8b5f7c10faff44c9c860c9338de4c0 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Wed, 23 Jul 2025 02:23:48 -0700 Subject: [PATCH 13/21] feat: fix model API --- .../tinyengine/it/service/material/impl/ModelServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index 88b37280..e4cf20d9 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -184,7 +184,7 @@ private MethodDto getMethodDto(String name, Model model) { parameterList.add(nameEn); } - if (name != Enums.methodName.DELETE.getValue()) { + if (!name.equals(Enums.methodName.DELETE.getValue())) { requestParameter.setProp(Enums.methodParam.PARAMS.getValue()); requestParameter.setType(Enums.paramType.OBJECT.getValue()); requestParameter.setChildren(model.getParameters()); From da990da0a88e571b8811044a4b16f1e956e51494 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Thu, 24 Jul 2025 18:48:31 -0700 Subject: [PATCH 14/21] feat: fix model API --- .../com/tinyengine/it/common/enums/Enums.java | 22 ++++++++++++++- .../tinyengine/it/model/dto/MethodDto.java | 1 + .../material/impl/ModelServiceImpl.java | 27 ++++++++++--------- 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/common/enums/Enums.java b/base/src/main/java/com/tinyengine/it/common/enums/Enums.java index b8f45d5d..5481800b 100644 --- a/base/src/main/java/com/tinyengine/it/common/enums/Enums.java +++ b/base/src/main/java/com/tinyengine/it/common/enums/Enums.java @@ -1024,7 +1024,27 @@ public enum methodName { /** * QUERY name. */ - QUERY("查询方法"); + QUERY("查询方法"), + + /** + * INSERTAPI name. + */ + INSERTAPI("insertApi"), + + /** + * UPDATEAPI name. + */ + UPDATEAPI("updateApi"), + + /** + * QUERYAPI name. + */ + QUERYAPI("queryApi"), + + /** + * INSERTAPI name. + */ + DELETEAPI("deleteApi"); private final String value; diff --git a/base/src/main/java/com/tinyengine/it/model/dto/MethodDto.java b/base/src/main/java/com/tinyengine/it/model/dto/MethodDto.java index c3dff4c9..bcf06a56 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/MethodDto.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/MethodDto.java @@ -24,6 +24,7 @@ @Data public class MethodDto { private String name; + private String nameEn; private List requestParameters; private List responseParameters; } diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index e4cf20d9..dbb84f70 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -100,10 +100,10 @@ public Page pageQuery(int currentPage, int pageSize, String nameCn, Strin @SystemServiceLog(description = "创建model实现方法") public Model createModel(Model model) { List methodDtos = new ArrayList<>(); - methodDtos.add(getMethodDto(Enums.methodName.CREATED.getValue(), model)); - methodDtos.add(getMethodDto(Enums.methodName.UPDATE.getValue(), model)); - methodDtos.add(getMethodDto(Enums.methodName.QUERY.getValue(), model)); - methodDtos.add(getMethodDto(Enums.methodName.DELETE.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.CREATED.getValue(), Enums.methodName.INSERTAPI.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.UPDATE.getValue(), Enums.methodName.UPDATEAPI.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.QUERY.getValue(), Enums.methodName.QUERYAPI.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.DELETE.getValue(), Enums.methodName.DELETEAPI.getValue(), model)); model.setMethod(methodDtos); int result = this.baseMapper.createModel(model); if (result != 1) { @@ -141,10 +141,10 @@ public Model deleteModelById(Integer id) { @SystemServiceLog(description = "根据id修改model实现方法") public Model updateModelById(Model model) { List methodDtos = new ArrayList<>(); - methodDtos.add(getMethodDto(Enums.methodName.CREATED.getValue(), model)); - methodDtos.add(getMethodDto(Enums.methodName.UPDATE.getValue(), model)); - methodDtos.add(getMethodDto(Enums.methodName.QUERY.getValue(), model)); - methodDtos.add(getMethodDto(Enums.methodName.DELETE.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.CREATED.getValue(), Enums.methodName.INSERTAPI.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.UPDATE.getValue(), Enums.methodName.UPDATEAPI.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.QUERY.getValue(), Enums.methodName.QUERYAPI.getValue(), model)); + methodDtos.add(getMethodDto(Enums.methodName.DELETE.getValue(), Enums.methodName.DELETEAPI.getValue(), model)); model.setMethod(methodDtos); if (model.getId() == null) { throw new ServiceException(ExceptionEnum.CM002.getResultCode(), ExceptionEnum.CM002.getResultCode()); @@ -157,9 +157,10 @@ public Model updateModelById(Model model) { return modelResult; } - private MethodDto getMethodDto(String name, Model model) { + private MethodDto getMethodDto(String name, String nameEn, Model model) { MethodDto methodDto = new MethodDto(); methodDto.setName(name); + methodDto.setNameEn(nameEn); List responseParameterList = getResponseParameters(name); RequestParameter requestParameter = new RequestParameter(); requestParameter.setProp(Enums.methodParam.ID.getValue()); @@ -175,13 +176,13 @@ private MethodDto getMethodDto(String name, Model model) { RequestParameter nameCn = new RequestParameter(); nameCn.setProp(Enums.methodParam.NAMECN.getValue()); nameCn.setType(Enums.paramType.STRING.getValue()); - RequestParameter nameEn = new RequestParameter(); - nameEn.setProp(Enums.methodParam.NAMEEN.getValue()); - nameEn.setType(Enums.paramType.STRING.getValue()); + RequestParameter requestNameEn = new RequestParameter(); + requestNameEn.setProp(Enums.methodParam.NAMEEN.getValue()); + requestNameEn.setType(Enums.paramType.STRING.getValue()); parameterList.add(currentPage); parameterList.add(pageSize); parameterList.add(nameCn); - parameterList.add(nameEn); + parameterList.add(requestNameEn); } if (!name.equals(Enums.methodName.DELETE.getValue())) { From dbd88d60270b1486b2aeff2426768b21c15174b9 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Mon, 11 Aug 2025 02:03:11 -0700 Subject: [PATCH 15/21] fix: ParametersDto adds new field --- .../src/main/java/com/tinyengine/it/model/dto/ParametersDto.java | 1 + 1 file changed, 1 insertion(+) diff --git a/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java b/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java index 87073841..3331c139 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java @@ -23,6 +23,7 @@ public class ParametersDto { private String prop; private String label; + private String defaultValue; private String type; private boolean required; private String description; From 7b1230c0674fda5c25df638b03a2e4e52eb6a3ba Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Mon, 11 Aug 2025 02:27:57 -0700 Subject: [PATCH 16/21] fix: model adds new field --- .../resources/sql/h2/create_model_ddl_2025_0717.sql | 13 +++++++------ .../java/com/tinyengine/it/model/entity/Model.java | 3 +++ base/src/main/resources/mappers/ModelMapper.xml | 11 ++++++++++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql index bfe23f80..183a6869 100644 --- a/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql +++ b/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql @@ -2,10 +2,11 @@ drop table if exists `t_model`; create table `t_model` ( - `id` int not null auto_increment comment '主键id', - `name_cn` varchar(255) comment '中文名称', - `name_en` varchar(255) comment '英文名称', + `id` int not null auto_increment comment '主键id', + `name_cn` varchar(255) comment '中文名称', + `name_en` varchar(255) comment '英文名称', `version` varchar(255) comment '版本', + `model_url` varchar(255) comment '模型url', `parameters` varchar(2000) not null comment '字段参数', `method` longtext comment '方法', `description` varchar(2000) comment '描述', @@ -13,9 +14,9 @@ create table `t_model` `created_time` timestamp not null default current_timestamp comment '创建时间', `last_updated_by` varchar(60) not null comment '最后修改人', `last_updated_time` timestamp not null default current_timestamp comment '更新时间', - `tenant_id` varchar(60) comment '租户id', - `renter_id` varchar(60) comment '业务租户id', - `site_id` varchar(60) comment '站点id,设计预留字段', + `tenant_id` varchar(60) comment '租户id', + `renter_id` varchar(60) comment '业务租户id', + `site_id` varchar(60) comment '站点id,设计预留字段', primary key (`id`) using btree, unique index `u_idx_model` (`name_cn`,`version`) using btree ) engine = innodb comment = '模型表'; diff --git a/base/src/main/java/com/tinyengine/it/model/entity/Model.java b/base/src/main/java/com/tinyengine/it/model/entity/Model.java index 3bc2cfc4..773df23e 100644 --- a/base/src/main/java/com/tinyengine/it/model/entity/Model.java +++ b/base/src/main/java/com/tinyengine/it/model/entity/Model.java @@ -44,6 +44,9 @@ public class Model extends BaseEntity { @Schema(name = "version", description = "版本") private String version; + @Schema(name = "model_url", description = "模型Url") + private String modelUrl; + @Schema(name = "parameters", description = "字段参数") @TableField(typeHandler = ListTypeHandler.class) private List parameters; diff --git a/base/src/main/resources/mappers/ModelMapper.xml b/base/src/main/resources/mappers/ModelMapper.xml index 18993adc..cad1c2b1 100644 --- a/base/src/main/resources/mappers/ModelMapper.xml +++ b/base/src/main/resources/mappers/ModelMapper.xml @@ -7,7 +7,7 @@ id - , name_cn, name_en, version, parameters, `method`, description, created_by, last_updated_by, created_time, last_updated_time, tenant_id, renter_id, site_id + , name_cn, name_en, version, model_url, parameters, `method`, description, created_by, last_updated_by, created_time, last_updated_time, tenant_id, renter_id, site_id @@ -21,6 +21,9 @@ AND version = #{version} + + AND model_url = #{modelUrl} + AND parameters = #{parameters} @@ -65,6 +68,9 @@ version = #{version}, + + model_url = #{modelUrl}, + parameters = #{parameters}, @@ -104,6 +110,7 @@ + @@ -164,6 +171,7 @@ , name_cn , name_en , version + , model_url , parameters , `method` , description @@ -178,6 +186,7 @@ , #{nameCn} , #{nameEn} , #{version} + , #{modelUrl} , #{parameters} , #{method} , #{description} From b78d2f2307fd4d0707b24cea03f0f0c10ac7cb10 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Mon, 11 Aug 2025 02:32:57 -0700 Subject: [PATCH 17/21] fix: model adds new field --- .../sql/mysql/create_model_ddl_2025_0717.sql | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql index bfe23f80..183a6869 100644 --- a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql +++ b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql @@ -2,10 +2,11 @@ drop table if exists `t_model`; create table `t_model` ( - `id` int not null auto_increment comment '主键id', - `name_cn` varchar(255) comment '中文名称', - `name_en` varchar(255) comment '英文名称', + `id` int not null auto_increment comment '主键id', + `name_cn` varchar(255) comment '中文名称', + `name_en` varchar(255) comment '英文名称', `version` varchar(255) comment '版本', + `model_url` varchar(255) comment '模型url', `parameters` varchar(2000) not null comment '字段参数', `method` longtext comment '方法', `description` varchar(2000) comment '描述', @@ -13,9 +14,9 @@ create table `t_model` `created_time` timestamp not null default current_timestamp comment '创建时间', `last_updated_by` varchar(60) not null comment '最后修改人', `last_updated_time` timestamp not null default current_timestamp comment '更新时间', - `tenant_id` varchar(60) comment '租户id', - `renter_id` varchar(60) comment '业务租户id', - `site_id` varchar(60) comment '站点id,设计预留字段', + `tenant_id` varchar(60) comment '租户id', + `renter_id` varchar(60) comment '业务租户id', + `site_id` varchar(60) comment '站点id,设计预留字段', primary key (`id`) using btree, unique index `u_idx_model` (`name_cn`,`version`) using btree ) engine = innodb comment = '模型表'; From bf0c9d78dffe8245a996a9ddef4f7849a285077e Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Tue, 12 Aug 2025 18:27:51 -0700 Subject: [PATCH 18/21] feat: add model API --- .../com/tinyengine/it/common/enums/Enums.java | 8 +- .../it/controller/ModelController.java | 42 +++++++- .../it/model/dto/ParametersDto.java | 1 + .../it/service/material/ModelService.java | 17 +++ .../material/impl/ModelServiceImpl.java | 102 +++++++++++++++++- 5 files changed, 163 insertions(+), 7 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/common/enums/Enums.java b/base/src/main/java/com/tinyengine/it/common/enums/Enums.java index 5481800b..fe3b2ea6 100644 --- a/base/src/main/java/com/tinyengine/it/common/enums/Enums.java +++ b/base/src/main/java/com/tinyengine/it/common/enums/Enums.java @@ -1070,19 +1070,19 @@ public enum paramType { OBJECT("Object"), /** - * CREATED name. + * TYPE name. */ NUMBER("Number"), /** - * UPDATE name. + * TYPE name. */ STRING("String"), /** - * DELETE name. + * TYPE name. */ - ARRAY("Array"); + ENUM("Enum"); private final String value; diff --git a/base/src/main/java/com/tinyengine/it/controller/ModelController.java b/base/src/main/java/com/tinyengine/it/controller/ModelController.java index 4b21298c..8274b67d 100644 --- a/base/src/main/java/com/tinyengine/it/controller/ModelController.java +++ b/base/src/main/java/com/tinyengine/it/controller/ModelController.java @@ -36,6 +36,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.io.IOException; import java.util.List; /** @@ -126,7 +127,7 @@ public Result createModel(@Valid @RequestBody Model model) { * @return Model信息 result */ @Operation(summary = "修改单个Model信息", description = "修改单个Model信息", parameters = { - @Parameter(name = "id", description = "appId"), + @Parameter(name = "id", description = "模型id"), @Parameter(name = "Model", description = "入参对象") }, responses = { @ApiResponse(responseCode = "200", description = "返回信息", @@ -168,7 +169,7 @@ public Result deleteModel(@PathVariable Integer id) { * @return the result */ @Operation(summary = "获取Model信息详情", description = "获取Model信息详情", parameters = { - @Parameter(name = "id", description = "appId") + @Parameter(name = "id", description = "模型id") }, responses = { @ApiResponse(responseCode = "200", description = "返回信息", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), @@ -179,4 +180,41 @@ public Result detail(@PathVariable Integer id) { Model result = modelService.queryModelById(id); return Result.success(result); } + + /** + * 获取Model建表sql + * + * @param id the id + * @return the result + */ + @Operation(summary = "获取Model建表sql", description = "获取Model建表sql", parameters = { + @Parameter(name = "id", description = "模型id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), + @ApiResponse(responseCode = "400", description = "请求失败")}) + @SystemControllerLog(description = "获取Model建表sql") + @GetMapping("/model/table/{id}") + public Result getTable(@PathVariable Integer id) throws IOException { + String result = modelService.getTableById(id); + return Result.success(result); + } + + /** + * 获取所有Model建表sql + * + * @param id the id + * @return the result + */ + @Operation(summary = "获取所有Model建表sql", description = "获取所有Model建表sql", parameters = { + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), + @ApiResponse(responseCode = "400", description = "请求失败")}) + @SystemControllerLog(description = "获取所有Model建表sql") + @GetMapping("/model/table/list") + public Result getAllTable() throws IOException { + String result = modelService.getAllTable(); + return Result.success(result); + } } diff --git a/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java b/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java index 3331c139..68847865 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java @@ -25,6 +25,7 @@ public class ParametersDto { private String label; private String defaultValue; private String type; + private String options; private boolean required; private String description; } diff --git a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java index 78b792a6..7b2c2735 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java +++ b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java @@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.tinyengine.it.model.entity.Model; +import java.io.IOException; import java.util.List; public interface ModelService extends IService{ @@ -63,4 +64,20 @@ public interface ModelService extends IService{ * @ param the model */ Model updateModelById(Model model); + + /** + * 获取Model建表sql + * + * @ param the id + * @return the String + * @throws IOException + */ + String getTableById(Integer id) throws IOException; + + /** + * 获取所有模型的建表SQL语句 + * @return 拼接好的SQL语句字符串,每个表的SQL用分号分隔并换行 + * @throws IOException 如果JSON解析失败 + */ + String getAllTable() throws IOException; } diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index dbb84f70..fc18251e 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -19,17 +19,24 @@ import com.tinyengine.it.common.exception.ExceptionEnum; import com.tinyengine.it.common.exception.ServiceException; import com.tinyengine.it.common.log.SystemServiceLog; +import com.tinyengine.it.common.utils.JsonUtils; import com.tinyengine.it.mapper.ModelMapper; import com.tinyengine.it.model.dto.MethodDto; +import com.tinyengine.it.model.dto.ParametersDto; import com.tinyengine.it.model.dto.RequestParameter; import com.tinyengine.it.model.dto.ResponseParameter; import com.tinyengine.it.model.entity.Model; import com.tinyengine.it.service.material.ModelService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; +import java.util.stream.Collectors; @Service @Slf4j @@ -157,6 +164,99 @@ public Model updateModelById(Model model) { return modelResult; } + /** + * 获取Model建表sql + * + * @param id + * @return the String + * @ param the id + */ + @Override + public String getTableById(Integer id) throws IOException { + Model model = this.baseMapper.selectById(id); + List rawList = model.getParameters(); + List fields = rawList.stream() + .map(item -> JsonUtils.MAPPER.convertValue(item, ParametersDto.class)) + .collect(Collectors.toList()); + + StringBuilder sql = new StringBuilder("CREATE TABLE " + model.getNameEn() + " ("); + + for (int i = 0; i < fields.size(); i++) { + ParametersDto field = fields.get(i); + + String prop = field.getProp(); + String type = field.getType(); + String defaultValue = field.getDefaultValue(); + + // 根据字段类型映射为 SQL 数据类型 + String sqlType = mapJavaTypeToSQL(type); + + sql.append(prop).append(" ").append(sqlType); + + if (defaultValue != null && !defaultValue.isEmpty()) { + sql.append(" DEFAULT ").append(defaultValue); + } + + // 如果不是最后一个字段,添加逗号 + if (i != fields.size() - 1) { + sql.append(", "); + } + } + + sql.append(")"); + + return sql.toString(); + } + + /** + * 获取所有模型的建表SQL语句 + * @return 拼接好的SQL语句字符串,每个表的SQL用分号分隔并换行 + * @throws IOException 如果JSON解析失败 + */ + @Override + public String getAllTable() throws IOException { + // 查询所有模型 + List modelList = this.baseMapper.selectList(null); + if (CollectionUtils.isEmpty(modelList)) { + return ""; + } + + StringJoiner sqlJoiner = new StringJoiner("; "); + + modelList.stream() + .map(model -> { + try { + return this.getTableById(model.getId()); + } catch (IOException e) { + log.error("生成表SQL失败,模型ID: {}", model.getId(), e); + return null; + } + }) + .filter(Objects::nonNull) + .forEach(sqlJoiner::add); + + return sqlJoiner.length() > 0 ? sqlJoiner.toString() + ";" : ""; + } + + private static String mapJavaTypeToSQL(String javaType) { + if (javaType == null) { + return "VARCHAR(255)"; // 默认处理 + } + switch (javaType) { + case "String": + return "VARCHAR(500)"; + case "Number": + return "INT"; + case "Boolean": + return "BOOLEAN"; + case "Date": + return "TIMESTAMP"; + case "Enum": + return "LONGTEXT"; + default: + return "LONGTEXT"; // 默认处理 + } + } private MethodDto getMethodDto(String name, String nameEn, Model model) { MethodDto methodDto = new MethodDto(); methodDto.setName(name); @@ -211,7 +311,7 @@ private static List getResponseParameters(String name) { message.setType(Enums.paramType.STRING.getValue()); ResponseParameter data = new ResponseParameter(); data.setProp(Enums.methodParam.DATA.getValue()); - data.setType(Enums.paramType.ARRAY.getValue()); + data.setType(Enums.paramType.ENUM.getValue()); List responseParameterList = new ArrayList<>(); if (name.equals(Enums.methodName.QUERY.getValue())) { From e274feee27d5873b3fb1a498c30fefa2b1739d55 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Wed, 20 Aug 2025 01:51:13 -0700 Subject: [PATCH 19/21] fix: modify model API --- .../sql/h2/create_model_ddl_2025_0717.sql | 1 + .../sql/mysql/create_model_ddl_2025_0717.sql | 1 + .../it/controller/ModelController.java | 6 +- .../com/tinyengine/it/model/entity/Model.java | 3 + .../it/service/material/ModelService.java | 5 +- .../material/impl/ModelServiceImpl.java | 68 +++++++++---------- .../main/resources/mappers/ModelMapper.xml | 11 ++- 7 files changed, 53 insertions(+), 42 deletions(-) diff --git a/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql index 183a6869..1c5b3ef5 100644 --- a/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql +++ b/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql @@ -3,6 +3,7 @@ drop table if exists `t_model`; create table `t_model` ( `id` int not null auto_increment comment '主键id', + `model_id` int comment '关联模型id', `name_cn` varchar(255) comment '中文名称', `name_en` varchar(255) comment '英文名称', `version` varchar(255) comment '版本', diff --git a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql index 183a6869..1c5b3ef5 100644 --- a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql +++ b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql @@ -3,6 +3,7 @@ drop table if exists `t_model`; create table `t_model` ( `id` int not null auto_increment comment '主键id', + `model_id` int comment '关联模型id', `name_cn` varchar(255) comment '中文名称', `name_en` varchar(255) comment '英文名称', `version` varchar(255) comment '版本', diff --git a/base/src/main/java/com/tinyengine/it/controller/ModelController.java b/base/src/main/java/com/tinyengine/it/controller/ModelController.java index 8274b67d..0cf001e9 100644 --- a/base/src/main/java/com/tinyengine/it/controller/ModelController.java +++ b/base/src/main/java/com/tinyengine/it/controller/ModelController.java @@ -36,7 +36,6 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.io.IOException; import java.util.List; /** @@ -195,7 +194,7 @@ public Result detail(@PathVariable Integer id) { @ApiResponse(responseCode = "400", description = "请求失败")}) @SystemControllerLog(description = "获取Model建表sql") @GetMapping("/model/table/{id}") - public Result getTable(@PathVariable Integer id) throws IOException { + public Result getTable(@PathVariable Integer id) { String result = modelService.getTableById(id); return Result.success(result); } @@ -203,7 +202,6 @@ public Result getTable(@PathVariable Integer id) throws IOException { /** * 获取所有Model建表sql * - * @param id the id * @return the result */ @Operation(summary = "获取所有Model建表sql", description = "获取所有Model建表sql", parameters = { @@ -213,7 +211,7 @@ public Result getTable(@PathVariable Integer id) throws IOException { @ApiResponse(responseCode = "400", description = "请求失败")}) @SystemControllerLog(description = "获取所有Model建表sql") @GetMapping("/model/table/list") - public Result getAllTable() throws IOException { + public Result getAllTable() { String result = modelService.getAllTable(); return Result.success(result); } diff --git a/base/src/main/java/com/tinyengine/it/model/entity/Model.java b/base/src/main/java/com/tinyengine/it/model/entity/Model.java index 773df23e..56e31c4f 100644 --- a/base/src/main/java/com/tinyengine/it/model/entity/Model.java +++ b/base/src/main/java/com/tinyengine/it/model/entity/Model.java @@ -35,6 +35,9 @@ @TableName("t_model") @Schema(name = "Model", description = "模型表") public class Model extends BaseEntity { + @Schema(name = "model_id", description = "关联模型id") + private String modelId; + @Schema(name = "name_cn", description = "中文名称") private String nameCn; diff --git a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java index 7b2c2735..8f88eaf1 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/ModelService.java +++ b/base/src/main/java/com/tinyengine/it/service/material/ModelService.java @@ -72,12 +72,11 @@ public interface ModelService extends IService{ * @return the String * @throws IOException */ - String getTableById(Integer id) throws IOException; + String getTableById(Integer id); /** * 获取所有模型的建表SQL语句 * @return 拼接好的SQL语句字符串,每个表的SQL用分号分隔并换行 - * @throws IOException 如果JSON解析失败 */ - String getAllTable() throws IOException; + String getAllTable(); } diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index fc18251e..e1185b34 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -34,7 +34,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import java.util.StringJoiner; import java.util.stream.Collectors; @@ -172,8 +171,39 @@ public Model updateModelById(Model model) { * @ param the id */ @Override - public String getTableById(Integer id) throws IOException { + public String getTableById(Integer id) { Model model = this.baseMapper.selectById(id); + StringBuilder sql = new StringBuilder(getTableByModle(model)); + if (model.getModelId() != null) { + Model result = this.baseMapper.selectById(model.getModelId()); + sql.append(getTableByModle(result)); + } + return sql.toString(); + } + + /** + * 获取所有模型的建表SQL语句 + * @return 拼接好的SQL语句字符串,每个表的SQL用分号分隔并换行 + * @throws IOException 如果JSON解析失败 + */ + @Override + public String getAllTable() { + // 查询所有模型 + List modelList = this.baseMapper.selectList(null); + if (CollectionUtils.isEmpty(modelList)) { + return ""; + } + + StringJoiner sqlJoiner = new StringJoiner(" "); + + modelList.stream() + .map(this::getTableByModle) + .forEach(sqlJoiner::add); + + return sqlJoiner.toString(); + } + + private String getTableByModle(Model model) { List rawList = model.getParameters(); List fields = rawList.stream() .map(item -> JsonUtils.MAPPER.convertValue(item, ParametersDto.class)) @@ -203,41 +233,10 @@ public String getTableById(Integer id) throws IOException { } } - sql.append(")"); - + sql.append(");"); return sql.toString(); } - /** - * 获取所有模型的建表SQL语句 - * @return 拼接好的SQL语句字符串,每个表的SQL用分号分隔并换行 - * @throws IOException 如果JSON解析失败 - */ - @Override - public String getAllTable() throws IOException { - // 查询所有模型 - List modelList = this.baseMapper.selectList(null); - if (CollectionUtils.isEmpty(modelList)) { - return ""; - } - - StringJoiner sqlJoiner = new StringJoiner("; "); - - modelList.stream() - .map(model -> { - try { - return this.getTableById(model.getId()); - } catch (IOException e) { - log.error("生成表SQL失败,模型ID: {}", model.getId(), e); - return null; - } - }) - .filter(Objects::nonNull) - .forEach(sqlJoiner::add); - - return sqlJoiner.length() > 0 ? sqlJoiner.toString() + ";" : ""; - } - private static String mapJavaTypeToSQL(String javaType) { if (javaType == null) { return "VARCHAR(255)"; // 默认处理 @@ -257,6 +256,7 @@ private static String mapJavaTypeToSQL(String javaType) { return "LONGTEXT"; // 默认处理 } } + private MethodDto getMethodDto(String name, String nameEn, Model model) { MethodDto methodDto = new MethodDto(); methodDto.setName(name); diff --git a/base/src/main/resources/mappers/ModelMapper.xml b/base/src/main/resources/mappers/ModelMapper.xml index cad1c2b1..692da2eb 100644 --- a/base/src/main/resources/mappers/ModelMapper.xml +++ b/base/src/main/resources/mappers/ModelMapper.xml @@ -7,11 +7,14 @@ id - , name_cn, name_en, version, model_url, parameters, `method`, description, created_by, last_updated_by, created_time, last_updated_time, tenant_id, renter_id, site_id + , model_id, name_cn, name_en, version, model_url, parameters, `method`, description, created_by, last_updated_by, created_time, last_updated_time, tenant_id, renter_id, site_id + + AND model_id = #{modelId} + AND name_cn = #{nameCn} @@ -59,6 +62,9 @@ + + model_id = #{modelId}, + name_cn = #{nameCn}, @@ -107,6 +113,7 @@ + @@ -168,6 +175,7 @@ INSERT INTO t_model ( id + , model_id , name_cn , name_en , version @@ -183,6 +191,7 @@ , renter_id , site_id) VALUES ( #{id} + , #{modelId} , #{nameCn} , #{nameEn} , #{version} From 30516987768658fe9cd24336ee2ee0aa904109a0 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Thu, 21 Aug 2025 00:52:00 -0700 Subject: [PATCH 20/21] fix: modify model API --- .../sql/h2/create_model_ddl_2025_0717.sql | 3 +-- .../sql/mysql/create_model_ddl_2025_0717.sql | 3 +-- .../com/tinyengine/it/model/dto/ParametersDto.java | 3 ++- .../java/com/tinyengine/it/model/entity/Model.java | 2 -- .../it/service/material/impl/ModelServiceImpl.java | 14 ++++++++++---- base/src/main/resources/mappers/ModelMapper.xml | 11 +---------- 6 files changed, 15 insertions(+), 21 deletions(-) diff --git a/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql index 1c5b3ef5..c074a45e 100644 --- a/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql +++ b/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql @@ -3,7 +3,6 @@ drop table if exists `t_model`; create table `t_model` ( `id` int not null auto_increment comment '主键id', - `model_id` int comment '关联模型id', `name_cn` varchar(255) comment '中文名称', `name_en` varchar(255) comment '英文名称', `version` varchar(255) comment '版本', @@ -19,5 +18,5 @@ create table `t_model` `renter_id` varchar(60) comment '业务租户id', `site_id` varchar(60) comment '站点id,设计预留字段', primary key (`id`) using btree, - unique index `u_idx_model` (`name_cn`,`version`) using btree + unique index `u_idx_model` (`name_en`,`version`) using btree ) engine = innodb comment = '模型表'; diff --git a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql index 1c5b3ef5..c074a45e 100644 --- a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql +++ b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql @@ -3,7 +3,6 @@ drop table if exists `t_model`; create table `t_model` ( `id` int not null auto_increment comment '主键id', - `model_id` int comment '关联模型id', `name_cn` varchar(255) comment '中文名称', `name_en` varchar(255) comment '英文名称', `version` varchar(255) comment '版本', @@ -19,5 +18,5 @@ create table `t_model` `renter_id` varchar(60) comment '业务租户id', `site_id` varchar(60) comment '站点id,设计预留字段', primary key (`id`) using btree, - unique index `u_idx_model` (`name_cn`,`version`) using btree + unique index `u_idx_model` (`name_en`,`version`) using btree ) engine = innodb comment = '模型表'; diff --git a/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java b/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java index 68847865..680d3212 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/ParametersDto.java @@ -24,8 +24,9 @@ public class ParametersDto { private String prop; private String label; private String defaultValue; + private Boolean isModel; private String type; private String options; - private boolean required; + private Boolean required; private String description; } diff --git a/base/src/main/java/com/tinyengine/it/model/entity/Model.java b/base/src/main/java/com/tinyengine/it/model/entity/Model.java index 56e31c4f..1bd7f835 100644 --- a/base/src/main/java/com/tinyengine/it/model/entity/Model.java +++ b/base/src/main/java/com/tinyengine/it/model/entity/Model.java @@ -35,8 +35,6 @@ @TableName("t_model") @Schema(name = "Model", description = "模型表") public class Model extends BaseEntity { - @Schema(name = "model_id", description = "关联模型id") - private String modelId; @Schema(name = "name_cn", description = "中文名称") private String nameCn; diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java index e1185b34..96bf4252 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ModelServiceImpl.java @@ -174,10 +174,16 @@ public Model updateModelById(Model model) { public String getTableById(Integer id) { Model model = this.baseMapper.selectById(id); StringBuilder sql = new StringBuilder(getTableByModle(model)); - if (model.getModelId() != null) { - Model result = this.baseMapper.selectById(model.getModelId()); - sql.append(getTableByModle(result)); - } + List rawList = model.getParameters(); + List fields = rawList.stream() + .map(item -> JsonUtils.MAPPER.convertValue(item, ParametersDto.class)) + .collect(Collectors.toList()); + fields.forEach(item -> { + if(item.getIsModel()) { + Model result = this.baseMapper.selectById(item.getDefaultValue()); + sql.append(getTableByModle(result)); + } + }); return sql.toString(); } diff --git a/base/src/main/resources/mappers/ModelMapper.xml b/base/src/main/resources/mappers/ModelMapper.xml index 692da2eb..cad1c2b1 100644 --- a/base/src/main/resources/mappers/ModelMapper.xml +++ b/base/src/main/resources/mappers/ModelMapper.xml @@ -7,14 +7,11 @@ id - , model_id, name_cn, name_en, version, model_url, parameters, `method`, description, created_by, last_updated_by, created_time, last_updated_time, tenant_id, renter_id, site_id + , name_cn, name_en, version, model_url, parameters, `method`, description, created_by, last_updated_by, created_time, last_updated_time, tenant_id, renter_id, site_id - - AND model_id = #{modelId} - AND name_cn = #{nameCn} @@ -62,9 +59,6 @@ - - model_id = #{modelId}, - name_cn = #{nameCn}, @@ -113,7 +107,6 @@ - @@ -175,7 +168,6 @@ INSERT INTO t_model ( id - , model_id , name_cn , name_en , version @@ -191,7 +183,6 @@ , renter_id , site_id) VALUES ( #{id} - , #{modelId} , #{nameCn} , #{nameEn} , #{version} From fd35bbe418eb166bb77a8a22e2fd1123944a33c8 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Tue, 26 Aug 2025 20:26:20 -0700 Subject: [PATCH 21/21] fix: modify model API --- .../resources/sql/h2/create_model_ddl_2025_0717.sql | 4 ++-- .../resources/sql/mysql/create_model_ddl_2025_0717.sql | 4 ++-- .../com/tinyengine/it/controller/ModelController.java | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql index c074a45e..b0c8400f 100644 --- a/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql +++ b/app/src/main/resources/sql/h2/create_model_ddl_2025_0717.sql @@ -3,8 +3,8 @@ drop table if exists `t_model`; create table `t_model` ( `id` int not null auto_increment comment '主键id', - `name_cn` varchar(255) comment '中文名称', - `name_en` varchar(255) comment '英文名称', + `name_cn` varchar(255) not null comment '中文名称', + `name_en` varchar(255) not null comment '英文名称', `version` varchar(255) comment '版本', `model_url` varchar(255) comment '模型url', `parameters` varchar(2000) not null comment '字段参数', diff --git a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql index c074a45e..b0c8400f 100644 --- a/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql +++ b/app/src/main/resources/sql/mysql/create_model_ddl_2025_0717.sql @@ -3,8 +3,8 @@ drop table if exists `t_model`; create table `t_model` ( `id` int not null auto_increment comment '主键id', - `name_cn` varchar(255) comment '中文名称', - `name_en` varchar(255) comment '英文名称', + `name_cn` varchar(255) not null comment '中文名称', + `name_en` varchar(255) not null comment '英文名称', `version` varchar(255) comment '版本', `model_url` varchar(255) comment '模型url', `parameters` varchar(2000) not null comment '字段参数', diff --git a/base/src/main/java/com/tinyengine/it/controller/ModelController.java b/base/src/main/java/com/tinyengine/it/controller/ModelController.java index 0cf001e9..394575a4 100644 --- a/base/src/main/java/com/tinyengine/it/controller/ModelController.java +++ b/base/src/main/java/com/tinyengine/it/controller/ModelController.java @@ -84,14 +84,14 @@ public Result> getAllModel(@RequestParam(value = "currentPage", requ * * @return Model信息 */ - @Operation(summary = "根据name查询表Model信息", description = "根据name查询表Model信息", parameters = { - @Parameter(name = "name", description = "名称"), + @Operation(summary = "根据nameCn查询表Model信息", description = "根据nameCn查询表Model信息", parameters = { + @Parameter(name = "nameCn", description = "名称"), }, responses = { @ApiResponse(responseCode = "200", description = "返回信息", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), @ApiResponse(responseCode = "400", description = "请求失败") }) - @SystemControllerLog(description = "根据name查询表Model信息") + @SystemControllerLog(description = "根据nameCn查询表Model信息") @GetMapping("/model/find") public Result> getModelByName(@RequestParam(value = "nameCn", required = false) String nameCn) { List modelPage = modelService.getModelByName(nameCn); @@ -190,7 +190,7 @@ public Result detail(@PathVariable Integer id) { @Parameter(name = "id", description = "模型id") }, responses = { @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), + content = @Content(mediaType = "application/json", schema = @Schema(implementation = String.class))), @ApiResponse(responseCode = "400", description = "请求失败")}) @SystemControllerLog(description = "获取Model建表sql") @GetMapping("/model/table/{id}") @@ -207,7 +207,7 @@ public Result getTable(@PathVariable Integer id) { @Operation(summary = "获取所有Model建表sql", description = "获取所有Model建表sql", parameters = { }, responses = { @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", schema = @Schema(implementation = Model.class))), + content = @Content(mediaType = "application/json", schema = @Schema(implementation = String.class))), @ApiResponse(responseCode = "400", description = "请求失败")}) @SystemControllerLog(description = "获取所有Model建表sql") @GetMapping("/model/table/list")