mirror of https://gitee.com/stylefeng/guns
Merge branch 'v7.0.4-develop'
commit
98a1b2e77a
53
pom.xml
53
pom.xml
|
@ -7,12 +7,12 @@
|
|||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.3.5.RELEASE</version>
|
||||
<version>2.4.2</version>
|
||||
</parent>
|
||||
|
||||
<groupId>cn.stylefeng</groupId>
|
||||
<artifactId>guns</artifactId>
|
||||
<version>7.0.1</version>
|
||||
<version>7.1.0.Final</version>
|
||||
|
||||
<name>guns</name>
|
||||
<description>单体前后端不分离,基于beetl模板引擎</description>
|
||||
|
@ -24,8 +24,7 @@
|
|||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>1.8</java.version>
|
||||
<mysql-connector-java.version>8.0.21</mysql-connector-java.version>
|
||||
<beetl.version>3.3.2.RELEASE</beetl.version>
|
||||
<roses.kernel.version>7.0.3</roses.kernel.version>
|
||||
<roses.kernel.version>7.1.0.Final</roses.kernel.version>
|
||||
<docker.img.version>latest</docker.img.version>
|
||||
</properties>
|
||||
|
||||
|
@ -97,7 +96,14 @@
|
|||
<!--系统管理基础业务-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>system-spring-boot-starter</artifactId>
|
||||
<artifactId>system-integration-beetl</artifactId>
|
||||
<version>${roses.kernel.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!--c端用户-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>customer-spring-boot-starter</artifactId>
|
||||
<version>${roses.kernel.version}</version>
|
||||
</dependency>
|
||||
|
||||
|
@ -136,6 +142,20 @@
|
|||
<version>${roses.kernel.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!--数据备份和迁移模块-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>migration-spring-boot-starter</artifactId>
|
||||
<version>${roses.kernel.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!--Socket模块-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>socket-spring-boot-starter</artifactId>
|
||||
<version>${roses.kernel.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!--wrapper工具-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
|
@ -164,6 +184,21 @@
|
|||
<version>${roses.kernel.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!--演示环境api-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>demo-api</artifactId>
|
||||
<version>${roses.kernel.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!--演示环境的业务,可选依赖-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>demo-spring-boot-starter</artifactId>
|
||||
<version>${roses.kernel.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!--数据库驱动,可根据自己需要自行删减-->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
|
@ -171,13 +206,6 @@
|
|||
<version>${mysql-connector-java.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- beet模板引擎 -->
|
||||
<dependency>
|
||||
<groupId>com.ibeetl</groupId>
|
||||
<artifactId>beetl</artifactId>
|
||||
<version>${beetl.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
|
@ -188,6 +216,7 @@
|
|||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
|
|
|
@ -1,77 +0,0 @@
|
|||
package cn.stylefeng.guns.config.web;
|
||||
|
||||
import cn.stylefeng.guns.core.beetl.CustomBeetlGroupUtilConfiguration;
|
||||
import cn.stylefeng.guns.core.beetl.expander.BeetlConfigExpander;
|
||||
import cn.stylefeng.roses.kernel.auth.api.LoginUserApi;
|
||||
import org.beetl.core.resource.ClasspathResourceLoader;
|
||||
import org.beetl.ext.spring.BeetlSpringViewResolver;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
/**
|
||||
* Beetl模板引擎的配置
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 12:34
|
||||
*/
|
||||
@Configuration
|
||||
public class BeetlConfiguration {
|
||||
|
||||
@Value("${spring.mvc.view.prefix}")
|
||||
private String prefix;
|
||||
|
||||
/**
|
||||
* Beetl的自定义配置
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 12:34
|
||||
*/
|
||||
@Bean(initMethod = "init")
|
||||
public CustomBeetlGroupUtilConfiguration customBeetlGroupUtilConfiguration(LoginUserApi loginUserApi) {
|
||||
CustomBeetlGroupUtilConfiguration customBeetlGroupUtilConfiguration = new CustomBeetlGroupUtilConfiguration(loginUserApi);
|
||||
|
||||
// 设置beetl的资源加载器
|
||||
customBeetlGroupUtilConfiguration.setResourceLoader(new ClasspathResourceLoader(BeetlConfiguration.class.getClassLoader(), prefix));
|
||||
|
||||
// 设置beetl的配置
|
||||
customBeetlGroupUtilConfiguration.setConfigProperties(createBeetlProperties());
|
||||
|
||||
return customBeetlGroupUtilConfiguration;
|
||||
}
|
||||
|
||||
/**
|
||||
* beetl的视图解析器
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 12:34
|
||||
*/
|
||||
@Bean
|
||||
public BeetlSpringViewResolver beetlViewResolver(CustomBeetlGroupUtilConfiguration customBeetlGroupUtilConfiguration) {
|
||||
BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
|
||||
beetlSpringViewResolver.setConfig(customBeetlGroupUtilConfiguration);
|
||||
beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
|
||||
beetlSpringViewResolver.setOrder(0);
|
||||
return beetlSpringViewResolver;
|
||||
}
|
||||
|
||||
/**
|
||||
* 组装beetl初始化需要的properties
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 12:33
|
||||
*/
|
||||
private Properties createBeetlProperties() {
|
||||
Properties properties = new Properties();
|
||||
properties.setProperty("DELIMITER_STATEMENT_START", BeetlConfigExpander.getDelimiterStatementStart());
|
||||
properties.setProperty("DELIMITER_STATEMENT_END", BeetlConfigExpander.getDelimiterStatementEnd());
|
||||
properties.setProperty("HTML_TAG_FLAG", BeetlConfigExpander.getHtmlTagFlag());
|
||||
properties.setProperty("RESOURCE.tagRoot", BeetlConfigExpander.getResourceTagRoot());
|
||||
properties.setProperty("RESOURCE.tagSuffix", BeetlConfigExpander.getResourceTagSuffix());
|
||||
properties.setProperty("RESOURCE.autoCheck", BeetlConfigExpander.getResourceAutoCheck());
|
||||
return properties;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
package cn.stylefeng.guns.config.web;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* 跨域拦截器
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/4/13 18:24
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class OptionsSecurityInterceptor implements HandlerInterceptor {
|
||||
|
||||
/**
|
||||
* 添加跨域允许的header
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/4/13 18:24
|
||||
*/
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
|
||||
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
|
||||
response.setHeader("Access-Control-Max-Age", "3600");
|
||||
response.setHeader("Access-Control-Allow-Headers", "Authorization");
|
||||
response.setHeader("Access-Control-Allow-Credentials", "true");
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,10 +1,9 @@
|
|||
package cn.stylefeng.guns.config.web;
|
||||
|
||||
import cn.stylefeng.guns.core.beetl.CustomBeetlGroupUtilConfiguration;
|
||||
import cn.stylefeng.guns.core.error.CustomErrorAttributes;
|
||||
import cn.stylefeng.guns.core.error.CustomErrorView;
|
||||
import cn.stylefeng.guns.core.security.AuthJwtTokenSecurityInterceptor;
|
||||
import cn.stylefeng.guns.core.security.PermissionSecurityInterceptor;
|
||||
import cn.stylefeng.roses.kernel.security.cors.CorsFilterConfiguration;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
@ -23,7 +22,7 @@ import javax.annotation.Resource;
|
|||
* @date 2020/4/11 10:23
|
||||
*/
|
||||
@Configuration
|
||||
@Import({cn.hutool.extra.spring.SpringUtil.class})
|
||||
@Import({cn.hutool.extra.spring.SpringUtil.class, CorsFilterConfiguration.class})
|
||||
public class SpringMvcConfiguration implements WebMvcConfigurer {
|
||||
|
||||
@Resource
|
||||
|
@ -32,9 +31,6 @@ public class SpringMvcConfiguration implements WebMvcConfigurer {
|
|||
@Resource
|
||||
private PermissionSecurityInterceptor permissionSecurityInterceptor;
|
||||
|
||||
@Resource
|
||||
private OptionsSecurityInterceptor optionsSecurityInterceptor;
|
||||
|
||||
/**
|
||||
* 重写系统的默认错误提示
|
||||
*
|
||||
|
@ -46,20 +42,6 @@ public class SpringMvcConfiguration implements WebMvcConfigurer {
|
|||
return new CustomErrorAttributes();
|
||||
}
|
||||
|
||||
/**
|
||||
* 默认错误页面,返回json
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/16 15:47
|
||||
*/
|
||||
@Bean("error")
|
||||
public CustomErrorView error(CustomBeetlGroupUtilConfiguration customBeetlGroupUtilConfiguration) {
|
||||
CustomErrorView customErrorView = new CustomErrorView();
|
||||
customErrorView.setUrl("/404.html");
|
||||
customErrorView.setGroupTemplate(customBeetlGroupUtilConfiguration.getGroupTemplate());
|
||||
return customErrorView;
|
||||
}
|
||||
|
||||
/**
|
||||
* json自定义序列化工具,long转string
|
||||
*
|
||||
|
@ -81,7 +63,6 @@ public class SpringMvcConfiguration implements WebMvcConfigurer {
|
|||
public void addInterceptors(InterceptorRegistry registry) {
|
||||
registry.addInterceptor(authJwtTokenSecurityInterceptor);
|
||||
registry.addInterceptor(permissionSecurityInterceptor);
|
||||
registry.addInterceptor(optionsSecurityInterceptor);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,51 +0,0 @@
|
|||
package cn.stylefeng.guns.core.beetl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.guns.core.beetl.tag.SysDictCheckBoxTag;
|
||||
import cn.stylefeng.guns.core.beetl.tag.SysDictRadioTag;
|
||||
import cn.stylefeng.guns.core.beetl.tag.SysDictSelectTag;
|
||||
import cn.stylefeng.roses.kernel.auth.api.LoginUserApi;
|
||||
import cn.stylefeng.roses.kernel.i18n.util.QuickTranslateUtil;
|
||||
import cn.stylefeng.roses.kernel.system.api.expander.SystemConfigExpander;
|
||||
import org.beetl.ext.spring.BeetlGroupUtilConfiguration;
|
||||
|
||||
/**
|
||||
* beetl拓展配置,绑定一些工具类,方便在模板中直接调用
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 11:18
|
||||
*/
|
||||
public class CustomBeetlGroupUtilConfiguration extends BeetlGroupUtilConfiguration {
|
||||
|
||||
private final LoginUserApi loginUserApi;
|
||||
|
||||
public CustomBeetlGroupUtilConfiguration(LoginUserApi loginUserApi) {
|
||||
this.loginUserApi = loginUserApi;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initOther() {
|
||||
|
||||
// 获取当前用户的接口
|
||||
groupTemplate.registerFunctionPackage("loginUser", loginUserApi);
|
||||
|
||||
// 对象工具类
|
||||
groupTemplate.registerFunctionPackage("objectUtil", ObjectUtil.class);
|
||||
|
||||
// 获取基本信息的工具
|
||||
groupTemplate.registerFunctionPackage("constants", SystemConfigExpander.class);
|
||||
|
||||
// 多语言
|
||||
groupTemplate.registerFunctionPackage("translate", QuickTranslateUtil.class);
|
||||
|
||||
// 下拉选字典
|
||||
groupTemplate.registerTag("dict_select", SysDictSelectTag.class);
|
||||
|
||||
// 单选字典
|
||||
groupTemplate.registerTag("dict_radio", SysDictRadioTag.class);
|
||||
|
||||
// 多选字典
|
||||
groupTemplate.registerTag("dict_checkbox", SysDictCheckBoxTag.class);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
package cn.stylefeng.guns.core.beetl.consts;
|
||||
|
||||
/**
|
||||
* beetl模板引擎的常量
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 12:20
|
||||
*/
|
||||
public interface BeetlConstants {
|
||||
|
||||
/**
|
||||
* 默认边界符开始
|
||||
* <p>
|
||||
* beetl默认的是 '<%'
|
||||
*/
|
||||
String DEFAULT_DELIMITER_STATEMENT_START = "@";
|
||||
|
||||
/**
|
||||
* 默认beetl边界符的结束
|
||||
* <p>
|
||||
* beetl默认的是 '%>'
|
||||
*/
|
||||
String DEFAULT_DELIMITER_STATEMENT_END = "null";
|
||||
|
||||
/**
|
||||
* 自定义标签文件Root目录
|
||||
*/
|
||||
String DEFAULT_RESOURCE_TAG_ROOT = "common/tags";
|
||||
|
||||
/**
|
||||
* 自定义标签文件后缀
|
||||
*/
|
||||
String DEFAULT_RESOURCE_TAG_SUFFIX = "tag";
|
||||
|
||||
/**
|
||||
* 是否检测文件变化,开发用true合适,但线上要改为false
|
||||
*/
|
||||
String DEFAULT_RESOURCE_AUTO_CHECK = "false";
|
||||
|
||||
/**
|
||||
* 默认beetl 支持HTML标签
|
||||
* <p>
|
||||
* beetl默认的是 '#'
|
||||
*/
|
||||
String DEFAULT_HTML_TAG_FLAG = "tag:";
|
||||
}
|
|
@ -1,77 +0,0 @@
|
|||
package cn.stylefeng.guns.core.beetl.consts;
|
||||
|
||||
/**
|
||||
* 字典html属性常量
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/16 21:06
|
||||
*/
|
||||
|
||||
public interface DictTagConstants {
|
||||
|
||||
/**
|
||||
* html组件 id
|
||||
*/
|
||||
String ID = "id";
|
||||
|
||||
/**
|
||||
* html组件 name
|
||||
*/
|
||||
String NAME = "name";
|
||||
|
||||
/**
|
||||
* html组件 type
|
||||
*/
|
||||
String TYPE = "type";
|
||||
|
||||
/**
|
||||
* 字典类型编码
|
||||
*/
|
||||
String DICT_TYPE_CODE = "dictTypeCode";
|
||||
|
||||
/**
|
||||
* layui元素的风格
|
||||
*/
|
||||
String LAY_SKIN = "laySkin";
|
||||
|
||||
/**
|
||||
* layui事件过滤器
|
||||
*/
|
||||
String LAY_FILTER = "layFilter";
|
||||
|
||||
/**
|
||||
* layui校验
|
||||
*/
|
||||
String LAY_VERIFY = "layVerify";
|
||||
|
||||
/**
|
||||
* select控件提示name
|
||||
*/
|
||||
String HEAD_NAME = "headName";
|
||||
|
||||
/**
|
||||
* select控件提示value
|
||||
*/
|
||||
String HEAD_VALUE = "headValue";
|
||||
|
||||
/**
|
||||
* select控件提示类型::1-全部,2-请选择
|
||||
*/
|
||||
String HEAD_TYPE = "headType";
|
||||
|
||||
/**
|
||||
* 默认值
|
||||
*/
|
||||
String DEFAULT_VALUE = "defaultValue";
|
||||
|
||||
/**
|
||||
* 工作流相关
|
||||
*/
|
||||
String WORKFLOW_FORM = "workflowForm";
|
||||
|
||||
/**
|
||||
* 工作流相关
|
||||
*/
|
||||
String ITEM_NAME = "itemName";
|
||||
|
||||
}
|
|
@ -1,67 +0,0 @@
|
|||
package cn.stylefeng.guns.core.beetl.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 字典下拉选头类型
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/16 20:36
|
||||
*/
|
||||
@Getter
|
||||
public enum SelectTagHeadTypeEnum {
|
||||
|
||||
/**
|
||||
* 全部
|
||||
*/
|
||||
ALL("1", "全部"),
|
||||
|
||||
/**
|
||||
* 请选择
|
||||
*/
|
||||
SELECT("2", "请选择");
|
||||
|
||||
private final String code;
|
||||
|
||||
private final String name;
|
||||
|
||||
SelectTagHeadTypeEnum(String code, String name) {
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据code获取枚举
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/16 20:36
|
||||
*/
|
||||
public static SelectTagHeadTypeEnum codeToEnum(String code) {
|
||||
if (null != code) {
|
||||
for (SelectTagHeadTypeEnum e : SelectTagHeadTypeEnum.values()) {
|
||||
if (e.getCode().equals(code)) {
|
||||
return e;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 编码转化成中文含义
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/16 20:36
|
||||
*/
|
||||
public static String codeToName(String code) {
|
||||
if (null != code) {
|
||||
for (SelectTagHeadTypeEnum e : SelectTagHeadTypeEnum.values()) {
|
||||
if (e.getCode().equals(code)) {
|
||||
return e.getName();
|
||||
}
|
||||
}
|
||||
}
|
||||
return "未知";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,73 +0,0 @@
|
|||
package cn.stylefeng.guns.core.beetl.expander;
|
||||
|
||||
import cn.stylefeng.guns.core.beetl.consts.BeetlConstants;
|
||||
import cn.stylefeng.roses.kernel.config.api.context.ConfigContext;
|
||||
|
||||
/**
|
||||
* Beetl模板引擎相关配置
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 11:36
|
||||
*/
|
||||
public class BeetlConfigExpander {
|
||||
|
||||
/**
|
||||
* 边界符开始符号
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 12:27
|
||||
*/
|
||||
public static String getDelimiterStatementStart() {
|
||||
return ConfigContext.me().getSysConfigValueWithDefault("DELIMITER_STATEMENT_START", String.class, BeetlConstants.DEFAULT_DELIMITER_STATEMENT_START);
|
||||
}
|
||||
|
||||
/**
|
||||
* beetl边界符的结束符号
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 12:27
|
||||
*/
|
||||
public static String getDelimiterStatementEnd() {
|
||||
return ConfigContext.me().getSysConfigValueWithDefault("DELIMITER_STATEMENT_END", String.class, BeetlConstants.DEFAULT_DELIMITER_STATEMENT_END);
|
||||
}
|
||||
|
||||
/**
|
||||
* 自定义标签文件Root目录
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 12:27
|
||||
*/
|
||||
public static String getResourceTagRoot() {
|
||||
return ConfigContext.me().getSysConfigValueWithDefault("RESOURCE_TAG_ROOT", String.class, BeetlConstants.DEFAULT_RESOURCE_TAG_ROOT);
|
||||
}
|
||||
|
||||
/**
|
||||
* 自定义标签文件后缀
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 12:27
|
||||
*/
|
||||
public static String getResourceTagSuffix() {
|
||||
return ConfigContext.me().getSysConfigValueWithDefault("RESOURCE_TAG_SUFFIX", String.class, BeetlConstants.DEFAULT_RESOURCE_TAG_SUFFIX);
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否检测文件变化,开发用true合适,但线上要改为false
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 12:27
|
||||
*/
|
||||
public static String getResourceAutoCheck() {
|
||||
return ConfigContext.me().getSysConfigValueWithDefault("RESOURCE_AUTO_CHECK", String.class, BeetlConstants.DEFAULT_RESOURCE_AUTO_CHECK);
|
||||
}
|
||||
/**
|
||||
* 自定义支持HTML标签
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/16 21:06
|
||||
*/
|
||||
public static String getHtmlTagFlag() {
|
||||
return ConfigContext.me().getSysConfigValueWithDefault("HTML_TAG_FLAG", String.class, BeetlConstants.DEFAULT_HTML_TAG_FLAG);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,182 +0,0 @@
|
|||
package cn.stylefeng.guns.core.beetl.tag;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import cn.stylefeng.guns.core.beetl.consts.DictTagConstants;
|
||||
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
|
||||
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
|
||||
import cn.stylefeng.roses.kernel.dict.modular.service.DictService;
|
||||
import cn.stylefeng.roses.kernel.dict.modular.service.DictTypeService;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.beetl.core.tag.GeneralVarTagBinding;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* beetl字典标签基类
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/16 18:45
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class SysDictBaseTag extends GeneralVarTagBinding {
|
||||
|
||||
public DictService dictService = SpringUtil.getBean(DictService.class);
|
||||
|
||||
public DictTypeService dictTypeService = SpringUtil.getBean(DictTypeService.class);
|
||||
|
||||
/**
|
||||
* html组件 id
|
||||
*/
|
||||
public String id;
|
||||
|
||||
/**
|
||||
* html组件 name
|
||||
*/
|
||||
public String name;
|
||||
|
||||
/**
|
||||
* html组件 type
|
||||
*/
|
||||
public String type;
|
||||
|
||||
/**
|
||||
* 字典类型编码
|
||||
*/
|
||||
public String dictTypeCode;
|
||||
|
||||
/**
|
||||
* layui元素的风格
|
||||
*/
|
||||
public String laySkin;
|
||||
|
||||
/**
|
||||
* layui事件过滤器
|
||||
*/
|
||||
public String layFilter;
|
||||
|
||||
/**
|
||||
* layui校验
|
||||
*/
|
||||
public String layVerify;
|
||||
|
||||
/**
|
||||
* select控件提示name
|
||||
*/
|
||||
public String headName;
|
||||
|
||||
/**
|
||||
* select控件提示value
|
||||
*/
|
||||
public String headValue;
|
||||
|
||||
/**
|
||||
* select控件提示类型::1-全部,2-请选择
|
||||
*/
|
||||
public String headType;
|
||||
|
||||
/**
|
||||
* 默认值
|
||||
*/
|
||||
public String defaultValue;
|
||||
|
||||
/**
|
||||
* 工作流相关
|
||||
*/
|
||||
public String workflowForm;
|
||||
|
||||
/**
|
||||
* 工作流相关
|
||||
*/
|
||||
public String itemName;
|
||||
|
||||
/**
|
||||
* 初始化绑定属性
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/16 23:49
|
||||
*/
|
||||
public void initAttr() {
|
||||
Map<String, Object> attrs = this.getAttributes();
|
||||
if (attrs.size() > 0) {
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.ID))) {
|
||||
this.setId(attrs.get(DictTagConstants.ID).toString());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.NAME))) {
|
||||
this.setName(attrs.get(DictTagConstants.NAME).toString());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.TYPE))) {
|
||||
this.setType(attrs.get(DictTagConstants.TYPE).toString());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.DICT_TYPE_CODE))) {
|
||||
this.setDictTypeCode(attrs.get(DictTagConstants.DICT_TYPE_CODE).toString());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.LAY_SKIN))) {
|
||||
this.setLaySkin(attrs.get(DictTagConstants.LAY_SKIN).toString());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.LAY_FILTER))) {
|
||||
this.setLayFilter(attrs.get(DictTagConstants.LAY_FILTER).toString());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.LAY_VERIFY))) {
|
||||
this.setLayVerify(attrs.get(DictTagConstants.LAY_VERIFY).toString());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.HEAD_NAME))) {
|
||||
this.setHeadName(attrs.get(DictTagConstants.HEAD_NAME).toString());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.HEAD_VALUE))) {
|
||||
this.setHeadValue(attrs.get(DictTagConstants.HEAD_VALUE).toString());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.HEAD_TYPE))) {
|
||||
this.setHeadType(attrs.get(DictTagConstants.HEAD_TYPE).toString());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.DEFAULT_VALUE))) {
|
||||
this.setDefaultValue(attrs.get(DictTagConstants.DEFAULT_VALUE).toString());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.WORKFLOW_FORM))) {
|
||||
this.setWorkflowForm(attrs.get(DictTagConstants.WORKFLOW_FORM).toString());
|
||||
}
|
||||
if (ObjectUtil.isNotNull(attrs.get(DictTagConstants.ITEM_NAME))) {
|
||||
this.setItemName(attrs.get(DictTagConstants.ITEM_NAME).toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取字典类型
|
||||
*
|
||||
* @return 字典类型
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/16 23:46
|
||||
*/
|
||||
public SysDictType getDictType() {
|
||||
// 根据字典类型编码去查询字典类型
|
||||
LambdaQueryWrapper<SysDictType> dictTypeQueryWrapper = new LambdaQueryWrapper<>();
|
||||
dictTypeQueryWrapper.eq(SysDictType::getDictTypeCode, this.getDictTypeCode());
|
||||
dictTypeQueryWrapper.ne(SysDictType::getDelFlag, YesOrNotEnum.Y.getCode());
|
||||
return dictTypeService.getOne(dictTypeQueryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return 根据字典类型返回字典集合
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/16 23:46
|
||||
*/
|
||||
public List<SysDict> getDictList() {
|
||||
// 查询字典列表
|
||||
LambdaQueryWrapper<SysDict> dictQueryWrapper = new LambdaQueryWrapper<>();
|
||||
dictQueryWrapper.eq(SysDict::getDictTypeCode, this.getDictTypeCode());
|
||||
dictQueryWrapper.ne(SysDict::getDelFlag, YesOrNotEnum.Y.getCode());
|
||||
dictQueryWrapper.orderByAsc(SysDict::getDictSort);
|
||||
return dictService.list(dictQueryWrapper);
|
||||
}
|
||||
}
|
|
@ -1,72 +0,0 @@
|
|||
package cn.stylefeng.guns.core.beetl.tag;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
|
||||
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* checkbox字典组件
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/16 19:06
|
||||
*/
|
||||
@Slf4j
|
||||
public class SysDictCheckBoxTag extends SysDictBaseTag {
|
||||
|
||||
@Override
|
||||
public void render() {
|
||||
// 初始属性
|
||||
initAttr();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
// 当字典类型编码不为空
|
||||
if (StrUtil.isNotBlank(this.getDictTypeCode())) {
|
||||
// 根据字典类型编码去查询字典类型
|
||||
SysDictType dictType = getDictType();
|
||||
// 判断字典类型不为空
|
||||
if (dictType != null) {
|
||||
List<SysDict> lst = getDictList();
|
||||
// 默认选中值
|
||||
String defaultValue = this.getDefaultValue();
|
||||
// 循环字典列表
|
||||
for (SysDict option : lst) {
|
||||
// 生成input的id
|
||||
String id = this.getType() + "_" + this.getName() + "_" + option.getDictCode();
|
||||
// 拼接html
|
||||
sb.append(" <input type='checkbox' name='").append(this.getName())
|
||||
.append("' id='").append(id)
|
||||
.append("' title='").append(option.getDictName())
|
||||
.append("' value='").append(option.getDictCode())
|
||||
.append("'");
|
||||
// layui 元素的风格
|
||||
if (StrUtil.isNotBlank(this.getLaySkin())) {
|
||||
sb.append(" lay-skin='").append(this.getLaySkin()).append("'");
|
||||
}
|
||||
// layui 事件过滤器
|
||||
if (StrUtil.isNotBlank(this.getLayFilter())) {
|
||||
sb.append(" lay-filter='").append(this.getLayFilter()).append("'");
|
||||
}
|
||||
// layui 表单验证
|
||||
if (StrUtil.isNotBlank(this.getLayVerify())) {
|
||||
sb.append(" lay-verify='").append(this.getLayVerify()).append("'");
|
||||
}
|
||||
// 默认选中值
|
||||
if (StrUtil.isNotBlank(defaultValue) && defaultValue.equals(option.getDictCode())) {
|
||||
sb.append(" checked ");
|
||||
}
|
||||
sb.append(" /> ");
|
||||
}
|
||||
}
|
||||
}
|
||||
try {
|
||||
this.ctx.byteWriter.writeString(sb.toString());
|
||||
} catch (IOException e) {
|
||||
log.error("checkbox字典初始化异常:",e);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,79 +0,0 @@
|
|||
package cn.stylefeng.guns.core.beetl.tag;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
|
||||
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* radio字典组件
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/16 19:59
|
||||
*/
|
||||
@Slf4j
|
||||
public class SysDictRadioTag extends SysDictBaseTag {
|
||||
@Override
|
||||
public void render() {
|
||||
// 初始属性
|
||||
initAttr();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
// 当字典类型编码不为空
|
||||
if (StrUtil.isNotBlank(this.getDictTypeCode())) {
|
||||
// 根据字典类型编码去查询字典类型
|
||||
SysDictType dictType = getDictType();
|
||||
// 判断字典类型不为空
|
||||
if (dictType != null) {
|
||||
List<SysDict> lst = getDictList();
|
||||
// 默认选中值
|
||||
String defaultValue = this.getDefaultValue();
|
||||
int index = 0;
|
||||
for (SysDict option : lst) {
|
||||
// 生成input的id
|
||||
String id = this.getType() + "_" + this.getName() + "_" + option.getDictCode();
|
||||
// 拼接html
|
||||
sb.append(" <input type='radio' name='").append(this.getName())
|
||||
.append("' id='").append(id)
|
||||
.append("' title='").append(option.getDictName())
|
||||
.append("' value='").append(option.getDictCode())
|
||||
.append("'");
|
||||
|
||||
// layui 元素的风格
|
||||
if (StrUtil.isNotBlank(this.getLaySkin())) {
|
||||
sb.append(" lay-skin='").append(this.getLaySkin()).append("'");
|
||||
}
|
||||
// layui 事件过滤器
|
||||
if (StrUtil.isNotBlank(this.getLayFilter())) {
|
||||
sb.append(" lay-filter='").append(this.getLayFilter()).append("'");
|
||||
}
|
||||
// layui 表单验证
|
||||
if (StrUtil.isNotBlank(this.getLayVerify())) {
|
||||
sb.append(" lay-verify='").append(this.getLayVerify()).append("'");
|
||||
}
|
||||
// 默认选中值
|
||||
if (StrUtil.isNotBlank(defaultValue) && defaultValue.equals(option.getDictCode())) {
|
||||
sb.append(" checked ");
|
||||
} else {
|
||||
// 无默认值选中第一个(忘了为什么设计先保留逻辑)
|
||||
if (index == 0) {
|
||||
sb.append(" checked ");
|
||||
}
|
||||
}
|
||||
|
||||
sb.append(" /> ");
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
try {
|
||||
this.ctx.byteWriter.writeString(sb.toString());
|
||||
} catch (IOException e) {
|
||||
log.error("select字典初始化异常:", e);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,98 +0,0 @@
|
|||
package cn.stylefeng.guns.core.beetl.tag;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.stylefeng.guns.core.beetl.enums.SelectTagHeadTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
|
||||
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* select字典组件
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/16 19:37
|
||||
*/
|
||||
@Slf4j
|
||||
public class SysDictSelectTag extends SysDictBaseTag {
|
||||
|
||||
@Override
|
||||
public void render() {
|
||||
// 初始属性
|
||||
initAttr();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
// 当字典类型编码不为空
|
||||
if (StrUtil.isNotBlank(this.getDictTypeCode())) {
|
||||
sb.append("<select name='").append(this.getName())
|
||||
.append("' id='").append(this.getId())
|
||||
.append("'");
|
||||
|
||||
// layui 事件过滤器
|
||||
if (StrUtil.isNotBlank(this.getLayFilter())) {
|
||||
sb.append(" lay-filter='").append(this.getLayFilter()).append("' ");
|
||||
}
|
||||
// layui 表单验证
|
||||
if (StrUtil.isNotBlank(this.getLayVerify())) {
|
||||
sb.append(" lay-verify='").append(this.getLayVerify()).append("' ");
|
||||
}
|
||||
// 原有工作流用到
|
||||
if (StrUtil.isNotBlank(this.getWorkflowForm())) {
|
||||
sb.append(" workFlowForm='").append(this.getWorkflowForm()).append("' ");
|
||||
}
|
||||
if (StrUtil.isNotBlank(this.getItemName())) {
|
||||
sb.append(" itemName='").append(this.getItemName()).append("' ");
|
||||
}
|
||||
sb.append(" >");
|
||||
|
||||
if (StrUtil.isNotBlank(this.getHeadName())) {
|
||||
sb.append("<option value='").append(this.getHeadValue()).append("' selected>")
|
||||
.append(this.getHeadName()).append("</option>");
|
||||
} else {
|
||||
if (StrUtil.isNotBlank(this.getHeadType())) {
|
||||
if (SelectTagHeadTypeEnum.ALL.getCode().equals(this.getHeadType())) {
|
||||
sb.append("<option value='").append(this.getHeadValue()).append("' selected>")
|
||||
.append(" - 全部 - ").append("</option>");
|
||||
}
|
||||
if (SelectTagHeadTypeEnum.SELECT.getCode().equals(this.getHeadType())) {
|
||||
sb.append("<option value='").append(this.getHeadValue()).append("' selected>")
|
||||
.append(" - 请选择 - ").append("</option>");
|
||||
}
|
||||
}
|
||||
}
|
||||
// 根据字典类型编码去查询字典类型
|
||||
SysDictType dictType = getDictType();
|
||||
// 判断字典类型不为空
|
||||
if (dictType != null) {
|
||||
List<SysDict> lst = getDictList();
|
||||
// 默认选中值
|
||||
String defaultValue = this.getDefaultValue();
|
||||
// 循环字典列表,添加下拉选项
|
||||
int index = 0;
|
||||
for (SysDict option : lst) {
|
||||
sb.append("<option value='").append(option.getDictCode()).append("'");
|
||||
// 设置默认选中值
|
||||
if (StrUtil.isNotBlank(defaultValue) && defaultValue.equals(option.getDictCode())) {
|
||||
sb.append(" selected ");
|
||||
} else {
|
||||
// 未设置headName和headType 默认选中第一个
|
||||
if (index == 0 && StrUtil.isNotBlank(this.getHeadName()) && StrUtil.isNotBlank(this.getHeadType())) {
|
||||
sb.append(" selected ");
|
||||
}
|
||||
}
|
||||
sb.append(">").append(option.getDictName()).append("</option>");
|
||||
index++;
|
||||
}
|
||||
}
|
||||
sb.append("</select>");
|
||||
}
|
||||
try {
|
||||
this.ctx.byteWriter.writeString(sb.toString());
|
||||
} catch (IOException e) {
|
||||
log.error("select字典初始化异常:",e);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
package cn.stylefeng.guns.core.error;
|
||||
|
||||
import org.beetl.ext.spring.BeetlSpringView;
|
||||
|
||||
/**
|
||||
* 错误页面的默认跳转(例如请求404的时候,默认走这个视图解析器)
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2017-05-21 11:34
|
||||
*/
|
||||
public class CustomErrorView extends BeetlSpringView {
|
||||
|
||||
@Override
|
||||
public String getContentType() {
|
||||
return "text/html;charset=UTF-8";
|
||||
}
|
||||
|
||||
}
|
|
@ -4,6 +4,8 @@ import cn.hutool.core.util.ObjectUtil;
|
|||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.stylefeng.roses.kernel.auth.api.exception.AuthException;
|
||||
import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.demo.exception.DemoException;
|
||||
import cn.stylefeng.roses.kernel.demo.exception.enums.DemoExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.constants.SymbolConstant;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
|
@ -11,10 +13,13 @@ import cn.stylefeng.roses.kernel.rule.exception.enums.defaults.DefaultBusinessEx
|
|||
import cn.stylefeng.roses.kernel.rule.pojo.response.ErrorResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.util.ExceptionUtil;
|
||||
import cn.stylefeng.roses.kernel.rule.util.HttpServletUtil;
|
||||
import cn.stylefeng.roses.kernel.rule.util.ProjectUtil;
|
||||
import cn.stylefeng.roses.kernel.rule.util.ResponseRenderUtil;
|
||||
import cn.stylefeng.roses.kernel.validator.api.exception.ParamValidateException;
|
||||
import cn.stylefeng.roses.kernel.validator.api.exception.enums.ValidatorExceptionEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.ibatis.exceptions.PersistenceException;
|
||||
import org.mybatis.spring.MyBatisSystemException;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.converter.HttpMessageNotReadableException;
|
||||
import org.springframework.ui.Model;
|
||||
|
@ -187,8 +192,8 @@ public class GlobalExceptionHandler {
|
|||
|
||||
// 如果是普通请求
|
||||
if (HttpServletUtil.getNormalRequestFlag(request)) {
|
||||
model.addAttribute("tips", AuthExceptionEnum.AUTH_EXPIRED_ERROR.getUserTip());
|
||||
return "/login.html";
|
||||
// 根据是否是前后端分离项目,进行结果响应
|
||||
return this.renderLoginResult(response, authException, model);
|
||||
} else {
|
||||
// 其他请求或者是ajax请求
|
||||
response.setHeader("Guns-Session-Timeout", "true");
|
||||
|
@ -201,8 +206,8 @@ public class GlobalExceptionHandler {
|
|||
// 如果是没带token访问页面,则返回到登录界面
|
||||
if (AuthExceptionEnum.TOKEN_GET_ERROR.getErrorCode().equals(errorCode)) {
|
||||
if (HttpServletUtil.getNormalRequestFlag(request)) {
|
||||
model.addAttribute("tips", AuthExceptionEnum.AUTH_EXPIRED_ERROR.getUserTip());
|
||||
return "/login.html";
|
||||
// 根据是否是前后端分离项目,进行结果响应
|
||||
return this.renderLoginResult(response, authException, model);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -226,6 +231,28 @@ public class GlobalExceptionHandler {
|
|||
return renderJson(e.getErrorCode(), e.getUserTip(), e);
|
||||
}
|
||||
|
||||
/**
|
||||
* 拦截mybatis数据库操作的异常
|
||||
* <p>
|
||||
* 用在demo模式,拦截DemoException
|
||||
*
|
||||
* @author stylefeng
|
||||
* @date 2020/5/5 15:19
|
||||
*/
|
||||
@ExceptionHandler(MyBatisSystemException.class)
|
||||
@ResponseBody
|
||||
public ErrorResponseData persistenceException(MyBatisSystemException e) {
|
||||
log.error(">>> mybatis操作出现异常,具体信息为:{}", e.getMessage());
|
||||
Throwable cause = e.getCause();
|
||||
if (cause instanceof PersistenceException) {
|
||||
Throwable secondCause = cause.getCause();
|
||||
if (secondCause instanceof DemoException) {
|
||||
return renderJson(DemoExceptionEnum.DEMO_OPERATE);
|
||||
}
|
||||
}
|
||||
return renderJson(e);
|
||||
}
|
||||
|
||||
/**
|
||||
* 拦截未知的运行时异常
|
||||
*
|
||||
|
@ -322,4 +349,27 @@ public class GlobalExceptionHandler {
|
|||
return StrUtil.removePrefix(stringBuilder.toString(), SymbolConstant.COMMA);
|
||||
}
|
||||
|
||||
/**
|
||||
* 渲染登录界面,分两种情况
|
||||
* <p>
|
||||
* 第一种,如果是前后端不分离,则渲染登录界面即可
|
||||
* <p>
|
||||
* 第二种,如果是前后端分离项目,则渲染Json结果
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/5/18 10:48
|
||||
*/
|
||||
private String renderLoginResult(HttpServletResponse response, AuthException authException, Model model) {
|
||||
|
||||
if (ProjectUtil.getSeparationFlag()) {
|
||||
response.setHeader("Guns-Session-Timeout", "true");
|
||||
ErrorResponseData errorResponseData = renderJson(authException.getErrorCode(), authException.getUserTip(), authException);
|
||||
ResponseRenderUtil.renderJsonResponse(response, errorResponseData);
|
||||
return null;
|
||||
}
|
||||
|
||||
model.addAttribute("tips", authException.getUserTip());
|
||||
return "/login.html";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ public abstract class BaseSecurityInterceptor implements HandlerInterceptor {
|
|||
|
||||
// 1. 获取当前请求的路径
|
||||
String requestURI = request.getRequestURI();
|
||||
requestURI = requestURI.replaceAll("/+", "/");
|
||||
|
||||
// 2. 不需要权限过滤的资源,直接放行
|
||||
Boolean noneSecurityFlag = AntPathMatcherUtil.getAntMatchFLag(requestURI, request.getContextPath(), AuthConfigExpander.getNoneSecurityConfig());
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package cn.stylefeng.guns.modular.business.controller;
|
||||
package cn.stylefeng.guns.modular.demo.controller;
|
||||
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.stylefeng.guns.modular.business.service.DemoService;
|
||||
import cn.stylefeng.guns.modular.demo.service.DemoService;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* 这个包写用户的业务的代码
|
||||
*/
|
||||
package cn.stylefeng.guns.modular.business;
|
||||
package cn.stylefeng.guns.modular.demo;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.guns.modular.business.service;
|
||||
package cn.stylefeng.guns.modular.demo.service;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.api;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* API文档管理
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/14 21:05
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "API文档管理")
|
||||
public class ApiViewController {
|
||||
|
||||
/**
|
||||
* 编辑应用界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 13:37
|
||||
*/
|
||||
@GetResource(name = "API文档界面", path = "/view/api")
|
||||
public String apiIndex() {
|
||||
return "/modular/system/api/api.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.app;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 应用管理界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 13:32
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "应用管理界面")
|
||||
public class AppViewController {
|
||||
|
||||
/**
|
||||
* 应用管理首页
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 13:32
|
||||
*/
|
||||
@GetResource(name = "应用管理首页", path = "/view/app")
|
||||
public String appIndex() {
|
||||
return "/modular/system/app/app.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增应用界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 13:37
|
||||
*/
|
||||
@GetResource(name = "新增应用界面", path = "/view/app/add")
|
||||
public String appAdd() {
|
||||
return "/modular/system/app/app_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑应用界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 13:37
|
||||
*/
|
||||
@GetResource(name = "编辑应用界面", path = "/view/app/edit")
|
||||
public String appEdit() {
|
||||
return "/modular/system/app/app_edit.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.common;
|
||||
|
||||
import cn.stylefeng.guns.modular.system.common.pojo.CommonTreeRequest;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.enums.defaults.DefaultBusinessExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLDecoder;
|
||||
|
||||
/**
|
||||
* 通用界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 20:18
|
||||
*/
|
||||
@Controller
|
||||
@Slf4j
|
||||
@ApiResource(name = "通用界面")
|
||||
public class CommonViewController {
|
||||
|
||||
/**
|
||||
* 通用的树列表选择器
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 20:19
|
||||
*/
|
||||
@GetResource(name = "通用的树列表选择器", path = "/view/common/tree")
|
||||
public String commonTreeSelect(@Valid CommonTreeRequest commonTreeRequest, Model model) {
|
||||
try {
|
||||
model.addAttribute("formName", URLDecoder.decode(commonTreeRequest.getFormName(), "UTF-8"));
|
||||
model.addAttribute("formId", URLDecoder.decode(commonTreeRequest.getFormId(), "UTF-8"));
|
||||
model.addAttribute("treeUrl", URLDecoder.decode(commonTreeRequest.getTreeUrl(), "UTF-8"));
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
log.error("解析url的参数出错!", e);
|
||||
throw new ServiceException("guns-standalone-beetl", DefaultBusinessExceptionEnum.SYSTEM_RUNTIME_ERROR);
|
||||
}
|
||||
return "/component/tree_dlg.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.common.pojo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 通用树选择器界面的请求参数
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 20:20
|
||||
*/
|
||||
@Data
|
||||
public class CommonTreeRequest {
|
||||
|
||||
/**
|
||||
* 传递给上级页面的哪个字段,例如 parent.MenuInfoDlg.data.pcodeName
|
||||
*/
|
||||
@NotBlank(message = "fromName不能为空")
|
||||
private String formName;
|
||||
|
||||
/**
|
||||
* 传递给上级页面的哪个id值,例如 parent.MenuInfoDlg.data.pid
|
||||
*/
|
||||
@NotBlank(message = "formId不能为空")
|
||||
private String formId;
|
||||
|
||||
/**
|
||||
* 渲染出数据的url,例如/menu/selectMenuTreeList
|
||||
*/
|
||||
@NotBlank(message = "tree渲染的url参数不能为空")
|
||||
private String treeUrl;
|
||||
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.config;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 系统配置相关页面渲染
|
||||
*
|
||||
* @author jiawei
|
||||
* @date 2021/1/10 14:28
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "系统配置相关页面")
|
||||
public class ConfigViewController {
|
||||
|
||||
/**
|
||||
* 系统配置-首页-视图
|
||||
*
|
||||
* @author jiawei
|
||||
* @date 2021/1/4 13:33
|
||||
*/
|
||||
@GetResource(name = "系统配置-列表-视图", path = "/view/config")
|
||||
public String indexView() {
|
||||
return "/modular/system/config/config.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 系统配置—新增-视图
|
||||
*
|
||||
* @author jiawei
|
||||
* @date 2021/1/4 13:34
|
||||
*/
|
||||
@GetResource(name = "系统配置—新增-视图", path = "/view/config/addView")
|
||||
public String addView() {
|
||||
return "/modular/system/config/sysConfig_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 系统配置-修改-视图
|
||||
*
|
||||
* @author jiawei
|
||||
* @date 2021/1/4 13:35
|
||||
*/
|
||||
@GetResource(name = "系统配置-修改-视图", path = "/view/config/editView")
|
||||
public String editView() {
|
||||
return "/modular/system/config/sysConfig_edit.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.dashboard;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 工作台和分析页界面渲染
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/29 21:29
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "工作台和分析页面")
|
||||
public class DashboardViewController {
|
||||
|
||||
/**
|
||||
* 工作台
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2018/12/24 22:43
|
||||
*/
|
||||
@GetResource(name = "工作台", path = "/view/dashboard/workplace", requiredPermission = false)
|
||||
public String platform() {
|
||||
return "/modular/system/dashboard/board_platform.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 分析页面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/29 21:27
|
||||
*/
|
||||
@GetResource(name = "分析页面", path = "/view/dashboard/analysis", requiredPermission = false)
|
||||
public String analyse() {
|
||||
return "/modular/system/dashboard/board_analyse.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.dataCenter;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 数据中心视图控制器
|
||||
*
|
||||
* @author linjinfeng
|
||||
* @date 2021/3/29 10:00
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "数据中心导入导出相关的界面渲染")
|
||||
public class dataCenterViewController {
|
||||
|
||||
/**
|
||||
* 基础数据-导出中心-视图
|
||||
*
|
||||
* @author linjinfeng
|
||||
* @date 2021/3/29 10:00
|
||||
*/
|
||||
@GetResource(name = "基础数据-导出中心-视图", path = "/view/export")
|
||||
public String exportView() {
|
||||
return "/modular/system/dataCenter/exportCenter.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 基础数据-导入中心-视图
|
||||
*
|
||||
* @author linjinfeng
|
||||
* @date 2021/3/29 10:00
|
||||
*/
|
||||
@GetResource(name = "基础数据-导出中心-视图", path = "/view/import")
|
||||
public String importView() {
|
||||
return "/modular/system/dataCenter/importCenter.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.datasource;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 多数据源界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/23 21:45
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "多数据源界面")
|
||||
public class DataSourceViewController {
|
||||
|
||||
/**
|
||||
* 多数据源列表界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/23 21:45
|
||||
*/
|
||||
@GetResource(name = "多数据源列表界面", path = "/view/datasource")
|
||||
public String indexView() {
|
||||
return "/modular/system/datasource/datasource.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 多数据源新增界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/23 21:59
|
||||
*/
|
||||
@GetResource(name = "多数据源新增界面", path = "/view/datasource/add")
|
||||
public String addView() {
|
||||
return "/modular/system/datasource/datasource_add.html";
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.dict;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 字典类型视图控制器
|
||||
*
|
||||
* @author huangyao
|
||||
* @date 2021/1/6 20:53
|
||||
**/
|
||||
@Controller
|
||||
@ApiResource(name = "字典类型管理相关的界面渲染")
|
||||
public class DictTypeViewController {
|
||||
|
||||
/**
|
||||
* 字典管理-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/22 16:09
|
||||
*/
|
||||
@GetResource(name = "字典类型管理-列表-视图", path = "/view/dictType")
|
||||
public String indexView() {
|
||||
return "/modular/system/dict/dictType.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典类型管理-添加-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/22 16:09
|
||||
*/
|
||||
@GetResource(name = "字典类型管理-添加-视图", path = "/view/dictType/addView")
|
||||
public String addView() {
|
||||
return "/modular/system/dict/dictType_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典类型管理-编辑-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/22 16:09
|
||||
*/
|
||||
@GetResource(name = "字典类型管理-编辑-视图", path = "/view/dictType/editView")
|
||||
public String editView() {
|
||||
return "/modular/system/dict/dictType_edit.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,62 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.dict;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 字典视图控制器
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/22 16:09
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "字典管理相关的界面渲染")
|
||||
public class DictViewController {
|
||||
|
||||
/**
|
||||
* 字典管理-列表-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/22 16:09
|
||||
*/
|
||||
@GetResource(name = "字典管理-列表-视图", path = "/view/dict")
|
||||
public String indexView() {
|
||||
return "/modular/system/dict/dict.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典管理-添加-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/22 16:09
|
||||
*/
|
||||
@GetResource(name = "字典管理-添加-视图", path = "/view/dict/addView")
|
||||
public String addView() {
|
||||
return "/modular/system/dict/dict_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典管理-添加系统配置字典-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/22 16:09
|
||||
*/
|
||||
@GetResource(name = "字典管理-添加系统配置字典-视图", path = "/view/dict/addConfigView")
|
||||
public String addConfigView() {
|
||||
return "/modular/system/dict/dict_add_config.html";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 字典管理-编辑-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/22 16:09
|
||||
*/
|
||||
@GetResource(name = "字典管理-编辑-视图", path = "/view/dict/editView")
|
||||
public String editView() {
|
||||
return "/modular/system/dict/dict_edit.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,30 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.error;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
|
||||
/**
|
||||
* 错误页面的跳转
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/1 21:20
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "错误页面的跳转")
|
||||
public class ErrorViewController {
|
||||
|
||||
/**
|
||||
* 跳转到session超时页面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/1 21:21
|
||||
*/
|
||||
@GetResource(name = "跳转到session超时页面", path = "/view/global/sessionError", requiredPermission = false, requiredLogin = false)
|
||||
public String errorPageInfo(Model model) {
|
||||
model.addAttribute("tips", "登陆超时,请您重新登陆!");
|
||||
return "/login.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.file;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 文件管理界面
|
||||
*
|
||||
* @author lgq
|
||||
* @date 2021/1/9
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "文件管理界面")
|
||||
public class FileViewController {
|
||||
|
||||
/**
|
||||
* 文件管理首页
|
||||
*
|
||||
* @author lgq
|
||||
* @date 2021/1/9
|
||||
*/
|
||||
@GetResource(name = "文件管理首页", path = "/view/file")
|
||||
public String fileIndex() {
|
||||
return "/modular/system/fileInfo/file_info.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件详情页面
|
||||
*
|
||||
* @author lgq
|
||||
* @date 2021/1/9
|
||||
*/
|
||||
@GetResource(name = "文件详情页面", path = "/view/fileInfoDetails")
|
||||
public String details() {
|
||||
return "/modular/system/fileInfo/file_info_details.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.i18n;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 多语言界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/24 19:15
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "多语言界面")
|
||||
public class TranslationViewController {
|
||||
|
||||
/**
|
||||
* 多语言主界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/24 19:15
|
||||
*/
|
||||
@GetResource(name = "文件管理首页", path = "/view/i18n")
|
||||
public String index() {
|
||||
return "/modular/system/i18n/translation.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 多语言新增界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/24 19:16
|
||||
*/
|
||||
@GetResource(name = "多语言新增界面", path = "/view/i18n/add")
|
||||
public String add() {
|
||||
return "/modular/system/i18n/translation_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 多语言编辑界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/24 19:16
|
||||
*/
|
||||
@GetResource(name = "文件管理首页", path = "/view/i18n/edit")
|
||||
public String edit() {
|
||||
return "/modular/system/i18n/translation_edit.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 多语言增加语种界面
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/22 16:09
|
||||
*/
|
||||
@GetResource(name = "多语言增加语种界面", path = "/view/i18n/addTranslationView")
|
||||
public String addTranslationView() {
|
||||
return "/modular/system/i18n/dict_add_translation.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,89 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.index.controller;
|
||||
|
||||
import cn.stylefeng.guns.modular.system.index.service.IndexService;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 首页相关的界面渲染
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 16:23
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "首页相关的界面渲染")
|
||||
public class IndexViewController {
|
||||
|
||||
@Resource
|
||||
private IndexService indexService;
|
||||
|
||||
/**
|
||||
* 首页界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/13 17:19
|
||||
*/
|
||||
@GetResource(name = "首页界面", path = "/", requiredLogin = false, requiredPermission = false, viewFlag = true)
|
||||
public String indexView(Model model) {
|
||||
|
||||
// 当前用户已经登录,跳转到首页
|
||||
if (LoginContext.me().hasLogin()) {
|
||||
model.addAllAttributes(indexService.createIndexRenderAttributes());
|
||||
return "/index.html";
|
||||
}
|
||||
|
||||
// 当前用户没有登录,跳转到登录页面
|
||||
return "/login.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 个人中心界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/29 21:53
|
||||
*/
|
||||
@GetResource(name = "个人中心界面", path = "/view/personal", requiredPermission = false)
|
||||
public String personal(Model model) {
|
||||
model.addAllAttributes(indexService.createPersonInfoRenderAttributes());
|
||||
return "/modular/system/index/personal_info.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 锁屏界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/29 21:34
|
||||
*/
|
||||
@GetResource(name = "锁屏界面", path = "/view/lock", requiredPermission = false)
|
||||
public String lock() {
|
||||
return "/modular/system/index/lock_screen.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 主题切换界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/29 21:42
|
||||
*/
|
||||
@GetResource(name = "主题切换界面", path = "/view/theme", requiredPermission = false)
|
||||
public String theme() {
|
||||
return "/modular/system/index/theme.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改密码界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/29 21:42
|
||||
*/
|
||||
@GetResource(name = "修改密码界面", path = "/view/changePassword", requiredPermission = false)
|
||||
public String changePassword() {
|
||||
return "/modular/system/index/change_password.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,145 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.index.service;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo;
|
||||
import cn.stylefeng.roses.kernel.message.api.MessageApi;
|
||||
import cn.stylefeng.roses.kernel.message.api.enums.MessageReadFlagEnum;
|
||||
import cn.stylefeng.roses.kernel.message.api.pojo.request.MessageRequest;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.menu.layui.LayuiAppIndexMenusVO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.menu.layui.LayuiIndexMenuTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.modular.menu.service.SysMenuService;
|
||||
import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrOrganization;
|
||||
import cn.stylefeng.roses.kernel.system.modular.organization.service.HrOrganizationService;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 首页相关数据组装服务
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 18:25
|
||||
*/
|
||||
@Service
|
||||
public class IndexService {
|
||||
|
||||
@Resource
|
||||
private SysMenuService sysMenuService;
|
||||
|
||||
@Resource
|
||||
private SysUserService sysUserService;
|
||||
|
||||
@Resource
|
||||
private HrOrganizationService hrOrganizationService;
|
||||
|
||||
@Resource
|
||||
private MessageApi messageApi;
|
||||
|
||||
/**
|
||||
* 获取首页需要渲染的参数
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/1 18:27
|
||||
*/
|
||||
public Map<String, Object> createIndexRenderAttributes() {
|
||||
|
||||
HashMap<String, Object> renderMap = new HashMap<>();
|
||||
|
||||
LoginUser loginUser = LoginContext.me().getLoginUser();
|
||||
SimpleUserInfo simpleUserInfo = loginUser.getSimpleUserInfo();
|
||||
|
||||
// 渲染首页的菜单
|
||||
List<LayuiAppIndexMenusVO> layuiAppIndexMenus = sysMenuService.getLayuiIndexMenus();
|
||||
|
||||
// 将个人信息菜单单独去除掉
|
||||
this.removePersonalMenu(layuiAppIndexMenus);
|
||||
|
||||
renderMap.put("layuiAppIndexMenus", layuiAppIndexMenus);
|
||||
|
||||
// 获取首页的头像
|
||||
renderMap.put("avatar", sysUserService.getUserAvatarUrl(simpleUserInfo.getAvatar()));
|
||||
|
||||
// 获取人员姓名
|
||||
renderMap.put("name", simpleUserInfo.getRealName());
|
||||
|
||||
// 获取登录用户ws-url
|
||||
renderMap.put("wsUrl", loginUser.getWsUrl());
|
||||
|
||||
// 未读消息数量
|
||||
MessageRequest messageRequest = new MessageRequest();
|
||||
messageRequest.setReadFlag(MessageReadFlagEnum.UNREAD.getCode());
|
||||
renderMap.put("msgUnReadCount", messageApi.queryCountCurrentUser(messageRequest));
|
||||
|
||||
return renderMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建个人中心页面需要渲染的值
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/1 18:38
|
||||
*/
|
||||
public Map<String, Object> createPersonInfoRenderAttributes() {
|
||||
|
||||
HashMap<String, Object> renderMap = new HashMap<>();
|
||||
renderMap.put("roleName", "角色空");
|
||||
renderMap.put("orgName", "组织架构空");
|
||||
|
||||
// 添加用户基本信息字段
|
||||
LoginUser loginUser = LoginContext.me().getLoginUser();
|
||||
SimpleUserInfo simpleUserInfo = loginUser.getSimpleUserInfo();
|
||||
renderMap.putAll(BeanUtil.beanToMap(simpleUserInfo));
|
||||
|
||||
// 角色名称
|
||||
List<SimpleRoleInfo> simpleRoleInfoList = loginUser.getSimpleRoleInfoList();
|
||||
if (ObjectUtil.isNotEmpty(simpleRoleInfoList)) {
|
||||
String roleName = simpleRoleInfoList.get(0).getRoleName();
|
||||
renderMap.put("roleName", roleName);
|
||||
}
|
||||
|
||||
// 组织机构名称
|
||||
Long organizationId = loginUser.getOrganizationId();
|
||||
HrOrganization hrOrganization = hrOrganizationService.getById(organizationId);
|
||||
if (hrOrganization != null) {
|
||||
renderMap.put("orgName", hrOrganization.getOrgName());
|
||||
}
|
||||
|
||||
// 渲染头像的url
|
||||
renderMap.put("avatar", sysUserService.getUserAvatarUrl(simpleUserInfo.getAvatar()));
|
||||
|
||||
return renderMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 去除个人信息菜单显示
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/5/14 16:30
|
||||
*/
|
||||
private void removePersonalMenu(List<LayuiAppIndexMenusVO> layuiAppIndexMenusVOS) {
|
||||
|
||||
ArrayList<LayuiIndexMenuTreeNode> menus = new ArrayList<>();
|
||||
|
||||
for (LayuiAppIndexMenusVO layuiAppIndexMenusVO : layuiAppIndexMenusVOS) {
|
||||
if (layuiAppIndexMenusVO.getAppCode().equals("system")) {
|
||||
List<LayuiIndexMenuTreeNode> layuiIndexMenuTreeNodes = layuiAppIndexMenusVO.getLayuiIndexMenuTreeNodes();
|
||||
for (LayuiIndexMenuTreeNode layuiIndexMenuTreeNode : layuiIndexMenuTreeNodes) {
|
||||
if (!layuiIndexMenuTreeNode.getMenuName().equals("个人信息")) {
|
||||
menus.add(layuiIndexMenuTreeNode);
|
||||
}
|
||||
}
|
||||
layuiAppIndexMenusVO.setLayuiIndexMenuTreeNodes(menus);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.log;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 业务日志视图控制器
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/13 19:45
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "操作日志管理相关的界面渲染")
|
||||
public class LogViewController {
|
||||
|
||||
/**
|
||||
* 操作日志管理列表
|
||||
*
|
||||
* @author TSQ
|
||||
* @date 2021/1/5 15:18
|
||||
*/
|
||||
@GetResource(name = "操作日志管理列表", path = "/view/log")
|
||||
public String indexView() {
|
||||
return "/modular/system/log/log.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 业务日志详情-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/13 19:45
|
||||
*/
|
||||
@GetResource(name = "业务日志详情-视图", path = "/view/log/detailView")
|
||||
public String detailView() {
|
||||
return "/modular/system/log/log_detail.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.log;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 登陆日志管理控制器界面渲染
|
||||
*
|
||||
* @author TSQ
|
||||
* @date 2021/1/5 14:42
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "登陆日志管理相关的界面渲染")
|
||||
public class LoginLogViewController {
|
||||
|
||||
/**
|
||||
* 登陆日志管理列表
|
||||
*
|
||||
* @author TSQ
|
||||
* @date 2021/1/5 15:17
|
||||
*/
|
||||
@GetResource(name = "登陆日志管理列表", path = "/view/loginLog")
|
||||
public String indexView() {
|
||||
return "/modular/system/log/login_log.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.login;
|
||||
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 登录相关的界面渲染
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 16:23
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "登录相关的接口")
|
||||
public class LoginViewController {
|
||||
|
||||
/**
|
||||
* 登录界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/27 17:10
|
||||
*/
|
||||
@GetResource(name = "登录界面", path = "/view/login", requiredPermission = false, requiredLogin = false)
|
||||
public String login() {
|
||||
if (LoginContext.me().hasLogin()) {
|
||||
return "redirect:/";
|
||||
} else {
|
||||
return "/login.html";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.menu;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 菜单按钮管理界面
|
||||
*
|
||||
* @author luojie
|
||||
* @date 2021/1/9 16:11
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "菜单按钮管理界面")
|
||||
public class MenuButtonViewController {
|
||||
|
||||
/**
|
||||
* 菜单按钮管理首页
|
||||
*
|
||||
* @author luojie
|
||||
* @date 2021/1/9 16:13
|
||||
*/
|
||||
@GetResource(name = "菜单管理首页", path = "/view/menuButton")
|
||||
public String menuIndex() {
|
||||
return "/modular/system/menu/button.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增菜单按钮界面
|
||||
*
|
||||
* @author luojie
|
||||
* @date 2021/1/9 13:56
|
||||
*/
|
||||
@GetResource(name = "新增菜单按钮界面", path = "/view/menuButton/add")
|
||||
public String menuAdd() {
|
||||
return "/modular/system/menu/button_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改菜单按钮界面
|
||||
*
|
||||
* @author luojie
|
||||
* @date 2021/1/9 14:14
|
||||
*/
|
||||
@GetResource(name = "修改菜单按钮界面", path = "/view/menuButton/edit")
|
||||
public String menuEdit() {
|
||||
return "/modular/system/menu/button_edit.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.menu;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 菜单管理界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 16:43
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "菜单管理界面")
|
||||
public class MenuViewController {
|
||||
|
||||
/**
|
||||
* 菜单管理首页
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 13:32
|
||||
*/
|
||||
@GetResource(name = "菜单管理首页", path = "/view/menu")
|
||||
public String menuIndex() {
|
||||
return "/modular/system/menu/menu.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增菜单界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 13:37
|
||||
*/
|
||||
@GetResource(name = "新增菜单界面", path = "/view/menu/add")
|
||||
public String menuAdd() {
|
||||
return "/modular/system/menu/menu_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改菜单界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/6 13:37
|
||||
*/
|
||||
@GetResource(name = "修改菜单界面", path = "/view/menu/edit")
|
||||
public String menuEdit() {
|
||||
return "/modular/system/menu/menu_edit.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,68 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.message;
|
||||
|
||||
import cn.stylefeng.roses.kernel.message.api.MessageApi;
|
||||
import cn.stylefeng.roses.kernel.message.api.enums.MessageReadFlagEnum;
|
||||
import cn.stylefeng.roses.kernel.message.api.pojo.request.MessageRequest;
|
||||
import cn.stylefeng.roses.kernel.message.api.pojo.response.MessageResponse;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 系统消息相关的界面渲染
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/11 19:37
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "系统消息相关的界面渲染")
|
||||
public class MessageViewController {
|
||||
|
||||
@Resource
|
||||
private MessageApi messageApi;
|
||||
|
||||
/**
|
||||
* 系统消息界面
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/10 17:42
|
||||
*/
|
||||
@GetResource(name = "系统消息界面", path = "/view/message", requiredPermission = false)
|
||||
public String message(Model model) {
|
||||
MessageRequest messageRequest = new MessageRequest();
|
||||
messageRequest.setReadFlag(MessageReadFlagEnum.UNREAD.getCode());
|
||||
Integer messageCount = messageApi.queryCountCurrentUser(messageRequest);
|
||||
List<MessageResponse> messageList = messageApi.queryListCurrentUser(messageRequest);
|
||||
model.addAttribute("msgUnReadCount", messageCount);
|
||||
model.addAttribute("msgUnReadList", messageList);
|
||||
return "/modular/system/index/message.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 我的消息界面
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/12 20:22
|
||||
*/
|
||||
@GetResource(name = "我的消息界面", path = "/view/message_list", requiredPermission = false)
|
||||
public String indexView() {
|
||||
return "/modular/system/message/message_list.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 我的消息界面
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/12 20:22
|
||||
*/
|
||||
@GetResource(name = "我的消息界面", path = "/view/message_view", requiredPermission = false)
|
||||
public String view(Model model) {
|
||||
model.addAttribute("openType", "view");
|
||||
return "/modular/system/message/message_view.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.monitor;
|
||||
|
||||
import cn.stylefeng.roses.kernel.monitor.system.holder.SystemHardwareInfoHolder;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 项目监控
|
||||
*
|
||||
* @author chenli
|
||||
* @date 2020/12/30 16:40
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "项目监控")
|
||||
public class MonitorController {
|
||||
|
||||
@Resource
|
||||
private SystemHardwareInfoHolder systemHardwareInfoHolder;
|
||||
|
||||
/**
|
||||
* 系统硬件信息页面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2018/12/24 22:43
|
||||
*/
|
||||
@GetResource(name = "服务器监控", path = "/view/monitor/systemInfo")
|
||||
public String systemInfo(Model model) {
|
||||
model.addAttribute("server", systemHardwareInfoHolder.getSystemHardwareInfo());
|
||||
return "/modular/system/monitor/systemInfo.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* druid sql监控页面
|
||||
*
|
||||
* @author chenli
|
||||
* @date 2021/1/4 16:32
|
||||
*/
|
||||
@GetResource(name = "SQL监控", path = "/view/monitor/druid")
|
||||
public String druidInfo() {
|
||||
return "/modular/system/monitor/druid.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.notice;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 通知管理界面
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/8 20:55
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "通知管理界面")
|
||||
public class NoticeViewController {
|
||||
|
||||
/**
|
||||
* 通知管理首页
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/8 20:55
|
||||
*/
|
||||
@GetResource(name = "通知管理列表", path = "/view/notice")
|
||||
public String roleIndex() {
|
||||
return "/modular/system/notice/notice.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增通知界面
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/8 20:57
|
||||
*/
|
||||
@GetResource(name = "新增通知界面", path = "/view/notice/add")
|
||||
public String roleAdd() {
|
||||
return "/modular/system/notice/notice_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑通知界面
|
||||
*
|
||||
* @author liuhanqing
|
||||
* @date 2021/1/8 20:57
|
||||
*/
|
||||
@GetResource(name = "编辑通知界面", path = "/view/notice/edit")
|
||||
public String roleEdit() {
|
||||
return "/modular/system/notice/notice_edit.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.online;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 在线用户查看界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/11 22:02
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "在线用户查看界面")
|
||||
public class OnlineUserViewController {
|
||||
|
||||
/**
|
||||
* 在线用户查看界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/11 22:03
|
||||
*/
|
||||
@GetResource(name = "在线用户查看界面", path = "/view/onlineUser")
|
||||
public String onlineUser() {
|
||||
return "/modular/system/onlineUser/online_user.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.organization;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 组织机构管理控制器界面
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2020/12/28 9:28
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "组织机构管理控制器界面")
|
||||
public class OrganizationViewController {
|
||||
|
||||
/**
|
||||
* 机构管理-首页-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2020/11/04 11:07
|
||||
*/
|
||||
@GetResource(name = "机构管理-首页-视图", path = "/view/organization")
|
||||
public String indexView() {
|
||||
return "/modular/system/organization/organization.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 机构管理—新增-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2020/11/04 11:07
|
||||
*/
|
||||
@GetResource(name = "机构管理—新增-视图", path = "/view/organization/addView")
|
||||
public String addView() {
|
||||
return "/modular/system/organization/organization_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 机构管理_修改_视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2020/11/04 11:07
|
||||
*/
|
||||
@GetResource(name = "机构管理-修改-视图", path = "/view/organization/editView")
|
||||
public String editView() {
|
||||
return "/modular/system/organization/organization_edit.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
/**
|
||||
* 这个包是Guns框架自带业务的代码
|
||||
*/
|
||||
package cn.stylefeng.guns.modular.system;
|
|
@ -1,50 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.position;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 职位管理控制器
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2020/12/28 9:28
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "职位管理相关的界面渲染")
|
||||
public class PositionViewController {
|
||||
|
||||
/**
|
||||
* 职位管理-首页-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2020/11/04 11:07
|
||||
*/
|
||||
@GetResource(name = "职位管理-首页-视图", path = "/view/position")
|
||||
public String indexView() {
|
||||
return "/modular/system/position/position.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 职位管理-首页-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2020/11/04 11:07
|
||||
*/
|
||||
@GetResource(name = "职位管理-首页-视图", path = "/view/position/addView")
|
||||
public String addView() {
|
||||
return "/modular/system/position/position_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 职位管理-首页-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2020/11/04 11:07
|
||||
*/
|
||||
@GetResource(name = "职位管理-首页-视图", path = "/view/position/editView")
|
||||
public String editView() {
|
||||
return "/modular/system/position/position_edit.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.resource;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 资源管理界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/8 21:59
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "资源管理界面")
|
||||
public class ResourceViewController {
|
||||
|
||||
/**
|
||||
* 资源管理首页
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/8 21:59
|
||||
*/
|
||||
@GetResource(name = "资源管理首页", path = "/view/resource")
|
||||
public String resourceIndex() {
|
||||
return "/modular/system/resource/resource.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 资源管理详情
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/8 22:23
|
||||
*/
|
||||
@GetResource(name = "资源管理详情", path = "/view/resource/detail")
|
||||
public String resourceDetail() {
|
||||
return "/modular/system/resource/resource_detail.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,83 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.role;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 角色管理界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/8 20:55
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "角色管理界面")
|
||||
public class RoleViewController {
|
||||
|
||||
/**
|
||||
* 角色管理首页
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/8 20:55
|
||||
*/
|
||||
@GetResource(name = "应用管理首页", path = "/view/role")
|
||||
public String roleIndex() {
|
||||
return "/modular/system/role/role.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增角色界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/8 20:57
|
||||
*/
|
||||
@GetResource(name = "新增角色界面", path = "/view/role/add")
|
||||
public String roleAdd() {
|
||||
return "/modular/system/role/role_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑角色界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/8 20:57
|
||||
*/
|
||||
@GetResource(name = "编辑角色界面", path = "/view/role/edit")
|
||||
public String roleEdit() {
|
||||
return "/modular/system/role/role_edit.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改数据范围界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/8 20:57
|
||||
*/
|
||||
@GetResource(name = "修改数据范围界面", path = "/view/role/editDataScope")
|
||||
public String roleEditDataScope() {
|
||||
return "/modular/system/role/role_edit_data_scope.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 分配接口界面
|
||||
*
|
||||
* @author majianguo
|
||||
* @date 2021/1/9 11:43
|
||||
*/
|
||||
@GetResource(name = "分配接口界面", path = "/view/role/assignApi")
|
||||
public String roleAssignApi() {
|
||||
return "/modular/system/role/role_assign_api.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 分配菜单和按钮界面
|
||||
*
|
||||
* @author majianguo
|
||||
* @date 2021/1/9 11:45
|
||||
*/
|
||||
@GetResource(name = "分配菜单界面", path = "/view/role/assignMenuAndButtons")
|
||||
public String roleAssignMenuButton() {
|
||||
return "/modular/system/role/role_assign_menu_button.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.timer;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 定时控制器
|
||||
*
|
||||
* @author youyongkun
|
||||
* @date 2021/1/6 3:56 下午
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "定时管理相关的界面渲染")
|
||||
public class TimersViewController {
|
||||
|
||||
/**
|
||||
* 定时管理-首页-视图
|
||||
*
|
||||
* @author youyongkun
|
||||
* @date 2021/1/6 4:28 下午
|
||||
*/
|
||||
@GetResource(name = "定时管理-首页-视图", path = "/view/sysTimers")
|
||||
public String indexView() {
|
||||
return "/modular/system/timers/timers.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时管理-添加-视图
|
||||
*
|
||||
* @author youyongkun
|
||||
* @date 2021/1/6 4:28 下午
|
||||
*/
|
||||
@GetResource(name = "定时管理-添加-视图", path = "/view/sysTimers/addView")
|
||||
public String addView() {
|
||||
return "/modular/system/timers/timers_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时管理-修改-视图
|
||||
*
|
||||
* @author youyongkun
|
||||
* @date 2021/1/6 4:28 下午
|
||||
*/
|
||||
@GetResource(name = "定时管理-修改-视图", path = "/view/sysTimers/editView")
|
||||
public String editView() {
|
||||
return "/modular/system/timers/timers_edit.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,83 +0,0 @@
|
|||
package cn.stylefeng.guns.modular.system.user;
|
||||
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 用户管理控制器
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/7 19:09
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "用户管理界面渲染")
|
||||
public class UserViewController {
|
||||
|
||||
/**
|
||||
* 用户管理-首页-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/7 19:09
|
||||
*/
|
||||
@GetResource(name = "用户管理-首页-视图", path = "/view/user")
|
||||
public String indexView() {
|
||||
return "/modular/system/user/user.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户管理—新增-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/7 19:09
|
||||
*/
|
||||
@GetResource(name = "用户管理—新增-视图", path = "/view/user/addView")
|
||||
public String addView() {
|
||||
return "/modular/system/user/user_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户管理_修改_视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/7 19:09
|
||||
*/
|
||||
@GetResource(name = "用户管理-修改-视图", path = "/view/user/editView")
|
||||
public String editView() {
|
||||
return "/modular/system/user/user_edit.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户管理-角色-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/7 19:09
|
||||
*/
|
||||
@GetResource(name = "用户管理-角色-视图", path = "/view/user/roleView")
|
||||
public String roleView() {
|
||||
return "/modular/system/user/user_role.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户管理-注册-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/7 19:09
|
||||
*/
|
||||
@GetResource(name = "用户管理-注册-视图", path = "/register", requiredPermission = false, requiredLogin = false)
|
||||
public String registerView() {
|
||||
return "/register.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户管理-找回密码-视图
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/7 19:09
|
||||
*/
|
||||
@GetResource(name = "用户管理-找回密码-视图", path = "/forget", requiredPermission = false, requiredLogin = false)
|
||||
public String forgetView() {
|
||||
return "/forget.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
package cn.stylefeng.guns.modular.system.datasource.test;
|
||||
package cn.stylefeng.guns.modular.test;
|
||||
|
||||
import cn.stylefeng.guns.modular.system.datasource.test.service.TranTestService;
|
||||
import cn.stylefeng.guns.modular.test.service.TranTestService;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
|
@ -1,6 +1,6 @@
|
|||
package cn.stylefeng.guns.modular.system.datasource.test;
|
||||
package cn.stylefeng.guns.modular.test;
|
||||
|
||||
import cn.stylefeng.guns.modular.system.datasource.test.service.TranTestService;
|
||||
import cn.stylefeng.guns.modular.test.service.TranTestService;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.guns.modular.system.datasource.test.factory;
|
||||
package cn.stylefeng.guns.modular.test.factory;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUser;
|
|
@ -1,6 +1,6 @@
|
|||
package cn.stylefeng.guns.modular.system.datasource.test.service;
|
||||
package cn.stylefeng.guns.modular.test.service;
|
||||
|
||||
import cn.stylefeng.guns.modular.system.datasource.test.factory.NormalUserFactory;
|
||||
import cn.stylefeng.guns.modular.test.factory.NormalUserFactory;
|
||||
import cn.stylefeng.roses.kernel.dsctn.api.annotation.DataSource;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUser;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.mapper.SysUserMapper;
|
|
@ -1,6 +1,6 @@
|
|||
package cn.stylefeng.guns.modular.system.datasource.test.service;
|
||||
package cn.stylefeng.guns.modular.test.service;
|
||||
|
||||
import cn.stylefeng.guns.modular.system.datasource.test.factory.NormalUserFactory;
|
||||
import cn.stylefeng.guns.modular.test.factory.NormalUserFactory;
|
||||
import cn.stylefeng.roses.kernel.dsctn.api.annotation.DataSource;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUser;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.mapper.SysUserMapper;
|
|
@ -1,6 +1,6 @@
|
|||
package cn.stylefeng.guns.modular.system.datasource.test.service;
|
||||
package cn.stylefeng.guns.modular.test.service;
|
||||
|
||||
import cn.stylefeng.guns.modular.system.datasource.test.factory.NormalUserFactory;
|
||||
import cn.stylefeng.guns.modular.test.factory.NormalUserFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -2,9 +2,9 @@
|
|||
spring:
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
url: jdbc:mysql://localhost:3306/guns?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true
|
||||
username: root
|
||||
password: 123456
|
||||
url: jdbc:mysql://${DEVOPS_MYSQL_HOST}:${DEVOPS_MYSQL_PORT}/${DEVOPS_MYSQL_DATABASE_NAME}?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true
|
||||
username: ${DEVOPS_MYSQL_USERNAME}
|
||||
password: ${DEVOPS_MYSQL_PASSWORD}
|
||||
|
||||
# 连接池大小根据实际情况调整
|
||||
max-active: 100
|
||||
|
|
|
@ -22,7 +22,7 @@ spring:
|
|||
indent_output: false
|
||||
flyway:
|
||||
enabled: true
|
||||
locations: classpath:db/migration
|
||||
locations: classpath:db/migration/mysql
|
||||
# 当迁移时发现目标schema非空,而且带有没有元数据的表时,是否自动执行基准迁移
|
||||
baseline-on-migrate: true
|
||||
# 是否允许无序的迁移 开发环境最好开启, 生产环境关闭
|
||||
|
@ -30,9 +30,11 @@ spring:
|
|||
# 关闭占位符替换,因为插入的sql里边可能包含${}关键字
|
||||
placeholder-replacement: false
|
||||
|
||||
# 资源扫描
|
||||
scanner:
|
||||
open: true
|
||||
|
||||
# 日志记录
|
||||
sys-log:
|
||||
# db-数据库,file-文件
|
||||
type: db
|
||||
|
@ -52,6 +54,6 @@ mybatis-plus:
|
|||
id-type: assign_id
|
||||
table-underline: true
|
||||
|
||||
# 是否开启websocket推送消息
|
||||
web-socket:
|
||||
open: true
|
||||
# 单点登录开关
|
||||
sso:
|
||||
openFlag: false
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +0,0 @@
|
|||
INSERT INTO `sys_dict_type`(`dict_type_id`, `dict_type_class`, `dict_type_bus_code`, `dict_type_code`, `dict_type_name`, `dict_type_name_pinyin`, `dict_type_desc`, `status_flag`, `dict_type_sort`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1365251549365317633, 1, NULL, 'yn', 'yn', 'yn', NULL, 1, 7.00, 'N', '2021-02-26 18:45:09', 1339550467939639299, NULL, NULL);
|
||||
INSERT INTO `sys_dict_type`(`dict_type_id`, `dict_type_class`, `dict_type_bus_code`, `dict_type_code`, `dict_type_name`, `dict_type_name_pinyin`, `dict_type_desc`, `status_flag`, `dict_type_sort`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1365252142779641858, 1, NULL, 'jdbc_type', 'jdbc_type', 'jdbc_type', NULL, 1, 8.00, 'N', '2021-02-26 18:47:31', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_dict`(`dict_id`, `dict_code`, `dict_name`, `dict_name_pinyin`, `dict_encode`, `dict_type_code`, `dict_short_name`, `dict_short_code`, `dict_parent_id`, `status_flag`, `dict_sort`, `dict_pids`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1365251792270045186, 'Y', '是', 's', NULL, 'yn', NULL, NULL, -1, 1, 1.00, '[-1],', 'N', '2021-02-26 18:46:07', 1339550467939639299, NULL, NULL);
|
||||
INSERT INTO `sys_dict`(`dict_id`, `dict_code`, `dict_name`, `dict_name_pinyin`, `dict_encode`, `dict_type_code`, `dict_short_name`, `dict_short_code`, `dict_parent_id`, `status_flag`, `dict_sort`, `dict_pids`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1365251827812577282, 'N', '否', 'f', NULL, 'yn', NULL, NULL, -1, 1, 2.00, '[-1],', 'N', '2021-02-26 18:46:16', 1339550467939639299, NULL, NULL);
|
||||
INSERT INTO `sys_dict`(`dict_id`, `dict_code`, `dict_name`, `dict_name_pinyin`, `dict_encode`, `dict_type_code`, `dict_short_name`, `dict_short_code`, `dict_parent_id`, `status_flag`, `dict_sort`, `dict_pids`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1365252384094728193, 'com.mysql.cj.jdbc.Driver', 'com.mysql.cj.jdbc.Driver', 'com.mysql.cj.jdbc.Driver', NULL, 'jdbc_type', NULL, NULL, -1, 1, 1.00, '[-1],', 'N', '2021-02-26 18:48:28', 1339550467939639299, '2021-02-26 18:53:48', 1339550467939639299);
|
|
@ -1,9 +0,0 @@
|
|||
INSERT INTO `sys_config`(`config_id`, `config_name`, `config_code`, `config_value`, `sys_flag`, `remark`, `status_flag`, `group_code`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1367118984192843778, '邮件是否启用账号密码验证', 'SYS_EMAIL_ENABLE_AUTH', 'true', 'N', '', 1, 'java_mail_config', 'N', '2021-03-03 22:25:40', 1339550467939639299, '2021-03-03 22:25:43', 1339550467939639299);
|
||||
INSERT INTO `sys_config`(`config_id`, `config_name`, `config_code`, `config_value`, `sys_flag`, `remark`, `status_flag`, `group_code`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1367119064924807169, '邮箱的账号', 'SYS_EMAIL_ACCOUNT', 'xxx@126.com', 'N', '', 1, 'java_mail_config', 'N', '2021-03-03 22:26:00', 1339550467939639299, NULL, NULL);
|
||||
INSERT INTO `sys_config`(`config_id`, `config_name`, `config_code`, `config_value`, `sys_flag`, `remark`, `status_flag`, `group_code`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1367119226749444098, '邮箱的密码或者授权码', 'SYS_EMAIL_PASSWORD', 'xxx', 'N', '', 1, 'java_mail_config', 'N', '2021-03-03 22:26:38', 1339550467939639299, NULL, NULL);
|
||||
INSERT INTO `sys_config`(`config_id`, `config_name`, `config_code`, `config_value`, `sys_flag`, `remark`, `status_flag`, `group_code`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1367119286195314689, '邮箱的发送方邮箱', 'SYS_EMAIL_SEND_FROM', 'xxx@126.com', 'Y', '', 1, 'java_mail_config', 'N', '2021-03-03 22:26:52', 1339550467939639299, NULL, NULL);
|
||||
INSERT INTO `sys_config`(`config_id`, `config_name`, `config_code`, `config_value`, `sys_flag`, `remark`, `status_flag`, `group_code`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1367119399810621441, '是否开启tls', 'SYS_EMAIL_START_TLS_ENABLE', 'true', 'N', '使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口。', 1, 'java_mail_config', 'N', '2021-03-03 22:27:19', 1339550467939639299, NULL, NULL);
|
||||
INSERT INTO `sys_config`(`config_id`, `config_name`, `config_code`, `config_value`, `sys_flag`, `remark`, `status_flag`, `group_code`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1367119457260003329, 'SSL安全连接', 'SYS_EMAIL_TLS_ENABLE', 'true', 'N', '', 1, 'java_mail_config', 'N', '2021-03-03 22:27:33', 1339550467939639299, '2021-03-03 22:28:33', 1339550467939639299);
|
||||
INSERT INTO `sys_config`(`config_id`, `config_name`, `config_code`, `config_value`, `sys_flag`, `remark`, `status_flag`, `group_code`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1367119505888763905, '指定的端口连接到在使用指定的套接字工厂', 'SYS_EMAIL_SOCKET_FACTORY_PORT', '465', 'Y', '', 1, 'java_mail_config', 'N', '2021-03-03 22:27:45', 1339550467939639299, NULL, NULL);
|
||||
INSERT INTO `sys_config`(`config_id`, `config_name`, `config_code`, `config_value`, `sys_flag`, `remark`, `status_flag`, `group_code`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1367119568455196674, 'SMTP超时时长,单位毫秒', 'SYS_EMAIL_SMTP_TIMEOUT', '10000', 'N', '', 1, 'java_mail_config', 'N', '2021-03-03 22:28:00', 1339550467939639299, NULL, NULL);
|
||||
INSERT INTO `sys_config`(`config_id`, `config_name`, `config_code`, `config_value`, `sys_flag`, `remark`, `status_flag`, `group_code`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1367119662306942977, 'Socket连接超时值,单位毫秒,缺省值不超时', 'SYS_EMAIL_CONNECTION_TIMEOUT', '10000', 'N', 'Socket连接超时值,单位毫秒,缺省值不超时', 1, 'java_mail_config', 'N', '2021-03-03 22:28:22', 1339550467939639299, NULL, NULL);
|
|
@ -1 +0,0 @@
|
|||
UPDATE `sys_config` SET `config_name` = '获取XSS排除过滤的url范围', `config_code` = 'SYS_XSS_URL_EXCLUSIONS', `config_value` = '/sysNotice/add,/sysNotice/edit,/databaseInfo/add', `sys_flag` = 'Y', `remark` = '', `status_flag` = 1, `group_code` = 'sys_config', `del_flag` = 'N', `create_time` = '2021-01-17 12:47:46', `create_user` = 1339550467939639299, `update_time` = '2021-03-04 22:14:14', `update_user` = 1339550467939639299 WHERE `config_id` = 1350666094452482049;
|
|
@ -1 +0,0 @@
|
|||
alter table sys_config change config_code config_code varchar(100);
|
|
@ -1 +0,0 @@
|
|||
ALTER TABLE `sys_menu` ADD COLUMN `antdv_uid_url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用于非菜单显示页面的重定向url设置' AFTER `antdv_link_url`;
|
|
@ -1 +0,0 @@
|
|||
delete from sys_config where config_code = 'SYS_SESSION_ADD_TO_COOKIE';
|
|
@ -1,59 +0,0 @@
|
|||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = -1, `menu_pids` = '[-1],', `menu_name` = '主控面板', `menu_code` = 'blackboard', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 10.00, `status_flag` = 1, `remark` = NULL, `layui_path` = '', `layui_icon` = 'layui-icon-theme', `antdv_router` = '/dashboard', `antdv_icon` = 'dashboard', `antdv_component` = NULL, `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-01-08 20:52:34', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639301;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639301, `menu_pids` = '[-1],[1339550467939639301],', `menu_name` = '工作台', `menu_code` = 'board_platform', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 10.10, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/dashboard/workplace', `layui_icon` = 'layui-icon-rate-solid', `antdv_router` = '/dashboard/workplace', `antdv_icon` = 'shop', `antdv_component` = '/dashboard/workplace', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = 1339550467939639299, `update_time` = '2021-01-08 20:52:34', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639302;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639301, `menu_pids` = '[-1],[1339550467939639301],', `menu_name` = '分析页', `menu_code` = 'board_analyse', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 10.20, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/dashboard/analysis', `layui_icon` = NULL, `antdv_router` = '/dashboard/analysis', `antdv_icon` = 'rocket', `antdv_component` = '/dashboard/analysis', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-01-08 20:52:34', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639303;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = -1, `menu_pids` = '[-1],', `menu_name` = '用户权限', `menu_code` = 'user_role', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.00, `status_flag` = 1, `remark` = NULL, `layui_path` = '#', `layui_icon` = 'layui-icon-template-1', `antdv_router` = '/orginfo', `antdv_icon` = 'apartment', `antdv_component` = NULL, `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-02-19 22:17:55', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639304;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639304, `menu_pids` = '[-1],[1339550467939639304],', `menu_name` = '用户管理', `menu_code` = 'org_user', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.10, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/user', `layui_icon` = NULL, `antdv_router` = '/orginfo/user', `antdv_icon` = 'user', `antdv_component` = '/orginfo/user', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639305;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639304, `menu_pids` = '[-1],[1339550467939639304],', `menu_name` = '职位管理', `menu_code` = 'org_position', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.20, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/position', `layui_icon` = '', `antdv_router` = '/orginfo/position', `antdv_icon` = 'solution', `antdv_component` = '/orginfo/position', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-02-19 22:27:51', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639307;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639304, `menu_pids` = '[-1],[1339550467939639304],', `menu_name` = '应用管理', `menu_code` = 'auth_app', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.30, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/app', `layui_icon` = '', `antdv_router` = '/orginfo/application', `antdv_icon` = 'appstore', `antdv_component` = '/orginfo/application', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-02-19 22:28:13', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639309;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639304, `menu_pids` = '[-1],[1339550467939639304],', `menu_name` = '菜单管理', `menu_code` = 'auth_menu', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.50, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/menu', `layui_icon` = '', `antdv_router` = '/orginfo/menu', `antdv_icon` = 'menu', `antdv_component` = '/orginfo/menu', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-02-19 22:29:05', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639310;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639304, `menu_pids` = '[-1],[1339550467939639304],', `menu_name` = '角色管理', `menu_code` = 'auth_role', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.40, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/role', `layui_icon` = '', `antdv_router` = '/orginfo/role', `antdv_icon` = 'slack', `antdv_component` = '/orginfo/role', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-02-19 22:28:36', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639311;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639304, `menu_pids` = '[-1],[1339550467939639304],', `menu_name` = '资源管理', `menu_code` = 'auth_resource', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.60, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/resource', `layui_icon` = '', `antdv_router` = '/orginfo/resource', `antdv_icon` = 'bars', `antdv_component` = '/orginfo/resource', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-02-19 22:29:13', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639312;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = -1, `menu_pids` = '[-1],', `menu_name` = '基础数据', `menu_code` = 'base', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 40.00, `status_flag` = 1, `remark` = NULL, `layui_path` = '', `layui_icon` = 'layui-icon-component', `antdv_router` = '/base', `antdv_icon` = 'coffee', `antdv_component` = NULL, `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-01-08 16:47:41', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639313;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639313, `menu_pids` = '[-1],[1339550467939639313],', `menu_name` = '系统配置', `menu_code` = 'base_sysconfig', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 40.10, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/config', `layui_icon` = NULL, `antdv_router` = '/base/sysconfig', `antdv_icon` = 'file-done', `antdv_component` = '/base/sysconfig', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639314;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639313, `menu_pids` = '[-1],[1339550467939639313],', `menu_name` = '字典管理', `menu_code` = 'base_dict', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 40.20, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/dictType', `layui_icon` = NULL, `antdv_router` = '/base/dict', `antdv_icon` = 'icon-default', `antdv_component` = '/base/dict', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639315;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639313, `menu_pids` = '[-1],[1339550467939639313],', `menu_name` = '接口文档', `menu_code` = 'base_apis', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 40.30, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/api', `layui_icon` = NULL, `antdv_router` = '/base/api', `antdv_icon` = 'api', `antdv_component` = '/base/api', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639316;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = -1, `menu_pids` = '[-1],', `menu_name` = '系统功能', `menu_code` = 'sys', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.00, `status_flag` = 1, `remark` = NULL, `layui_path` = '', `layui_icon` = 'layui-icon-set', `antdv_router` = '/system', `antdv_icon` = 'thunderbolt', `antdv_component` = NULL, `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-01-08 16:47:49', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639317;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '文件管理', `menu_code` = 'sys_file', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.10, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/file', `layui_icon` = NULL, `antdv_router` = '/system/file', `antdv_icon` = 'tags', `antdv_component` = '/system/file', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639318;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '操作日志', `menu_code` = 'operate_log', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.20, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/log', `layui_icon` = NULL, `antdv_router` = '/system/logs', `antdv_icon` = 'global', `antdv_component` = '/system/logs', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639319;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '在线用户', `menu_code` = 'sys_online', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.30, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/onlineUser', `layui_icon` = NULL, `antdv_router` = '/system/online', `antdv_icon` = 'laptop', `antdv_component` = '/system/online', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639320;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '定时任务', `menu_code` = 'sys_timer', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.40, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/sysTimers', `layui_icon` = NULL, `antdv_router` = '/system/timer', `antdv_icon` = 'inbox', `antdv_component` = '/system/timer', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639321;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = -1, `menu_pids` = '[-1],', `menu_name` = '通知管理', `menu_code` = 'notice', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 60.00, `status_flag` = 1, `remark` = NULL, `layui_path` = '', `layui_icon` = 'layui-icon-tips', `antdv_router` = '/notice', `antdv_icon` = 'bell', `antdv_component` = NULL, `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-01-08 16:47:56', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639322;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639322, `menu_pids` = '[-1],[1339550467939639322],', `menu_name` = '通知发布', `menu_code` = 'notice_update', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 60.10, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/notice', `layui_icon` = NULL, `antdv_router` = '/notice/noticePublish', `antdv_icon` = 'cloud', `antdv_component` = '/notice/noticePublish', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639323;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639322, `menu_pids` = '[-1],[1339550467939639322],', `menu_name` = '我的消息', `menu_code` = 'notice_find', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 60.20, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/message_list', `layui_icon` = NULL, `antdv_router` = '/notice/noticeLook', `antdv_icon` = 'sound', `antdv_component` = '/notice/noticeLook', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639324;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = -1, `menu_pids` = '[-1],', `menu_name` = '监控管理', `menu_code` = 'monitor', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 70.00, `status_flag` = 1, `remark` = NULL, `layui_path` = '', `layui_icon` = 'layui-icon-console', `antdv_router` = '/monitor', `antdv_icon` = 'monitor', `antdv_component` = NULL, `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-01-08 16:48:52', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639325;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639325, `menu_pids` = '[-1],[1339550467939639325],', `menu_name` = 'SQL监控', `menu_code` = 'monitor_druid', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 70.10, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/monitor/druid', `layui_icon` = NULL, `antdv_router` = '/monitor/druid', `antdv_icon` = 'database', `antdv_component` = '/monitor/druid', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639326;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639325, `menu_pids` = '[-1],[1339550467939639325],', `menu_name` = '服务器信息', `menu_code` = 'monitor_server', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 70.50, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/monitor/systemInfo', `layui_icon` = NULL, `antdv_router` = '/monitor/server', `antdv_icon` = 'desktop', `antdv_component` = '/monitor/server', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639330;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '登录日志', `menu_code` = 'login_log', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.21, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/loginLog', `layui_icon` = NULL, `antdv_router` = '/system/loginLog', `antdv_icon` = 'global', `antdv_component` = '/system/loginLog', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639334;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '多数据源', `menu_code` = 'datasources', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.50, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/datasource', `layui_icon` = 'layui-icon-star-fill', `antdv_router` = '/system/datasources', `antdv_icon` = 'icon-default', `antdv_component` = '/system/datasources', `antdv_link_open_type` = 0, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2021-01-23 21:08:22', `create_user` = 1339550467939639299, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1352966403623342082;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '多语言配置', `menu_code` = 'languages', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.60, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/i18n', `layui_icon` = 'layui-icon-star-fill', `antdv_router` = '/system/languages', `antdv_icon` = 'icon-default', `antdv_component` = '/system/languages', `antdv_link_open_type` = 0, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2021-01-23 21:17:23', `create_user` = 1339550467939639299, `update_time` = '2021-01-25 21:59:08', `update_user` = 1339550467939639299 WHERE `menu_id` = 1352968673144459265;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
@ -1 +0,0 @@
|
|||
ALTER TABLE `sys_user_org` MODIFY COLUMN `position_id` bigint(20) NULL COMMENT '职位id' AFTER `org_id`;
|
|
@ -1,203 +0,0 @@
|
|||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
INSERT INTO `sys_menu`(`menu_id`, `menu_parent_id`, `menu_pids`, `menu_name`, `menu_code`, `app_code`, `visible`, `menu_sort`, `status_flag`, `remark`, `layui_path`, `layui_icon`, `antdv_router`, `antdv_icon`, `antdv_component`, `antdv_link_open_type`, `antdv_link_url`, `antdv_uid_url`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1339550467939639335, 1339550467939639317, '[-1],[1339550467939639317],', '多数据源', 'datasources', 'system', 'Y', 50.60, 1, NULL, '/view/datasource', 'layui-icon-star-fill', '/operation/datasource', 'ContainerOutlined', '/operation/datasource/datasource', 0, NULL, NULL, 'N', '2021-01-23 21:08:22', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_menu`(`menu_id`, `menu_parent_id`, `menu_pids`, `menu_name`, `menu_code`, `app_code`, `visible`, `menu_sort`, `status_flag`, `remark`, `layui_path`, `layui_icon`, `antdv_router`, `antdv_icon`, `antdv_component`, `antdv_link_open_type`, `antdv_link_url`, `antdv_uid_url`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1339550467939639336, 1339550467939639317, '[-1],[1339550467939639317],', '多语言配置', 'languages', 'system', 'Y', 50.70, 1, NULL, '/view/i18n', 'layui-icon-star-fill', '/operation/language', 'FileWordOutlined', '/operation/language/language', 0, NULL, NULL, 'N', '2021-01-23 21:17:23', 1339550467939639299, '2021-01-25 21:59:08', 1339550467939639299);
|
||||
|
||||
INSERT INTO `sys_menu`(`menu_id`, `menu_parent_id`, `menu_pids`, `menu_name`, `menu_code`, `app_code`, `visible`, `menu_sort`, `status_flag`, `remark`, `layui_path`, `layui_icon`, `antdv_router`, `antdv_icon`, `antdv_component`, `antdv_link_open_type`, `antdv_link_url`, `antdv_uid_url`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1339550467939639350, -1, '[-1],', '通知管理', 'notice', 'system', 'Y', 60.00, 1, NULL, '', 'layui-icon-tips', '/notice', 'BellOutlined', NULL, NULL, NULL, NULL, 'N', '2020-12-29 19:51:14', NULL, '2021-01-08 16:47:56', 1339550467939639299);
|
||||
|
||||
INSERT INTO `sys_menu`(`menu_id`, `menu_parent_id`, `menu_pids`, `menu_name`, `menu_code`, `app_code`, `visible`, `menu_sort`, `status_flag`, `remark`, `layui_path`, `layui_icon`, `antdv_router`, `antdv_icon`, `antdv_component`, `antdv_link_open_type`, `antdv_link_url`, `antdv_uid_url`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1339550467939639351, 1339550467939639350, '[-1],[1339550467939639350],', '通知发布', 'notice_update', 'system', 'Y', 60.10, 1, NULL, '/view/notice', NULL, '/notice/publish', 'NotificationOutlined', '/notice/publish/publish', NULL, NULL, NULL, 'N', '2020-12-29 19:51:14', NULL, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_menu`(`menu_id`, `menu_parent_id`, `menu_pids`, `menu_name`, `menu_code`, `app_code`, `visible`, `menu_sort`, `status_flag`, `remark`, `layui_path`, `layui_icon`, `antdv_router`, `antdv_icon`, `antdv_component`, `antdv_link_open_type`, `antdv_link_url`, `antdv_uid_url`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1339550467939639352, 1339550467939639350, '[-1],[1339550467939639350],', '我的消息', 'notice_find', 'system', 'Y', 60.20, 1, NULL, '/view/message_list', NULL, '/notice/mynotice', 'MessageOutlined', '/notice/mynotice/mynotice', NULL, NULL, NULL, 'N', '2020-12-29 19:51:14', NULL, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_menu`(`menu_id`, `menu_parent_id`, `menu_pids`, `menu_name`, `menu_code`, `app_code`, `visible`, `menu_sort`, `status_flag`, `remark`, `layui_path`, `layui_icon`, `antdv_router`, `antdv_icon`, `antdv_component`, `antdv_link_open_type`, `antdv_link_url`, `antdv_uid_url`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1339550467939639360, -1, '[-1],', '监控管理', 'monitor', 'system', 'Y', 70.00, 1, NULL, '', 'layui-icon-console', '/monitor', 'DashboardOutlined', NULL, NULL, NULL, NULL, 'N', '2020-12-29 19:51:14', NULL, '2021-01-08 16:48:52', 1339550467939639299);
|
||||
|
||||
INSERT INTO `sys_menu`(`menu_id`, `menu_parent_id`, `menu_pids`, `menu_name`, `menu_code`, `app_code`, `visible`, `menu_sort`, `status_flag`, `remark`, `layui_path`, `layui_icon`, `antdv_router`, `antdv_icon`, `antdv_component`, `antdv_link_open_type`, `antdv_link_url`, `antdv_uid_url`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1339550467939639361, 1339550467939639360, '[-1],[1339550467939639360],', 'SQL监控', 'monitor_druid', 'system', 'Y', 70.10, 1, NULL, '/view/monitor/druid', NULL, '/monitor/druid', 'DesktopOutlined', '/monitor/druid', NULL, NULL, NULL, 'N', '2020-12-29 19:51:14', NULL, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_menu`(`menu_id`, `menu_parent_id`, `menu_pids`, `menu_name`, `menu_code`, `app_code`, `visible`, `menu_sort`, `status_flag`, `remark`, `layui_path`, `layui_icon`, `antdv_router`, `antdv_icon`, `antdv_component`, `antdv_link_open_type`, `antdv_link_url`, `antdv_uid_url`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1339550467939639362, 1339550467939639360, '[-1],[1339550467939639360],', '服务器信息', 'monitor_server', 'system', 'Y', 70.50, 1, NULL, '/view/monitor/systemInfo', NULL, '/monitor/server', 'DesktopOutlined', '/monitor/server', NULL, NULL, NULL, 'N', '2020-12-29 19:51:14', NULL, NULL, NULL);
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = -1, `menu_pids` = '[-1],', `menu_name` = '主控面板', `menu_code` = 'blackboard', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 10.00, `status_flag` = 1, `remark` = NULL, `layui_path` = '', `layui_icon` = 'layui-icon-theme', `antdv_router` = '/dashboard', `antdv_icon` = 'home-outlined', `antdv_component` = NULL, `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-01-08 20:52:34', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639301;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639301, `menu_pids` = '[-1],[1339550467939639301],', `menu_name` = '工作台', `menu_code` = 'board_platform', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 10.10, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/dashboard/workplace', `layui_icon` = 'layui-icon-rate-solid', `antdv_router` = '/dashboard/workplace', `antdv_icon` = 'desktop-outlined', `antdv_component` = '/dashboard/workplace', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = 1339550467939639299, `update_time` = '2021-01-08 20:52:34', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639302;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639301, `menu_pids` = '[-1],[1339550467939639301],', `menu_name` = '分析页', `menu_code` = 'board_analyse', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 10.20, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/dashboard/analysis', `layui_icon` = NULL, `antdv_router` = '/dashboard/analysis', `antdv_icon` = 'bar-chart-outlined', `antdv_component` = '/dashboard/analysis', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-01-08 20:52:34', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639303;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = -1, `menu_pids` = '[-1],', `menu_name` = '用户权限', `menu_code` = 'user_role', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.00, `status_flag` = 1, `remark` = NULL, `layui_path` = '#', `layui_icon` = 'layui-icon-template-1', `antdv_router` = '/orginfo', `antdv_icon` = 'setting-outlined', `antdv_component` = NULL, `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-02-19 22:17:55', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639304;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639304, `menu_pids` = '[-1],[1339550467939639304],', `menu_name` = '用户管理', `menu_code` = 'org_user', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.10, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/user', `layui_icon` = NULL, `antdv_router` = '/orginfo/user', `antdv_icon` = 'team-outlined', `antdv_component` = '/orginfo/user/user', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639305;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639304, `menu_pids` = '[-1],[1339550467939639304],', `menu_name` = '职位管理', `menu_code` = 'org_position', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.20, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/position', `layui_icon` = '', `antdv_router` = '/orginfo/position', `antdv_icon` = 'SolutionOutlined', `antdv_component` = '/orginfo/position/position', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-02-19 22:27:51', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639307;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639304, `menu_pids` = '[-1],[1339550467939639304],', `menu_name` = '应用管理', `menu_code` = 'auth_app', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.30, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/app', `layui_icon` = '', `antdv_router` = '/orginfo/app', `antdv_icon` = 'AppstoreOutlined', `antdv_component` = '/orginfo/app/app', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-02-19 22:28:13', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639309;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639304, `menu_pids` = '[-1],[1339550467939639304],', `menu_name` = '菜单管理', `menu_code` = 'auth_menu', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.50, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/menu', `layui_icon` = '', `antdv_router` = '/orginfo/menu', `antdv_icon` = 'bars-outlined', `antdv_component` = '/orginfo/menu/menu', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-02-19 22:29:05', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639310;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639304, `menu_pids` = '[-1],[1339550467939639304],', `menu_name` = '角色管理', `menu_code` = 'auth_role', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.40, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/role', `layui_icon` = '', `antdv_router` = '/orginfo/role', `antdv_icon` = 'idcard-outlined', `antdv_component` = '/orginfo/role/role', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-02-19 22:28:36', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639311;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639304, `menu_pids` = '[-1],[1339550467939639304],', `menu_name` = '资源管理', `menu_code` = 'auth_resource', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 20.60, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/resource', `layui_icon` = '', `antdv_router` = '/orginfo/resource', `antdv_icon` = 'CompressOutlined', `antdv_component` = '/orginfo/resource/resource', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-02-19 22:29:13', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639312;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = -1, `menu_pids` = '[-1],', `menu_name` = '基础数据', `menu_code` = 'base', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 40.00, `status_flag` = 1, `remark` = NULL, `layui_path` = '', `layui_icon` = 'layui-icon-component', `antdv_router` = '/basedata', `antdv_icon` = 'DatabaseOutlined', `antdv_component` = NULL, `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-01-08 16:47:41', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639313;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639313, `menu_pids` = '[-1],[1339550467939639313],', `menu_name` = '系统配置', `menu_code` = 'base_sysconfig', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 40.10, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/config', `layui_icon` = NULL, `antdv_router` = '/basedata/sysconfig', `antdv_icon` = 'RadarChartOutlined', `antdv_component` = '/basedata/sysconfig/sysconfig', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639314;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639313, `menu_pids` = '[-1],[1339550467939639313],', `menu_name` = '字典管理', `menu_code` = 'base_dict', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 40.20, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/dictType', `layui_icon` = NULL, `antdv_router` = '/basedata/dict', `antdv_icon` = 'ContainerOutlined', `antdv_component` = '/basedata/dict/dict', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639315;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639313, `menu_pids` = '[-1],[1339550467939639313],', `menu_name` = '接口文档', `menu_code` = 'base_apis', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 40.30, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/api', `layui_icon` = NULL, `antdv_router` = '/basedata/api', `antdv_icon` = 'ApiOutlined', `antdv_component` = '/basedata/api/api', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639316;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = -1, `menu_pids` = '[-1],', `menu_name` = '系统功能', `menu_code` = 'sys', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.00, `status_flag` = 1, `remark` = NULL, `layui_path` = '', `layui_icon` = 'layui-icon-set', `antdv_router` = '/operation', `antdv_icon` = 'ApartmentOutlined', `antdv_component` = NULL, `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-01-08 16:47:49', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639317;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '文件管理', `menu_code` = 'sys_file', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.10, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/file', `layui_icon` = NULL, `antdv_router` = '/operation/file', `antdv_icon` = 'FileOutlined', `antdv_component` = '/operation/file/file', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639318;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '操作日志', `menu_code` = 'operate_log', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.20, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/log', `layui_icon` = NULL, `antdv_router` = '/operation/operatelog', `antdv_icon` = 'HistoryOutlined', `antdv_component` = '/operation/operatelog/operatelog', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639319;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '在线用户', `menu_code` = 'sys_online', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.30, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/onlineUser', `layui_icon` = NULL, `antdv_router` = '/operation/online', `antdv_icon` = 'SolutionOutlined', `antdv_component` = '/operation/online/online', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639320;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '定时任务', `menu_code` = 'sys_timer', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.40, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/sysTimers', `layui_icon` = NULL, `antdv_router` = '/operation/timer', `antdv_icon` = 'CalculatorOutlined', `antdv_component` = '/operation/timer/timer', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639321;
|
||||
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '登录日志', `menu_code` = 'login_log', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.50, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/loginLog', `layui_icon` = NULL, `antdv_router` = '/system/loginlog', `antdv_icon` = 'UserSwitchOutlined', `antdv_component` = '/operation/loginlog/loginlog', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639334;
|
||||
|
||||
DELETE FROM `sys_menu` WHERE `menu_id` = 1339550467939639322;
|
||||
|
||||
DELETE FROM `sys_menu` WHERE `menu_id` = 1339550467939639323;
|
||||
|
||||
DELETE FROM `sys_menu` WHERE `menu_id` = 1339550467939639324;
|
||||
|
||||
DELETE FROM `sys_menu` WHERE `menu_id` = 1339550467939639325;
|
||||
|
||||
DELETE FROM `sys_menu` WHERE `menu_id` = 1339550467939639326;
|
||||
|
||||
DELETE FROM `sys_menu` WHERE `menu_id` = 1339550467939639330;
|
||||
|
||||
DELETE FROM `sys_menu` WHERE `menu_id` = 1352966403623342082;
|
||||
|
||||
DELETE FROM `sys_menu` WHERE `menu_id` = 1352968673144459265;
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412737130498, 1339550467939639303, 1339550467939639301, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519105, 1339550467939639303, 1339550467939639302, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519106, 1339550467939639303, 1339550467939639303, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519107, 1339550467939639303, 1339550467939639304, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519108, 1339550467939639303, 1339550467939639305, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519109, 1339550467939639303, 1339550467939639307, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519110, 1339550467939639303, 1339550467939639309, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519111, 1339550467939639303, 1339550467939639310, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519112, 1339550467939639303, 1339550467939639311, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519113, 1339550467939639303, 1339550467939639312, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519114, 1339550467939639303, 1339550467939639313, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519115, 1339550467939639303, 1339550467939639314, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519116, 1339550467939639303, 1339550467939639315, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519117, 1339550467939639303, 1339550467939639316, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519118, 1339550467939639303, 1339550467939639317, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412745519119, 1339550467939639303, 1339550467939639318, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412753907714, 1339550467939639303, 1339550467939639319, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412753907715, 1339550467939639303, 1339550467939639320, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412753907716, 1339550467939639303, 1339550467939639321, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412753907717, 1339550467939639303, 1339550467939639334, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412753907718, 1339550467939639303, 1339550467939639335, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412753907719, 1339550467939639303, 1339550467939639336, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412753907720, 1339550467939639303, 1339550467939639350, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412753907721, 1339550467939639303, 1339550467939639351, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412753907722, 1339550467939639303, 1339550467939639352, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412753907723, 1339550467939639303, 1339550467939639360, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412753907724, 1339550467939639303, 1339550467939639361, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
INSERT INTO `sys_role_menu`(`role_menu_id`, `role_id`, `menu_id`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1377572412753907725, 1339550467939639303, 1339550467939639362, '2021-04-01 18:43:52', 1339550467939639299, NULL, NULL);
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720900231170;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720900231171;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720900231172;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720900231173;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720900231174;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720900231175;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720900231176;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720900231177;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720900231178;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619778;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619779;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619780;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619781;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619782;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619783;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619784;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619785;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619786;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619787;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619788;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619789;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619790;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619791;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619792;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619793;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619794;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619795;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619796;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619797;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619798;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619799;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619800;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619801;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1348235720908619802;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1352966446510100482;
|
||||
|
||||
DELETE FROM `sys_role_menu` WHERE `role_menu_id` = 1352968718384222221;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
@ -1 +0,0 @@
|
|||
INSERT INTO `sys_menu`(`menu_id`, `menu_parent_id`, `menu_pids`, `menu_name`, `menu_code`, `app_code`, `visible`, `menu_sort`, `status_flag`, `remark`, `layui_path`, `layui_icon`, `antdv_router`, `antdv_icon`, `antdv_component`, `antdv_link_open_type`, `antdv_link_url`, `antdv_uid_url`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1339550467939639390, -1, '[-1],', '个人信息', 'personal_info', 'system', 'N', 80.00, 1, NULL, '', NULL, '/personal/info', '', '/personal/info', NULL, NULL, NULL, 'N', '2020-12-29 19:51:14', NULL, NULL, NULL);
|
|
@ -1,2 +0,0 @@
|
|||
ALTER TABLE `sys_user`
|
||||
MODIFY COLUMN `real_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '姓名' AFTER `user_id`;
|
|
@ -1 +0,0 @@
|
|||
ALTER TABLE `hr_position` DROP INDEX `CODE_UNI`;
|
|
@ -1,2 +0,0 @@
|
|||
alter table sys_timers
|
||||
add params varchar(2000) null comment '参数' after cron;
|
|
@ -1,8 +0,0 @@
|
|||
SET FOREIGN_KEY_CHECKS=0;
|
||||
INSERT INTO `sys_timers`(`timer_id`, `timer_name`, `action_class`, `cron`, `params`, `job_status`, `remark`, `del_flag`, `create_time`, `create_user`, `update_time`, `update_user`) VALUES (1385068954897223681, '定时检测数据源的链接状态', 'cn.stylefeng.roses.kernel.dsctn.modular.timer.DataSourceStatusCheckTimer', '0/30 * * * * ? ', '', 1, '', 'N', '2021-04-22 11:12:27', 1339550467939639299, NULL, NULL);
|
||||
UPDATE `sys_timers` SET `timer_name` = '定时刷新服务器状态', `action_class` = 'cn.stylefeng.roses.kernel.monitor.system.holder.SystemHardwareInfoHolder', `cron` = '0 0/1 * * * ? ', `params` = NULL, `job_status` = 1, `remark` = '每1分钟执行一次,刷新服务器状态', `del_flag` = 'N', `create_time` = '2021-01-31 21:59:05', `create_user` = 1339550467939639299, `update_time` = '2021-01-31 22:00:23', `update_user` = 1339550467939639299 WHERE `timer_id` = 1355878268976271362;
|
||||
|
||||
ALTER TABLE `sys_database_info` ADD COLUMN `schema_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '数据库的schema名称,每种数据库的schema意义都不同' AFTER `password`;
|
||||
ALTER TABLE `sys_database_info` ADD COLUMN `status_flag` tinyint(4) NULL DEFAULT NULL COMMENT '数据源状态:1-正常,2-无法连接' AFTER `schema_name`;
|
||||
ALTER TABLE `sys_database_info` ADD COLUMN `error_description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '连接失败原因' AFTER `status_flag`;
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
|
@ -1,11 +0,0 @@
|
|||
-- ----------------------------
|
||||
-- 更新一些菜单的顺序
|
||||
-- ----------------------------
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '文件管理', `menu_code` = 'sys_file', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.50, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/file', `layui_icon` = NULL, `antdv_router` = '/operation/file', `antdv_icon` = 'FileOutlined', `antdv_component` = '/operation/file/file', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639318;
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '操作日志', `menu_code` = 'operate_log', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.10, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/log', `layui_icon` = NULL, `antdv_router` = '/operation/operatelog', `antdv_icon` = 'HistoryOutlined', `antdv_component` = '/operation/operatelog/operatelog', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639319;
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '在线用户', `menu_code` = 'sys_online', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.30, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/onlineUser', `layui_icon` = NULL, `antdv_router` = '/operation/online', `antdv_icon` = 'SolutionOutlined', `antdv_component` = '/operation/online/online', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639320;
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '定时任务', `menu_code` = 'sys_timer', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.40, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/sysTimers', `layui_icon` = NULL, `antdv_router` = '/operation/timer', `antdv_icon` = 'CalculatorOutlined', `antdv_component` = '/operation/timer/timer', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639321;
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '登录日志', `menu_code` = 'login_log', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.20, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/loginLog', `layui_icon` = NULL, `antdv_router` = '/operation/loginlog', `antdv_icon` = 'UserSwitchOutlined', `antdv_component` = '/operation/loginlog/loginlog', `antdv_link_open_type` = NULL, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639334;
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '多数据源', `menu_code` = 'datasources', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 50.60, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/datasource', `layui_icon` = 'layui-icon-star-fill', `antdv_router` = '/operation/datasource', `antdv_icon` = 'ContainerOutlined', `antdv_component` = '/operation/datasource/datasource', `antdv_link_open_type` = 0, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2021-01-23 21:08:22', `create_user` = 1339550467939639299, `update_time` = NULL, `update_user` = NULL WHERE `menu_id` = 1339550467939639335;
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639317, `menu_pids` = '[-1],[1339550467939639317],', `menu_name` = '多语言配置', `menu_code` = 'languages', `app_code` = 'system', `visible` = 'N', `menu_sort` = 50.70, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/i18n', `layui_icon` = 'layui-icon-star-fill', `antdv_router` = '/operation/language', `antdv_icon` = 'FileWordOutlined', `antdv_component` = '/operation/language/language', `antdv_link_open_type` = 0, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2021-01-23 21:17:23', `create_user` = 1339550467939639299, `update_time` = '2021-01-25 21:59:08', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639336;
|
||||
UPDATE `sys_menu` SET `menu_parent_id` = 1339550467939639360, `menu_pids` = '[-1],[1339550467939639360],', `menu_name` = 'SQL监控', `menu_code` = 'monitor_druid', `app_code` = 'system', `visible` = 'Y', `menu_sort` = 70.10, `status_flag` = 1, `remark` = NULL, `layui_path` = '/view/monitor/druid', `layui_icon` = NULL, `antdv_router` = '/monitor/druid', `antdv_icon` = 'DesktopOutlined', `antdv_component` = 'http://localhost:8080/druid', `antdv_link_open_type` = 1, `antdv_link_url` = NULL, `antdv_uid_url` = NULL, `del_flag` = 'N', `create_time` = '2020-12-29 19:51:14', `create_user` = NULL, `update_time` = '2021-05-05 21:42:08', `update_user` = 1339550467939639299 WHERE `menu_id` = 1339550467939639361;
|
File diff suppressed because it is too large
Load Diff
|
@ -50,7 +50,11 @@ layui.define(['jquery', 'layer'], function (exports) {
|
|||
_self.heartCheckHandler = setTimeout(function () {
|
||||
try {
|
||||
// 发送心跳检测
|
||||
_self.send("&")
|
||||
let heartMsg = {
|
||||
"clientMsgType": "299999",
|
||||
"data": new Date().getTime()
|
||||
};
|
||||
_self.send(JSON.stringify(heartMsg))
|
||||
} catch (e) {
|
||||
(param.connectErr || emptyFun)(e);
|
||||
_self.lockReconnect = false;
|
||||
|
|
|
@ -25,7 +25,21 @@ layui.use(['table', 'form', 'func', 'HttpRequest', 'util', 'upload'], function (
|
|||
return '<img data-index="' + (d.LAY_INDEX - 1) + '" src="' + url + '" class="tb-img-circle" tb-img alt=""/>';
|
||||
}, align: 'center', unresize: true
|
||||
},
|
||||
{field: 'fileLocation', sort: true, title: '存储位置'},
|
||||
{
|
||||
field: 'fileLocation', sort: true, title: '存储位置', templet: function (data) {
|
||||
if (data.fileLocation === 1) {
|
||||
return '阿里云';
|
||||
} else if (data.fileLocation === 2) {
|
||||
return '腾讯云';
|
||||
} else if (data.fileLocation === 3) {
|
||||
return 'minio';
|
||||
} else if (data.fileLocation === 4) {
|
||||
return '本地';
|
||||
} else {
|
||||
return '未知';
|
||||
}
|
||||
}
|
||||
},
|
||||
{field: 'fileOriginName', sort: true, title: '文件名称'},
|
||||
{field: 'secretFlag', sort: true, title: '是否机密'},
|
||||
{field: 'fileSuffix', sort: true, title: '文件后缀'},
|
||||
|
@ -71,7 +85,7 @@ layui.use(['table', 'form', 'func', 'HttpRequest', 'util', 'upload'], function (
|
|||
FileInfo.search = function () {
|
||||
var queryData = {};
|
||||
queryData['fileOriginName'] = $("#fileOriginName").val();
|
||||
//queryData['positionCode'] = $("#positionCode").val();
|
||||
queryData['fileLocation'] = $("#fileLocation").val();
|
||||
table.reload(FileInfo.tableId, {
|
||||
where: queryData,
|
||||
page: {curr: 1}
|
||||
|
|
|
@ -36,8 +36,8 @@ layui.use(['HttpRequest', 'treeTable', 'laydate', 'func', 'form'], function () {
|
|||
*/
|
||||
Log.search = function () {
|
||||
var queryData = {};
|
||||
queryData['beginDateTime'] = $("#beginDateTime").val();
|
||||
queryData['endDateTime'] = $("#endDateTime").val();
|
||||
queryData['beginDate'] = $("#beginDate").val();
|
||||
queryData['endDate'] = $("#endDate").val();
|
||||
queryData['logName'] = $("#logName").val();
|
||||
queryData['appName'] = $("#appName").val();
|
||||
// queryData['logType'] = $("#logType").val();
|
||||
|
@ -72,10 +72,10 @@ layui.use(['HttpRequest', 'treeTable', 'laydate', 'func', 'form'], function () {
|
|||
*/
|
||||
Log.cleanLog = function () {
|
||||
var queryData = {};
|
||||
queryData['beginDateTime'] = $("#beginDateTime").val();
|
||||
queryData['endDateTime'] = $("#endDateTime").val();
|
||||
queryData['beginDate'] = $("#beginDate").val();
|
||||
queryData['endDate'] = $("#endDate").val();
|
||||
queryData['appName'] = $("#appName").val();
|
||||
if (queryData.beginDateTime == "" || queryData.endDateTime == "" || queryData.appName == "") {
|
||||
if (queryData.beginDate == "" || queryData.endDate == "" || queryData.appName == "") {
|
||||
Feng.error("请选择开始时间、结束时间和服务名称");
|
||||
return false;
|
||||
}
|
||||
|
@ -92,12 +92,12 @@ layui.use(['HttpRequest', 'treeTable', 'laydate', 'func', 'form'], function () {
|
|||
|
||||
// 渲染时间选择框
|
||||
laydate.render({
|
||||
elem: '#beginDateTime'
|
||||
elem: '#beginDate'
|
||||
});
|
||||
|
||||
//渲染时间选择框
|
||||
laydate.render({
|
||||
elem: '#endDateTime'
|
||||
elem: '#endDate'
|
||||
});
|
||||
|
||||
// 渲染表格
|
||||
|
|
|
@ -75,12 +75,12 @@ layui.use(['layer', 'form', 'table', 'admin', 'HttpRequest', 'func'], function (
|
|||
Feng.success("删除成功!");
|
||||
table.reload(Notice.tableId);
|
||||
}, function (data) {
|
||||
Feng.error("删除失败!" + data.responseJSON.message + "!");
|
||||
Feng.error("删除失败!" + data.message + "!");
|
||||
});
|
||||
ajax.set("noticeId", data.noticeId);
|
||||
ajax.start(true);
|
||||
};
|
||||
Feng.confirm("是否删除通知 " + data.title + "?", operation);
|
||||
Feng.confirm("是否删除通知 " + data.noticeTitle + "?", operation);
|
||||
};
|
||||
|
||||
// 渲染表格
|
||||
|
|
|
@ -22,6 +22,7 @@ layui.use(['table', 'admin', 'form', 'func', 'HttpRequest', 'dropdown'], functio
|
|||
{field: 'actionClass', sort: true, title: '任务class'},
|
||||
{field: 'remark', sort: true, title: '备注信息'},
|
||||
{field: 'jobStatus', sort: true, templet: '#statusTpl', title: '状态'},
|
||||
{field: 'createUserName', title: '创建人'},
|
||||
{align: 'center', toolbar: '#tableBar', title: '操作'}
|
||||
]];
|
||||
};
|
||||
|
|
|
@ -37,14 +37,37 @@
|
|||
var Feng = {
|
||||
ctxPath: "${ctxPath}",
|
||||
version: '${constants.getReleaseVersion()}',
|
||||
wsUrl: '${wsUrl}'
|
||||
wsUrl: '${wsUrl}',
|
||||
userId: '${userId}'
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="${ctxPath}/assets/common/libs/layui/layui.js?v=${constants.getReleaseVersion()}"></script>
|
||||
<script type="text/javascript" src="${ctxPath}/assets/common/js/common.js?v=${constants.getReleaseVersion()}"></script>
|
||||
|
||||
<script>
|
||||
var wsInst = null
|
||||
// 全局消息类型声明
|
||||
window.WEB_SOCKET_MSG_TYPE = {
|
||||
SERVER: {
|
||||
SYS_NOTICE_MSG_TYPE: "100001"
|
||||
},
|
||||
CLIENT: {
|
||||
USER_ADD_MSG_TYPE: "200001"
|
||||
}
|
||||
}
|
||||
|
||||
// 全局消息类型和回调函数维护中心
|
||||
window.msgTypeCallBackMap = new Map()
|
||||
|
||||
// 新增一个回调
|
||||
window.insertCallback = (msgType, func) => {
|
||||
msgTypeCallBackMap.set(msgType, func)
|
||||
}
|
||||
|
||||
// 删除一个回调
|
||||
window.deleteCallback = (msgType) => {
|
||||
msgTypeCallBackMap.delete(msgType)
|
||||
}
|
||||
|
||||
layui.use(['layer', 'element', 'admin', 'index', 'HttpRequest', 'ws', 'notice', 'i18n'], function () {
|
||||
var $ = layui.jquery;
|
||||
var layer = layui.layer;
|
||||
|
@ -92,7 +115,7 @@
|
|||
|
||||
// 退出登录点击事件
|
||||
$('#btnLogout').click(function () {
|
||||
var request = new HttpRequest(Feng.ctxPath + "/logout", 'post', function (data) {
|
||||
var request = new HttpRequest(Feng.ctxPath + "/logoutAction", 'post', function (data) {
|
||||
Feng.success("退出成功!");
|
||||
window.location.href = Feng.ctxPath + "/";
|
||||
}, function (data) {
|
||||
|
@ -100,50 +123,58 @@
|
|||
});
|
||||
request.start();
|
||||
});
|
||||
wsInst = ws.render({
|
||||
|
||||
// 全局WebSocket加载
|
||||
window.wsInst = ws.render({
|
||||
wsUrl: Feng.wsUrl, //WebSocket的地址
|
||||
connectErr: function (event) {
|
||||
connectErr: (event) => {
|
||||
console.log(event)
|
||||
//如果不支持websocket 回调
|
||||
},
|
||||
onWsError: function (event) {
|
||||
onWsError: (event) => {
|
||||
//发生连接错误回调
|
||||
},
|
||||
onWsOpen: function (event) {
|
||||
//连接成功回调
|
||||
console.log("Socket 已打开");
|
||||
wsInst.send("消息发送测试(From Client)");
|
||||
onWsOpen: (event) => {
|
||||
// 绑定用户
|
||||
let initMsg = {
|
||||
"clientMsgType": WEB_SOCKET_MSG_TYPE.CLIENT.USER_ADD_MSG_TYPE,
|
||||
"formUserId": Feng.userId,
|
||||
"data": WEB_SOCKET_MSG_TYPE.SERVER.SYS_NOTICE_MSG_TYPE
|
||||
};
|
||||
wsInst.send(JSON.stringify(initMsg));
|
||||
},
|
||||
onWsMessage: function (event) {
|
||||
onWsMessage: (event) => {
|
||||
//服务器发送消息回调
|
||||
let data = event.data;
|
||||
try {
|
||||
let msg = JSON.parse(data)
|
||||
notice.info({
|
||||
title: '[' + msg.businessTypeValue + ']' + msg.messageTitle,
|
||||
message: msg.messageContent,
|
||||
timeout: false
|
||||
});
|
||||
$('#messageDot').show();
|
||||
let originalData = JSON.parse(data)
|
||||
let func = msgTypeCallBackMap.get(originalData.serverMsgType);
|
||||
if (func) {
|
||||
eval(func(originalData));
|
||||
}
|
||||
} catch (e) {
|
||||
}
|
||||
},
|
||||
onWsClose: function (event) {
|
||||
onWsClose: (event) => {
|
||||
//关闭连接回调
|
||||
},
|
||||
|
||||
wsSend: function (event) {
|
||||
wsSend: (event) => {
|
||||
//发送成功后的回调
|
||||
},
|
||||
|
||||
})
|
||||
});
|
||||
|
||||
window.unload = function () {
|
||||
if (wsInst) {
|
||||
wsInst.close();
|
||||
}
|
||||
};
|
||||
// 注册系统消息监听
|
||||
window.insertCallback(window.WEB_SOCKET_MSG_TYPE.SERVER.SYS_NOTICE_MSG_TYPE, (massage) => {
|
||||
notice.info({
|
||||
title: '[' + massage.data.businessTypeValue + ']' + massage.data.messageTitle,
|
||||
message: massage.data.messageContent,
|
||||
timeout: false
|
||||
});
|
||||
$('#messageDot').show();
|
||||
})
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
|
|
|
@ -181,7 +181,7 @@
|
|||
<i class="layui-icon layui-icon-password"></i>
|
||||
<input class="layui-input" id="password" name="password" placeholder="请输入登录密码" type="password" lay-verType="tips" lay-verify="required" required/>
|
||||
</div>
|
||||
@if(constants.getCaptchaOpen()){
|
||||
@if(security.getCaptchaOpen()){
|
||||
<div class="layui-form-item layui-input-icon-group login-captcha-group">
|
||||
<i class="layui-icon layui-icon-auz"></i>
|
||||
<input id="verKey" name="verKey" type="hidden"/>
|
||||
|
@ -250,7 +250,7 @@
|
|||
});
|
||||
|
||||
// 开启验证码
|
||||
@if(constants.getCaptchaOpen()){
|
||||
@if(security.getCaptchaOpen()){
|
||||
getKaptcha();
|
||||
@}
|
||||
|
||||
|
@ -263,7 +263,7 @@
|
|||
// 重定向到首页
|
||||
window.location.href = Feng.ctxPath + "/";
|
||||
}, function (data) {
|
||||
@if(constants.getCaptchaOpen()){
|
||||
@if(security.getCaptchaOpen()){
|
||||
//清空输入框
|
||||
$("#verCode").val('');
|
||||
//刷新验证码
|
||||
|
|
|
@ -38,9 +38,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<label class="layui-form-label layui-form-required">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input id="dictTypeSort" name="dictTypeSort" placeholder="请输入字典排序" type="text" class="layui-input">
|
||||
<input id="dictTypeSort" name="dictTypeSort" placeholder="请输入字典排序" type="text" class="layui-input" lay-verify="required" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
|
|
|
@ -38,9 +38,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<label class="layui-form-label layui-form-required">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input id="dictTypeSort" name="dictTypeSort" placeholder="请输入字典排序" type="text" class="layui-input">
|
||||
<input id="dictTypeSort" name="dictTypeSort" placeholder="请输入字典排序" type="text" class="layui-input" lay-verify="required" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<label class="layui-form-label layui-form-required">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input id="dictSort" name="dictSort" placeholder="请输入字典排序" type="text" class="layui-input" lay-verify="required" required>
|
||||
</div>
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<label class="layui-form-label layui-form-required">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input id="dictSort" name="dictSort" placeholder="请输入字典排序" type="text" class="layui-input" lay-verify="required" required>
|
||||
</div>
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<label class="layui-form-label layui-form-required">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input id="dictSort" name="dictSort" placeholder="请输入字典排序" type="text" class="layui-input" lay-verify="required" required>
|
||||
</div>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<div class="layui-form toolbar">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<select name="fileLocation" lay-verify="">
|
||||
<select name="fileLocation" id="fileLocation" lay-verify="">
|
||||
<option value="">请选择存储位置</option>
|
||||
<option value="4">本地</option>
|
||||
<option value="1">阿里云</option>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<label class="layui-form-label layui-form-required">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input id="dictSort" name="dictSort" placeholder="请输入字典排序" type="text" class="layui-input" lay-verify="required" required>
|
||||
</div>
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
//解锁锁屏
|
||||
admin.unlockScreen();
|
||||
|
||||
var request = new HttpRequest(Feng.ctxPath + "/logout", 'post', function (data) {
|
||||
var request = new HttpRequest(Feng.ctxPath + "/logoutAction", 'post', function (data) {
|
||||
Feng.success("退出成功!");
|
||||
location.replace(Feng.ctxPath + "/");
|
||||
}, function (data) {
|
||||
|
|
|
@ -12,10 +12,10 @@
|
|||
<div class="layui-form toolbar">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<input id="beginDateTime" class="layui-input" type="text" placeholder="开始时间"/>
|
||||
<input id="beginDate" class="layui-input" type="text" placeholder="开始时间"/>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<input id="endDateTime" class="layui-input" type="text" placeholder="结束时间"/>
|
||||
<input id="endDate" class="layui-input" type="text" placeholder="结束时间"/>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<input id="appName" class="layui-input" type="text" placeholder="服务名称"/>
|
||||
|
|
Loading…
Reference in New Issue