API数据表更新

This commit is contained in:
2025-08-29 00:56:22 +08:00
parent 2948a25d9f
commit b3257bd6de
16 changed files with 837 additions and 9 deletions

View File

@@ -0,0 +1,18 @@
package com.mini.capi.biz.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author gaoxq
* @since 2025-08-29
*/
@RestController
@RequestMapping("/biz/apiMenus")
public class ApiMenusController {
}

View File

@@ -0,0 +1,18 @@
package com.mini.capi.biz.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author gaoxq
* @since 2025-08-29
*/
@RestController
@RequestMapping("/biz/apiModule")
public class ApiModuleController {
}

View File

@@ -0,0 +1,65 @@
package com.mini.capi.biz.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author gaoxq
* @since 2025-08-29
*/
@Getter
@Setter
@TableName("biz_api_menus")
public class ApiMenus implements Serializable {
private static final long serialVersionUID = 1L;
@TableField("menu_id")
private String menuId;
@TableField("menu_name")
private String menuName;
@TableField("menu_code")
private String menuCode;
@TableField("c_icon")
private String cIcon;
@TableField("c_href")
private String cHref;
@TableField("module_code")
private String moduleCode;
/**
* 租户id
*/
@TableField("f_tenant_id")
private String fTenantId;
/**
* 流程id
*/
@TableField("f_flow_id")
private String fFlowId;
/**
* 流程任务主键
*/
@TableField("f_flow_task_id")
private String fFlowTaskId;
/**
* 流程任务状态
*/
@TableField("f_flow_state")
private Integer fFlowState;
}

View File

@@ -0,0 +1,62 @@
package com.mini.capi.biz.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author gaoxq
* @since 2025-08-29
*/
@Getter
@Setter
@TableName("biz_api_module")
public class ApiModule implements Serializable {
private static final long serialVersionUID = 1L;
@TableField("module_id")
private String moduleId;
@TableField("module_name")
private String moduleName;
@TableField("module_code")
private String moduleCode;
@TableField("c_icon")
private String cIcon;
@TableField("c_href")
private String cHref;
/**
* 租户id
*/
@TableField("f_tenant_id")
private String fTenantId;
/**
* 流程id
*/
@TableField("f_flow_id")
private String fFlowId;
/**
* 流程任务主键
*/
@TableField("f_flow_task_id")
private String fFlowTaskId;
/**
* 流程任务状态
*/
@TableField("f_flow_state")
private Integer fFlowState;
}

View File

@@ -0,0 +1,16 @@
package com.mini.capi.biz.mapper;
import com.mini.capi.biz.domain.ApiMenus;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author gaoxq
* @since 2025-08-29
*/
public interface ApiMenusMapper extends BaseMapper<ApiMenus> {
}

View File

@@ -0,0 +1,16 @@
package com.mini.capi.biz.mapper;
import com.mini.capi.biz.domain.ApiModule;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author gaoxq
* @since 2025-08-29
*/
public interface ApiModuleMapper extends BaseMapper<ApiModule> {
}

View File

@@ -0,0 +1,16 @@
package com.mini.capi.biz.service;
import com.mini.capi.biz.domain.ApiMenus;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author gaoxq
* @since 2025-08-29
*/
public interface ApiMenusService extends IService<ApiMenus> {
}

View File

@@ -0,0 +1,16 @@
package com.mini.capi.biz.service;
import com.mini.capi.biz.domain.ApiModule;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author gaoxq
* @since 2025-08-29
*/
public interface ApiModuleService extends IService<ApiModule> {
}

View File

@@ -0,0 +1,20 @@
package com.mini.capi.biz.service.impl;
import com.mini.capi.biz.domain.ApiMenus;
import com.mini.capi.biz.mapper.ApiMenusMapper;
import com.mini.capi.biz.service.ApiMenusService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author gaoxq
* @since 2025-08-29
*/
@Service
public class ApiMenusServiceImpl extends ServiceImpl<ApiMenusMapper, ApiMenus> implements ApiMenusService {
}

View File

@@ -0,0 +1,20 @@
package com.mini.capi.biz.service.impl;
import com.mini.capi.biz.domain.ApiModule;
import com.mini.capi.biz.mapper.ApiModuleMapper;
import com.mini.capi.biz.service.ApiModuleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author gaoxq
* @since 2025-08-29
*/
@Service
public class ApiModuleServiceImpl extends ServiceImpl<ApiModuleMapper, ApiModule> implements ApiModuleService {
}

View File

