伪代码

This commit is contained in:
2024-10-30 09:16:12 +08:00
parent c24f79e11c
commit 24ba81ee6f
12 changed files with 334 additions and 35 deletions

View File

@@ -5,8 +5,5 @@ spring:
name: entrance
log:
home: D:\logs
logging:
level:
root: info
homeDir: D:\logs
commonLevel: info

View File

@@ -2,9 +2,9 @@
<configuration scan="true" scanPeriod="20 seconds" debug="false">
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<springProperty scope="context" name="log.projectName" source="spring.application.name"/>
<springProperty scope="context" name="log.commonLevel" source="log.commonLevel"/>
<springProperty scope="context" name="log.homeDir" source="log.home"/>
<springProperty scope="context" name="log.projectName" source="spring.application.name" defaultValue="entrance"/>
<springProperty scope="context" name="logCommonLevel" source="log.commonLevel" defaultValue="info"/>
<springProperty scope="context" name="logHomeDir" source="log.homeDir" defaultValue="D:\logs"/>
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex"
@@ -21,10 +21,7 @@
<!--客户端输出日志-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
<!-- 设置日志输出格式 -->
${log.pattern}
</pattern>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
@@ -33,7 +30,7 @@
<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender -->
<appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>
${log.homeDir}/${log.projectName}/debug/debug.log
${logHomeDir}/${log.projectName}/debug/debug.log
</file>
<!-- 如果日志级别等于配置级别过滤器会根据onMath 和 onMismatch接收或拒绝日志。 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
@@ -48,7 +45,7 @@
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志输出位置 可相对、和绝对路径 -->
<fileNamePattern>
${log.homeDir}/${log.projectName}/debug/debug.log.%d{yyyy-MM-dd}.%i.log
${logHomeDir}/${log.projectName}/debug/debug.log.%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件,假设设置每个月滚动,且<maxHistory>是6
@@ -77,11 +74,11 @@
<onMismatch>DENY</onMismatch>
</filter>
<file>
${log.homeDir}/${log.projectName}/info/info.log
${logHomeDir}/${log.projectName}/info/info.log
</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${log.homeDir}/${log.projectName}/info/info.log.%d{yyyy-MM-dd}.%i.log
${logHomeDir}/${log.projectName}/info/info.log.%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>${log.maxHistory:-30}</maxHistory>
@@ -98,7 +95,7 @@
<!--系统中常规的error日志-->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>
${log.homeDir}/${log.projectName}/error/error.log
${logHomeDir}/${log.projectName}/error/error.log
</file>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
@@ -107,7 +104,7 @@
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${log.homeDir}/${log.projectName}/error/error.log.%d{yyyy-MM-dd}.%i.log
${logHomeDir}/${log.projectName}/error/error.log.%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>${log.maxHistory:-30}</maxHistory>
@@ -133,7 +130,7 @@
<appender-ref ref="ERROR"/>
</logger>
<root level="${log.commonLevel}">
<root level="${logCommonLevel}">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG"/>
<appender-ref ref="INFO"/>

8
system/Readme.md Normal file
View File

@@ -0,0 +1,8 @@
#### 简介
系统模块主要包含以下功能:
* 审计日志管理
* 字典、树形字典管理
* 主题管理
* 系统文件资源管理
* 定时任务管理

View File

@@ -0,0 +1,34 @@
package com.njcn.gather.system.auth.controller;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.gather.system.auth.pojo.Token;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("admin")
public class AuthController {
@RequestMapping("/login")
public HttpResult<Token> login() {
Token token = new Token();
token.setAccessToken("bqddxxwqmfncffacvbpkuxvwvqrhln");
HttpResult<Token> result = new HttpResult<>();
result.setMessage("成功");
result.setCode("200");
result.setData(token);
return result;
}
@RequestMapping("/logout")
public HttpResult<String> logout() {
HttpResult<String> result = new HttpResult<>();
result.setMessage("成功");
result.setCode("200");
result.setData("退出成功");
return result;
}
}

View File

