Compare commits
2 Commits
0c792869ba
...
01753966ac
| Author | SHA1 | Date |
|---|---|---|
|
|
01753966ac | |
|
|
57aadf6161 |
|
|
@ -13,5 +13,7 @@ public @interface ApiMark {
|
|||
|
||||
String moduleName() default "";
|
||||
|
||||
String code() default "";
|
||||
|
||||
boolean isPublic() default false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,134 @@
|
|||
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
|
||||
@RequestMapping("/form")
|
||||
public class FormController extends ControllerBase {
|
||||
|
||||
@Resource
|
||||
private TableInfoService tableInfoService;
|
||||
|
||||
@Resource
|
||||
private IAdminPermissionTableService permissionTableService;
|
||||
|
||||
@Resource
|
||||
private IAdminPermissionColumnService permissionColumnService;
|
||||
|
||||
/**
|
||||
* 获取表列表
|
||||
*/
|
||||
@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())
|
||||
.setRemark(request.getRemark())
|
||||
.setCreateBy(AdminUserUtil.getUserName())
|
||||
.setCreateTime(LocalDateTime.now())
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改表单
|
||||
*/
|
||||
@PostMapping("update")
|
||||
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<List<FormColumnVO>> getFormColumns(@RequestParam Long id) {
|
||||
AdminPermissionTable table = permissionTableService.getById(id);
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(table)).throwMessage("表不存在");
|
||||
List<DescVO> columns = tableInfoService.getTableColumnInfos(table.getTableName());
|
||||
List<AdminPermissionColumn> 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())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -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,26 @@
|
|||
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;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
package com.nflg.mobilebroken.common.pojo.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class FormUpdateRequest {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 表描述
|
||||
*/
|
||||
private String tableDesc;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
package com.nflg.mobilebroken.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DescVO {
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String desc;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -38,6 +38,11 @@ public class AdminApi implements Serializable {
|
|||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 标识
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 接口地址
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
* @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;
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
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 remark;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 最后更新人
|
||||
*/
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 最后更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.nflg.mobilebroken.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.nflg.mobilebroken.repository.entity.AdminPermissionColumn;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
* @author 代码生成器生成
|
||||
* @since 2026
|
||||
*/
|
||||
public interface AdminPermissionColumnMapper extends BaseMapper<AdminPermissionColumn> {
|
||||
|
||||
}
|
||||
|
|
@ -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,15 @@
|
|||
package com.nflg.mobilebroken.repository.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.mobilebroken.repository.entity.AdminPermissionColumn;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
* @author 代码生成器生成
|
||||
* @since 2026
|
||||
*/
|
||||
public interface IAdminPermissionColumnService extends IService<AdminPermissionColumn> {
|
||||
|
||||
}
|
||||
|
|
@ -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,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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
* @author 代码生成器生成
|
||||
* @since 2026
|
||||
*/
|
||||
@Service
|
||||
public class AdminPermissionColumnServiceImpl extends ServiceImpl<AdminPermissionColumnMapper, AdminPermissionColumn> implements IAdminPermissionColumnService {
|
||||
|
||||
}
|
||||
|
|
@ -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.AdminPermissionColumnMapper">
|
||||
|
||||
</mapper>
|
||||
|
|
@ -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_column") //只生成指定表
|
||||
.entityBuilder()
|
||||
.enableLombok()
|
||||
.enableChainModel()
|
||||
|
|
|
|||
Loading…
Reference in New Issue