feat(form): 添加表单管理功能
- 在AdminApi实体中新增code字段用于标识 - 为ApiMark注解添加code属性 - 修改代码生成器测试配置,更新表名过滤规则 - 创建DescVO数据传输对象用于名称描述信息 - 新增FormAddRequest和FormUpdateRequest请求对象 - 实现FormController控制器提供表单管理接口 - 添加TableInfoService服务用于获取表和列信息 - 创建AdminPermissionTable实体及相关数据库操作组件 - 在接口保存时添加code字段的设置逻辑
This commit is contained in:
parent
0c792869ba
commit
57aadf6161
|
|
@ -13,5 +13,7 @@ public @interface ApiMark {
|
|||
|
||||
String moduleName() default "";
|
||||
|
||||
String code() default "";
|
||||
|
||||
boolean isPublic() default false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,85 @@
|
|||
package com.nflg.mobilebroken.admin.controller;
|
||||
|
||||
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.util.AdminUserUtil;
|
||||
import com.nflg.mobilebroken.common.util.VUtils;
|
||||
import com.nflg.mobilebroken.repository.entity.AdminPermissionTable;
|
||||
import com.nflg.mobilebroken.repository.service.IAdminPermissionTableService;
|
||||
import com.nflg.mobilebroken.starter.annotation.MethodInfoMark;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据权限表单相关接口
|
||||
*
|
||||
* @author 曹鹏飞
|
||||
**/
|
||||
@RestController
|
||||
@RequestMapping("/form")
|
||||
public class FormController extends ControllerBase {
|
||||
|
||||
@Resource
|
||||
private TableInfoService tableInfoService;
|
||||
|
||||
@Resource
|
||||
private IAdminPermissionTableService permissionTableService;
|
||||
|
||||
/**
|
||||
* 获取表列表
|
||||
*/
|
||||
@GetMapping("getTables")
|
||||
@MethodInfoMark(value = "获取表列表", menuName = "表单管理")
|
||||
@ApiMark(moduleName = "表单管理", apiName = "获取表列表")
|
||||
public ApiResult<List<DescVO>> getTables() {
|
||||
return ApiResult.success(tableInfoService.getTableInfos());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取列列表
|
||||
*/
|
||||
@GetMapping("getTableColumns")
|
||||
@MethodInfoMark(value = "获取列列表", menuName = "表单管理")
|
||||
@ApiMark(moduleName = "表单管理", apiName = "获取列列表")
|
||||
public ApiResult<List<DescVO>> getTableColumnInfos(@RequestParam String tableName) {
|
||||
return ApiResult.success(tableInfoService.getTableColumnInfos(tableName));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增表单
|
||||
*/
|
||||
@PostMapping("add")
|
||||
public void add(@Valid @RequestBody FormAddRequest request) {
|
||||
VUtils.trueThrowBusinessError(permissionTableService.lambdaQuery()
|
||||
.eq(AdminPermissionTable::getTableName, request.getTableName())
|
||||
.exists()
|
||||
).throwMessage("表单已存在");
|
||||
permissionTableService.save(new AdminPermissionTable()
|
||||
.setTableName(request.getTableName())
|
||||
.setTableDesc(request.getTableDesc())
|
||||
.setCreateBy(AdminUserUtil.getUserName())
|
||||
.setCreateTime(LocalDateTime.now())
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改表单
|
||||
*/
|
||||
@PostMapping("update")
|
||||
public void update(@Valid @RequestBody FormUpdateRequest request) {
|
||||
permissionTableService.lambdaUpdate()
|
||||
.set(AdminPermissionTable::getTableDesc, request.getTableDesc())
|
||||
.set(AdminPermissionTable::getUpdateBy, AdminUserUtil.getUserName())
|
||||
.set(AdminPermissionTable::getUpdateTime, LocalDateTime.now())
|
||||
.eq(AdminPermissionTable::getId, request.getId())
|
||||
.update();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package com.nflg.mobilebroken.admin.service;
|
||||
|
||||
import com.nflg.mobilebroken.common.pojo.vo.DescVO;
|
||||
import com.nflg.mobilebroken.repository.mapper.TableMetaMapper;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
public class TableInfoService {
|
||||
|
|
@ -13,7 +13,11 @@ public class TableInfoService {
|
|||
@Resource
|
||||
private TableMetaMapper tableMetaMapper;
|
||||
|
||||
public List<Map<String, Object>> getTableColumnInfos(String tableName) {
|
||||
public List<DescVO> getTableInfos() {
|
||||
return tableMetaMapper.getTableMeta();
|
||||
}
|
||||
|
||||
public List<DescVO> getTableColumnInfos(String tableName) {
|
||||
return tableMetaMapper.getTableColumnMeta(tableName);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ public class ControllerTest {
|
|||
api = new AdminApi()
|
||||
.setName(mark.apiName())
|
||||
.setModuleName(mark.moduleName())
|
||||
.setCode(mark.code())
|
||||
.setIsPublic(mark.isPublic())
|
||||
.setUrl(url);
|
||||
adminApiService.save(api);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
package com.nflg.mobilebroken.common.pojo.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
@Data
|
||||
public class FormAddRequest {
|
||||
|
||||
/**
|
||||
* 表名
|
||||
*/
|
||||
@NotBlank
|
||||
private String tableName;
|
||||
|
||||
/**
|
||||
* 表描述
|
||||
*/
|
||||
@NotBlank
|
||||
private String tableDesc;
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package com.nflg.mobilebroken.common.pojo.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class FormUpdateRequest {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 表描述
|
||||
*/
|
||||
private String tableDesc;
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
package com.nflg.mobilebroken.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DescVO {
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String desc;
|
||||
}
|
||||
|
|
@ -38,6 +38,11 @@ public class AdminApi implements Serializable {
|
|||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 标识
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 接口地址
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,58 @@
|
|||
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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2026
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Accessors(chain = true)
|
||||
@TableName("admin_permission_table")
|
||||
public class AdminPermissionTable implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 表名
|
||||
*/
|
||||
private String tableName;
|
||||
|
||||
/**
|
||||
* 表描述
|
||||
*/
|
||||
private String tableDesc;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 最后更新人
|
||||
*/
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 最后更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.nflg.mobilebroken.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.nflg.mobilebroken.repository.entity.AdminPermissionTable;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2026
|
||||
*/
|
||||
public interface AdminPermissionTableMapper extends BaseMapper<AdminPermissionTable> {
|
||||
|
||||
}
|
||||
|
|
@ -1,15 +1,22 @@
|
|||
package com.nflg.mobilebroken.repository.mapper;
|
||||
|
||||
import com.nflg.mobilebroken.common.pojo.vo.DescVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface TableMetaMapper {
|
||||
|
||||
@Select("SELECT COLUMN_NAME as name, COLUMN_COMMENT as comment " +
|
||||
@Select("SELECT TABLE_NAME as `name`, IF(CHAR_LENGTH(TABLE_COMMENT)=0,TABLE_NAME,TABLE_COMMENT) as `desc` " +
|
||||
"FROM information_schema.TABLES " +
|
||||
"WHERE TABLE_SCHEMA = DATABASE()"
|
||||
)
|
||||
List<DescVO> getTableMeta();
|
||||
|
||||
@Select("SELECT COLUMN_NAME as `name`,IF(CHAR_LENGTH(COLUMN_COMMENT)=0,COLUMN_NAME,COLUMN_COMMENT) as `desc` " +
|
||||
"FROM information_schema.COLUMNS " +
|
||||
"WHERE TABLE_NAME = #{tableName}")
|
||||
List<Map<String, Object>> getTableColumnMeta(@Param("tableName") String tableName);
|
||||
"WHERE TABLE_NAME = #{tableName}"
|
||||
)
|
||||
List<DescVO> getTableColumnMeta(@Param("tableName") String tableName);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
package com.nflg.mobilebroken.repository.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.mobilebroken.repository.entity.AdminPermissionTable;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2026
|
||||
*/
|
||||
public interface IAdminPermissionTableService extends IService<AdminPermissionTable> {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package com.nflg.mobilebroken.repository.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.mobilebroken.repository.entity.AdminPermissionTable;
|
||||
import com.nflg.mobilebroken.repository.mapper.AdminPermissionTableMapper;
|
||||
import com.nflg.mobilebroken.repository.service.IAdminPermissionTableService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2026
|
||||
*/
|
||||
@Service
|
||||
public class AdminPermissionTableServiceImpl extends ServiceImpl<AdminPermissionTableMapper, AdminPermissionTable> implements IAdminPermissionTableService {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nflg.mobilebroken.repository.mapper.AdminPermissionTableMapper">
|
||||
|
||||
</mapper>
|
||||
|
|
@ -33,7 +33,7 @@ public class CodeGeneratorTest {
|
|||
, Paths.get(System.getProperty("user.dir")) + "/src/main/resources/mapper"))
|
||||
)
|
||||
.strategyConfig(builder -> {
|
||||
builder.addInclude("gongfu_external_user") //只生成指定表
|
||||
builder.addInclude("admin_permission_table") //只生成指定表
|
||||
.entityBuilder()
|
||||
.enableLombok()
|
||||
.enableChainModel()
|
||||
|
|
|
|||
Loading…
Reference in New Issue