From 01753966ac2ccce44cd9c681d67e7115b019a2cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 9 Jan 2026 18:07:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(form):=20=E5=AE=8C=E5=96=84=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在AdminPermissionTable实体中新增remark字段用于备注信息 - 在FormAddRequest和FormUpdateRequest请求对象中添加remark字段 - 新增FormColumnVO数据传输对象用于返回表单列信息 - 添加AdminPermissionColumn实体及相关数据库操作组件 - 实现删除表单及关联列数据的功能 - 实现获取表单列信息的功能,支持动态列信息展示 - 修改代码生成器配置以包含admin_permission_column表的生成 - 更新表单创建和修改逻辑以处理备注字段的存储 --- .../admin/controller/FormController.java | 51 +++++++++++++- .../common/pojo/request/FormAddRequest.java | 5 ++ .../pojo/request/FormUpdateRequest.java | 5 ++ .../common/pojo/vo/FormColumnVO.java | 43 ++++++++++++ .../entity/AdminPermissionColumn.java | 67 +++++++++++++++++++ .../entity/AdminPermissionTable.java | 5 ++ .../mapper/AdminPermissionColumnMapper.java | 15 +++++ .../IAdminPermissionColumnService.java | 15 +++++ .../AdminPermissionColumnServiceImpl.java | 19 ++++++ .../mapper/AdminPermissionColumnMapper.xml | 5 ++ .../repository/CodeGeneratorTest.java | 2 +- 11 files changed, 230 insertions(+), 2 deletions(-) create mode 100644 nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FormColumnVO.java create mode 100644 nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminPermissionColumn.java create mode 100644 nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminPermissionColumnMapper.java create mode 100644 nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminPermissionColumnService.java create mode 100644 nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminPermissionColumnServiceImpl.java create mode 100644 nflg-mobilebroken-repository/src/main/resources/mapper/AdminPermissionColumnMapper.xml diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/FormController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/FormController.java index a912055a..a7ae4787 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/FormController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/FormController.java @@ -1,26 +1,34 @@ package com.nflg.mobilebroken.admin.controller; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; import com.nflg.mobilebroken.admin.annotation.ApiMark; import com.nflg.mobilebroken.admin.service.TableInfoService; import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.request.FormAddRequest; import com.nflg.mobilebroken.common.pojo.request.FormUpdateRequest; import com.nflg.mobilebroken.common.pojo.vo.DescVO; +import com.nflg.mobilebroken.common.pojo.vo.FormColumnVO; import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.common.util.VUtils; +import com.nflg.mobilebroken.repository.entity.AdminPermissionColumn; import com.nflg.mobilebroken.repository.entity.AdminPermissionTable; +import com.nflg.mobilebroken.repository.service.IAdminPermissionColumnService; import com.nflg.mobilebroken.repository.service.IAdminPermissionTableService; import com.nflg.mobilebroken.starter.annotation.MethodInfoMark; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; +import javax.validation.constraints.NotNull; import java.time.LocalDateTime; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * 数据权限表单相关接口 - * * @author 曹鹏飞 **/ @RestController @@ -33,6 +41,9 @@ public class FormController extends ControllerBase { @Resource private IAdminPermissionTableService permissionTableService; + @Resource + private IAdminPermissionColumnService permissionColumnService; + /** * 获取表列表 */ @@ -65,6 +76,7 @@ public class FormController extends ControllerBase { permissionTableService.save(new AdminPermissionTable() .setTableName(request.getTableName()) .setTableDesc(request.getTableDesc()) + .setRemark(request.getRemark()) .setCreateBy(AdminUserUtil.getUserName()) .setCreateTime(LocalDateTime.now()) ); @@ -77,9 +89,46 @@ public class FormController extends ControllerBase { public void update(@Valid @RequestBody FormUpdateRequest request) { permissionTableService.lambdaUpdate() .set(AdminPermissionTable::getTableDesc, request.getTableDesc()) + .set(AdminPermissionTable::getRemark, request.getRemark()) .set(AdminPermissionTable::getUpdateBy, AdminUserUtil.getUserName()) .set(AdminPermissionTable::getUpdateTime, LocalDateTime.now()) .eq(AdminPermissionTable::getId, request.getId()) .update(); } + + /** + * 删除表单 + */ + @PostMapping("delete") + @Transactional + public void delete(@RequestBody @NotNull Long id) { + permissionTableService.removeById(id); + permissionColumnService.lambdaUpdate() + .eq(AdminPermissionColumn::getTableId, id) + .remove(); + } + + /** + * 获取表单列 + */ + @GetMapping("getFormColumns") + public ApiResult> getFormColumns(@RequestParam Long id) { + AdminPermissionTable table = permissionTableService.getById(id); + VUtils.trueThrowBusinessError(Objects.isNull(table)).throwMessage("表不存在"); + List columns = tableInfoService.getTableColumnInfos(table.getTableName()); + List cols = permissionColumnService.lambdaQuery() + .eq(AdminPermissionColumn::getTableId, id) + .list(); + return ApiResult.success( + columns.stream().map(col -> { + AdminPermissionColumn dc = cols.stream() + .filter(c -> StrUtil.equals(c.getColName(), col.getName())) + .findFirst() + .orElse(null); + return Objects.nonNull(dc) ? Convert.convert(FormColumnVO.class, dc) : new FormColumnVO() + .setColName(col.getName()) + .setColDesc(col.getDesc()); + }).collect(Collectors.toList()) + ); + } } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FormAddRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FormAddRequest.java index 10998fc3..e7df2aa4 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FormAddRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FormAddRequest.java @@ -18,4 +18,9 @@ public class FormAddRequest { */ @NotBlank private String tableDesc; + + /** + * 备注 + */ + private String remark; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FormUpdateRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FormUpdateRequest.java index 5c581766..89c620f9 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FormUpdateRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FormUpdateRequest.java @@ -11,4 +11,9 @@ public class FormUpdateRequest { * 表描述 */ private String tableDesc; + + /** + * 备注 + */ + private String remark; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FormColumnVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FormColumnVO.java new file mode 100644 index 00000000..fe30c4e1 --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FormColumnVO.java @@ -0,0 +1,43 @@ +package com.nflg.mobilebroken.common.pojo.vo; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + +@Data +@Accessors(chain = true) +public class FormColumnVO { + + private Long id; + + /** + * 列名 + */ + private String colName; + + /** + * 列描述 + */ + private String colDesc; + + /** + * 创建人 + */ + private String createBy; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 最后更新人 + */ + private String updateBy; + + /** + * 最后更新时间 + */ + private LocalDateTime updateTime; +} diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminPermissionColumn.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminPermissionColumn.java new file mode 100644 index 00000000..19bbcc30 --- /dev/null +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminPermissionColumn.java @@ -0,0 +1,67 @@ +package com.nflg.mobilebroken.repository.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *

+ * + *

+ * @author 代码生成器生成 + * @since 2026 + */ +@Getter +@Setter +@Accessors(chain = true) +@TableName("admin_permission_column") +public class AdminPermissionColumn implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + /** + * 表id + */ + private Long tableId; + + /** + * 列名 + */ + private String colName; + + /** + * 列描述 + */ + private String colDesc; + + /** + * 返回给前端的字段名称 + */ + private String colCode; + + /** + * 创建人 + */ + private String createBy; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 最后更新人 + */ + private String updateBy; + + /** + * 最后更新时间 + */ + private LocalDateTime updateTime; +} diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminPermissionTable.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminPermissionTable.java index cdc6d00e..7c17f16b 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminPermissionTable.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminPermissionTable.java @@ -36,6 +36,11 @@ public class AdminPermissionTable implements Serializable { */ private String tableDesc; + /** + * 备注 + */ + private String remark; + /** * 创建人 */ diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminPermissionColumnMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminPermissionColumnMapper.java new file mode 100644 index 00000000..b02d3be4 --- /dev/null +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminPermissionColumnMapper.java @@ -0,0 +1,15 @@ +package com.nflg.mobilebroken.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.mobilebroken.repository.entity.AdminPermissionColumn; + +/** + *

+ * Mapper 接口 + *

+ * @author 代码生成器生成 + * @since 2026 + */ +public interface AdminPermissionColumnMapper extends BaseMapper { + +} diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminPermissionColumnService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminPermissionColumnService.java new file mode 100644 index 00000000..113297f6 --- /dev/null +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminPermissionColumnService.java @@ -0,0 +1,15 @@ +package com.nflg.mobilebroken.repository.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.mobilebroken.repository.entity.AdminPermissionColumn; + +/** + *

+ * 服务类 + *

+ * @author 代码生成器生成 + * @since 2026 + */ +public interface IAdminPermissionColumnService extends IService { + +} diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminPermissionColumnServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminPermissionColumnServiceImpl.java new file mode 100644 index 00000000..1517fc84 --- /dev/null +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminPermissionColumnServiceImpl.java @@ -0,0 +1,19 @@ +package com.nflg.mobilebroken.repository.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.mobilebroken.repository.entity.AdminPermissionColumn; +import com.nflg.mobilebroken.repository.mapper.AdminPermissionColumnMapper; +import com.nflg.mobilebroken.repository.service.IAdminPermissionColumnService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * @author 代码生成器生成 + * @since 2026 + */ +@Service +public class AdminPermissionColumnServiceImpl extends ServiceImpl implements IAdminPermissionColumnService { + +} diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminPermissionColumnMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminPermissionColumnMapper.xml new file mode 100644 index 00000000..ce46d477 --- /dev/null +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminPermissionColumnMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/nflg-mobilebroken-repository/src/test/java/com/nflg/mobilebroken/repository/CodeGeneratorTest.java b/nflg-mobilebroken-repository/src/test/java/com/nflg/mobilebroken/repository/CodeGeneratorTest.java index 57908cad..7d8ef69c 100644 --- a/nflg-mobilebroken-repository/src/test/java/com/nflg/mobilebroken/repository/CodeGeneratorTest.java +++ b/nflg-mobilebroken-repository/src/test/java/com/nflg/mobilebroken/repository/CodeGeneratorTest.java @@ -33,7 +33,7 @@ public class CodeGeneratorTest { , Paths.get(System.getProperty("user.dir")) + "/src/main/resources/mapper")) ) .strategyConfig(builder -> { - builder.addInclude("admin_permission_table") //只生成指定表 + builder.addInclude("admin_permission_column") //只生成指定表 .entityBuilder() .enableLombok() .enableChainModel()