Merge branch 'v7.0.4-develop'

pull/76/head
fengshuonan 2021-07-26 16:06:05 +08:00
commit 98a1b2e77a
92 changed files with 1754 additions and 5339 deletions

53
pom.xml
View File

@ -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>

View File

@ -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;
}
/**
* beetlproperties
*
* @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;
}
}

View File

@ -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;
}
}

View File

@ -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,longstring
*
@ -81,7 +63,6 @@ public class SpringMvcConfiguration implements WebMvcConfigurer {
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authJwtTokenSecurityInterceptor);
registry.addInterceptor(permissionSecurityInterceptor);
registry.addInterceptor(optionsSecurityInterceptor);
}
/**

View File

@ -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);
}
}

View File

@ -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:";
}

View File

@ -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";
/**
* selectname
*/
String HEAD_NAME = "headName";
/**
* selectvalue
*/
String HEAD_VALUE = "headValue";
/**
* select1-2-
*/
String HEAD_TYPE = "headType";
/**
*
*/
String DEFAULT_VALUE = "defaultValue";
/**
*
*/
String WORKFLOW_FORM = "workflowForm";
/**
*
*/
String ITEM_NAME = "itemName";
}

View File

@ -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 "未知";
}
}

View File

@ -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);
}
}

View File

@ -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;
/**
* selectname
*/
public String headName;
/**
* selectvalue
*/
public String headValue;
/**
* select1-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);
}
}

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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";
}
}

View File

@ -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>
* demoDemoException
*
* @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";
}
}

View File

@ -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());

View File

@ -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;

View File

@ -1,4 +1,4 @@
/**
*
*/
package cn.stylefeng.guns.modular.business;
package cn.stylefeng.guns.modular.demo;

View File

@ -1,4 +1,4 @@
package cn.stylefeng.guns.modular.business.service;
package cn.stylefeng.guns.modular.demo.service;
import org.springframework.stereotype.Service;

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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;
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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);
}
}
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -1,4 +0,0 @@
/**
* Guns
*/
package cn.stylefeng.guns.modular.system;

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -1 +0,0 @@
alter table sys_config change config_code config_code varchar(100);

View File

@ -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`;

View File

@ -1 +0,0 @@
delete from sys_config where config_code = 'SYS_SESSION_ADD_TO_COOKIE';

View File

@ -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;

View File

@ -1 +0,0 @@
ALTER TABLE `sys_user_org` MODIFY COLUMN `position_id` bigint(20) NULL COMMENT '职位id' AFTER `org_id`;

View File

@ -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;

View File

@ -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);

View File

@ -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`;

View File

@ -1 +0,0 @@
ALTER TABLE `hr_position` DROP INDEX `CODE_UNI`;

View File

@ -1,2 +0,0 @@
alter table sys_timers
add params varchar(2000) null comment '参数' after cron;

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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}

View File

@ -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'
});
// 渲染表格

View File

@ -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);
};
// 渲染表格

View File

@ -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: ''}
]];
};

View File

@ -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>

View File

@ -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('');
//刷新验证码

View File

@ -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">

View File

@ -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">

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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) {

View File

@ -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="服务名称"/>