@@ -0,0 +1,10 @@
package com.njcn.gather.system.auth.pojo;
import lombok.Data;
@Data
public class Token {
private String accessToken;
}

View File

@@ -1,16 +0,0 @@
package com.njcn.gather.system.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
public class Hello {
@RequestMapping("/hello")
public String hello(){
log.info("hello");
return "hello";
}
}

View File

@@ -0,0 +1,23 @@
package com.njcn.gather.system.menu.controller;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.gather.system.menu.pojo.ButtonVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("admin")
public class ButtonController {
@RequestMapping("/auth/buttons")
public HttpResult<ButtonVO> buttons() {
ButtonVO buttonVO = new ButtonVO();
HttpResult<ButtonVO> result = new HttpResult<>();
result.setMessage("成功");
result.setCode("200");
result.setData(buttonVO);
return result;
}
}

View File

@@ -0,0 +1,129 @@
package com.njcn.gather.system.menu.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.gather.system.menu.pojo.MenuVO;
import com.njcn.gather.system.menu.pojo.MetaVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@RestController
@RequestMapping("admin")
public class MenuController {
@RequestMapping("/menu/list")
public HttpResult<List<MenuVO>> menuList() {
List<MenuVO> menuVOList = new ArrayList<>();
MenuVO menuVO = new MenuVO();
menuVO.setPath("/home/index");
menuVO.setName("home");
menuVO.setComponent("/home/index");
MetaVO metaVO = new MetaVO();
metaVO.setIcon("HomeFilled");
metaVO.setTitle("检测计划");
metaVO.setIsLink("");
metaVO.setHide(false);
metaVO.setFull(false);
metaVO.setAffix(true);
metaVO.setKeepAlive(true);
menuVO.setMeta(metaVO);
menuVOList.add(menuVO);
MenuVO menuVO1 = getMenuVORedirect("/machine","machine","/machine/testScript","Operation","台账管理");
MenuVO menuVO11 = getMenuVO("/machine/testScript","testScript","/machine/testScript/index","Document","检测脚本");
MenuVO menuVO12 = getMenuVO("/machine/device","device","/machine/device/index","Cpu","被检设备");
MenuVO menuVO13 = getMenuVO("/machine/errorSystem","errorSystem","/machine/errorSystem/index","Tickets","误差体系");
MenuVO menuVO14 = getMenuVO("/machine/testSource","testSource","/machine/testSource/index","Help","检测源");
menuVO1.setChildren(CollectionUtil.toList(menuVO11,menuVO12,menuVO13,menuVO14));
menuVOList.add(menuVO1);
MenuVO menuVO2 = getMenuVORedirect("/authority","authority","/authority/user","Menu","权限管理");
MenuVO menuVO21 = getMenuVO("/authority/user","user","/authority/user/index","UserFilled","用户管理");
MenuVO menuVO22 = getMenuVO("/authority/role","role","/authority/role/index","Avatar","角色管理");
MenuVO menuVO23 = getMenuVO("/authority/resource","resource","/authority/resource/index","Connection","菜单管理");
menuVO2.setChildren(CollectionUtil.toList(menuVO21,menuVO22,menuVO23));
menuVOList.add(menuVO2);
MenuVO menuVO3 = getMenuVORedirect("/system","system","/system/base","Tools","系统配置");
MenuVO menuVO31 = getMenuVO("/system/base","base","/system/base/index","UserFilled","通用配置");
MenuVO menuVO32 = getMenuVO("/system/dict","dict","/system/dict/index","DataAnalysis","数据字典");
MenuVO menuVO33 = getMenuVO("/system/template","template","/system/template/index","Memo","报告模板");
MenuVO menuVO34 = getMenuVO("/system/versionRegister","versionRegister","/system/versionRegister/index","SetUp","版本注册");
menuVO3.setChildren(CollectionUtil.toList(menuVO31,menuVO32,menuVO33,menuVO34));
menuVOList.add(menuVO3);
MenuVO menuVO4 = getMenuVO("/log","log","/log/index","TrendCharts","日志管理");
menuVOList.add(menuVO4);
MenuVO menuVO5 = getMenuVO("/analyse","analyse","/analyse/index","Monitor","统计分析");
menuVOList.add(menuVO5);
MenuVO menuVO6 = getMenuVORedirect("/demo","demo","/system/demo","Tools","示例");
MenuVO menuVO61 = getMenuVO("/system/proTable","table","/demo/proTable/index","UserFilled","普通表格");
MenuVO menuVO62 = getMenuVO("/system/proTableTree","tableTree","/demo/proTableTree/index","DataAnalysis","表格树");
menuVO6.setChildren(CollectionUtil.toList(menuVO61,menuVO62));
menuVOList.add(menuVO6);
HttpResult<List<MenuVO>> result = new HttpResult<>();
result.setData(menuVOList);
result.setCode("200");
result.setMessage("成功");
return result;
}
private static MenuVO getMenuVO(String path, String name, String component,String icon,String title) {
MenuVO menu = new MenuVO();
menu.setPath(path);
menu.setName(name);
menu.setComponent(component);
MetaVO meta = new MetaVO();
meta.setIcon(icon);
meta.setTitle(title);
meta.setIsLink("");
meta.setHide(false);
meta.setFull(false);
meta.setAffix(false);
meta.setKeepAlive(true);
menu.setMeta(meta);
return menu;
}
private static MenuVO getMenuVORedirect(String path, String name, String component,String icon,String title) {
MenuVO menu = new MenuVO();
menu.setPath(path);
menu.setName(name);
menu.setRedirect(component);
MetaVO meta = new MetaVO();
meta.setIcon(icon);
meta.setTitle(title);
meta.setIsLink("");
meta.setHide(false);
meta.setFull(false);
meta.setAffix(false);
meta.setKeepAlive(true);
menu.setMeta(meta);
return menu;
}
}