@@ -29,7 +29,7 @@ public class demo {
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper"));
})
.strategyConfig(builder -> {
builder.addInclude("biz_api_user")
builder.addInclude("biz_api_module,biz_api_menus")
.addTablePrefix("biz_")
.entityBuilder()
.enableLombok()

View File

@@ -1,18 +1,20 @@
package com.mini.capi.sys.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mini.capi.biz.domain.ApiMenus;
import com.mini.capi.biz.domain.ApiModule;
import com.mini.capi.biz.domain.ApiUser;
import com.mini.capi.biz.service.ApiUserService;
import com.mini.capi.model.auth.Result;
import com.mini.capi.sys.service.PortalService;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import lombok.Data;
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.RestController;
import org.springframework.web.bind.annotation.*;
import java.io.Serializable;
import java.util.List;
import java.util.Objects;
@@ -24,6 +26,9 @@ public class LoginController {
@Resource
private ApiUserService userService;
@Resource
private PortalService portalService;
@Data
public static class LoginRequest implements Serializable {
@@ -63,4 +68,20 @@ public class LoginController {
return Result.error("登录失败,请稍后重试");
}
}
@GetMapping("/modules")
public List<ApiModule> modules() {
return portalService.listModules();
}
@GetMapping("/menus")
public List<ApiMenus> menus(@RequestParam String moduleCode) {
return portalService.listMenus(moduleCode);
}
@GetMapping("/me")
public ApiUser me(HttpServletRequest request) {
return portalService.currentUser(request);
}
}

View File

@@ -0,0 +1,95 @@
package com.mini.capi.sys.service;
import com.mini.capi.biz.domain.ApiMenus;
import com.mini.capi.biz.domain.ApiModule;
import com.mini.capi.biz.domain.ApiUser;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class PortalService {
private final List<ApiModule> modules = Arrays.asList(
createModule("m1","API管理","API","fa-code","#api"),
createModule("m2","邮件管理","MAIL","fa-envelope","#mail"),
createModule("m3","数据管理","DATA","fa-database","#data"),
createModule("m4","系统管理","SYS","fa-cog","#system")
);
private final List<ApiMenus> menus = Arrays.asList(
// API
createMenu("m1-1","新增API","API_ADD","fa-plus-circle","#api/add","API"),
createMenu("m1-2","API列表","API_LIST","fa-list","#api/list","API"),
createMenu("m1-3","调用统计","API_STAT","fa-bar-chart","#api/stat","API"),
createMenu("m1-4","密钥管理","API_KEY","fa-key","#api/key","API"),
createMenu("m1-5","权限设置","API_PERM","fa-shield","#api/perm","API"),
createMenu("m1-6","调用记录","API_LOG","fa-history","#api/log","API"),
// MAIL
createMenu("m2-1","发送邮件","MAIL_SEND","fa-pencil","#mail/send","MAIL"),
createMenu("m2-2","收件箱","MAIL_INBOX","fa-inbox","#mail/inbox","MAIL"),
createMenu("m2-3","已发送","MAIL_SENT","fa-paper-plane","#mail/sent","MAIL"),
createMenu("m2-4","垃圾箱","MAIL_TRASH","fa-trash","#mail/trash","MAIL"),
createMenu("m2-5","星标邮件","MAIL_STAR","fa-star","#mail/star","MAIL"),
createMenu("m2-6","邮件设置","MAIL_SET","fa-cog","#mail/set","MAIL"),
// DATA
createMenu("m3-1","数据列表","DATA_LIST","fa-table","#data/list","DATA"),
createMenu("m3-2","数据筛选","DATA_FILTER","fa-filter","#data/filter","DATA"),
createMenu("m3-3","数据导出","DATA_EXPORT","fa-download","#data/export","DATA"),
createMenu("m3-4","数据导入","DATA_IMPORT","fa-upload","#data/import","DATA"),
createMenu("m3-5","数据分析","DATA_ANALYZE","fa-bar-chart","#data/analyze","DATA"),
createMenu("m3-6","操作记录","DATA_LOG","fa-history","#data/log","DATA"),
// SYS
createMenu("m4-1","用户管理","SYS_USER","fa-user","#sys/user","SYS"),
createMenu("m4-2","角色权限","SYS_ROLE","fa-users","#sys/role","SYS"),
createMenu("m4-3","系统设置","SYS_SET","fa-sliders","#sys/set","SYS"),
createMenu("m4-4","插件管理","SYS_PLUGIN","fa-plug","#sys/plugin","SYS"),
createMenu("m4-5","安全中心","SYS_SECURE","fa-shield","#sys/secure","SYS"),
createMenu("m4-6","关于系统","SYS_ABOUT","fa-info-circle","#sys/about","SYS")
);
public List<ApiModule> listModules() {
return modules;
}
public List<ApiMenus> listMenus(String moduleCode) {
return menus.stream()
.filter(m -> m.getModuleCode().equalsIgnoreCase(moduleCode))
.collect(Collectors.toList());
}
public ApiUser currentUser(HttpServletRequest request) {
HttpSession session = request.getSession();
return (ApiUser) session.getAttribute("Authorization");
}
/* ---------- helper ---------- */
private ApiModule createModule(String id, String name, String code, String icon, String href) {
ApiModule m = new ApiModule();
m.setModuleId(id);
m.setModuleName(name);
m.setModuleCode(code);
m.setCIcon(icon);
m.setCHref(href);
return m;
}
private ApiMenus createMenu(String id, String name, String code, String icon, String href, String moduleCode) {
ApiMenus m = new ApiMenus();
m.setMenuId(id);
m.setMenuName(name);
m.setMenuCode(code);
m.setCIcon(icon);
m.setCHref(href);
m.setModuleCode(moduleCode);
return m;
}
}