View File

@@ -0,0 +1,21 @@
package com.njcn.gather.system.menu.pojo;
import cn.hutool.core.collection.CollectionUtil;
import lombok.Data;
import java.util.List;
@Data
public class ButtonVO {
private List<String> useProTable = CollectionUtil.toList("add",
"batchAdd",
"export",
"batchDelete",
"status");
private List<String> authButton = CollectionUtil.toList( "add",
"edit",
"delete",
"import",
"export");
}

View File

@@ -0,0 +1,39 @@
package com.njcn.gather.system.menu.pojo;
import lombok.Data;
import java.util.List;
@Data
public class MenuVO {
/**
* 路由菜单访问路径
*/
private String path;
/**
* 路由 name (对应页面组件 name, 可用作 KeepAlive 缓存标识 && 按钮权限筛选)
*/
private String name;
/**
* 视图文件路径
*/
private String component;
/**
* 路由重定向地址
*/
private String redirect;
/**
* 路由菜单元信息
*/
private MetaVO meta;
/**
* 子集路由菜单信息
*/
private List<MenuVO> children;
}

View File

@@ -0,0 +1,49 @@
package com.njcn.gather.system.menu.pojo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class MetaVO {
/**
* 菜单和面包屑对应的图标
*/
private String icon;
/**
* 路由标题 (用作 document.title || 菜单的名称)
*/
private String title;
/**
* 路由外链时填写的访问地址
*/
@JsonProperty("isLink")
private String isLink;
/**
* 是否在菜单中隐藏 (通常列表详情页需要隐藏)
*/
@JsonProperty("isHide")
private boolean isHide;
/**
* 菜单是否全屏 (示例:数据大屏页面)
*/
@JsonProperty("isFull")
private boolean isFull;
/**
* 菜单是否固定在标签页中 (首页通常是固定项)
*/
@JsonProperty("isAffix")
private boolean isAffix;
/**
* 当前路由是否缓存
*/
@JsonProperty("isKeepAlive")
private boolean isKeepAlive;
}

8
user/Readme.md Normal file
View File

@@ -0,0 +1,8 @@
#### 简介
用户模块主要包含以下功能:
* 用户管理
* 部门管理
* 职位管理(非必须)
* 菜单资源管理
* 认证管理