新增properties模块
This commit is contained in:
parent
57e7d5aea7
commit
4d83f49ca6
28
basic-properties/pom.xml
Normal file
28
basic-properties/pom.xml
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>wg-basic</artifactId>
|
||||
<groupId>ink.wgink</groupId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>basic-properties</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-beans</artifactId>
|
||||
</dependency>
|
||||
<!-- springboot start -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<!-- springboot end -->
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -1,4 +1,4 @@
|
||||
package ink.wgink.common.config.properties;
|
||||
package ink.wgink.properties;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
@ -1,4 +1,4 @@
|
||||
package ink.wgink.login.base.config;
|
||||
package ink.wgink.properties;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
|
||||
**/
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "spring")
|
||||
public class BaseConfig {
|
||||
public class BaseProperties {
|
||||
|
||||
private String loginUrl;
|
||||
private String loginFailure;
|
@ -1,4 +1,4 @@
|
||||
package ink.wgink.common.config.properties;
|
||||
package ink.wgink.properties;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -15,7 +15,7 @@ import org.springframework.stereotype.Component;
|
||||
**/
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "server")
|
||||
public class ServerProperties {
|
||||
public class ClientServerProperties {
|
||||
|
||||
private Integer port;
|
||||
private String url;
|
@ -1,4 +1,4 @@
|
||||
package ink.wgink.module.file.config.properties;
|
||||
package ink.wgink.properties;
|
||||
|
||||
/**
|
||||
* When you feel like quitting. Think about why you started
|
@ -1,4 +1,4 @@
|
||||
package ink.wgink.module.file.config.properties;
|
||||
package ink.wgink.properties;
|
||||
|
||||
/**
|
||||
* When you feel like quitting. Think about why you started
|
@ -1,4 +1,4 @@
|
||||
package ink.wgink.module.file.config.properties;
|
||||
package ink.wgink.properties;
|
||||
|
||||
/**
|
||||
* When you feel like quitting. Think about why you started
|
@ -1,4 +1,7 @@
|
||||
package ink.wgink.module.file.config.properties;
|
||||
package ink.wgink.properties;
|
||||
|
||||
import ink.wgink.properties.FileMediaAppMaxDurationProperties;
|
||||
import ink.wgink.properties.FileMediaBackendMaxDurationProperties;
|
||||
|
||||
/**
|
||||
* When you feel like quitting. Think about why you started
|
@ -1,4 +1,6 @@
|
||||
package ink.wgink.module.file.config.properties;
|
||||
package ink.wgink.properties;
|
||||
|
||||
import ink.wgink.properties.FileMediaBaseMaxDurationProperties;
|
||||
|
||||
/**
|
||||
* When you feel like quitting. Think about why you started
|
@ -1,4 +1,4 @@
|
||||
package ink.wgink.module.file.config.properties;
|
||||
package ink.wgink.properties;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
@ -1,4 +1,4 @@
|
||||
package ink.wgink.login.wechat.config.properties;
|
||||
package ink.wgink.properties;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@ -19,7 +19,6 @@ public class MiniAppProperties {
|
||||
|
||||
private Boolean active;
|
||||
private String authorizeUrl;
|
||||
private String bindUserUrl;
|
||||
private String grantType;
|
||||
private String appKey;
|
||||
private String appSecret;
|
||||
@ -40,14 +39,6 @@ public class MiniAppProperties {
|
||||
this.authorizeUrl = authorizeUrl;
|
||||
}
|
||||
|
||||
public String getBindUserUrl() {
|
||||
return bindUserUrl == null ? "" : bindUserUrl;
|
||||
}
|
||||
|
||||
public void setBindUserUrl(String bindUserUrl) {
|
||||
this.bindUserUrl = bindUserUrl;
|
||||
}
|
||||
|
||||
public String getGrantType() {
|
||||
return grantType == null ? "" : grantType;
|
||||
}
|
||||
@ -79,8 +70,6 @@ public class MiniAppProperties {
|
||||
.append(active);
|
||||
sb.append(",\"authorizeUrl\":\"")
|
||||
.append(authorizeUrl).append('\"');
|
||||
sb.append(",\"bindUserUrl\":\"")
|
||||
.append(bindUserUrl).append('\"');
|
||||
sb.append(",\"grantType\":\"")
|
||||
.append(grantType).append('\"');
|
||||
sb.append(",\"appKey\":\"")
|
@ -1,4 +1,4 @@
|
||||
package ink.wgink.login.base.config.properties;
|
||||
package ink.wgink.properties;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -15,7 +15,7 @@ import org.springframework.stereotype.Component;
|
||||
**/
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "server")
|
||||
public class SystemProperties {
|
||||
public class ServerProperties {
|
||||
|
||||
/**
|
||||
* 服务端口
|
@ -1,4 +1,4 @@
|
||||
package ink.wgink.common.config.properties;
|
||||
package ink.wgink.properties;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
@ -13,14 +13,6 @@
|
||||
|
||||
<dependencies>
|
||||
<!-- Spring start -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-beans</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-web</artifactId>
|
||||
|
@ -32,14 +32,11 @@
|
||||
<artifactId>basic-annotation</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<!-- springboot start -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||
<scope>compile</scope>
|
||||
<groupId>ink.wgink</groupId>
|
||||
<artifactId>basic-properties</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<!-- springboot end -->
|
||||
|
||||
<!-- pagerhelper start -->
|
||||
<dependency>
|
||||
|
@ -1,7 +1,6 @@
|
||||
package ink.wgink.common.config;
|
||||
|
||||
import ink.wgink.common.config.properties.TransactionProperties;
|
||||
import ink.wgink.exceptions.SaveException;
|
||||
import ink.wgink.properties.TransactionProperties;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.springframework.aop.Advisor;
|
||||
import org.springframework.aop.aspectj.AspectJExpressionPointcut;
|
||||
|
@ -2,10 +2,10 @@ package ink.wgink.common.service.rbac.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import ink.wgink.common.config.properties.AccessControlProperties;
|
||||
import ink.wgink.common.service.rbac.IRbacService;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.pojo.bos.RoleGrantedAuthorityBO;
|
||||
import ink.wgink.properties.AccessControlProperties;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -77,4 +77,8 @@ public interface IUserCenterConst {
|
||||
* 登录框位置
|
||||
*/
|
||||
String LOGIN_BOX_POSITION = "loginBoxPosition";
|
||||
/**
|
||||
* 菜单模式
|
||||
*/
|
||||
String MENU_MODE = "menuMode";
|
||||
}
|
||||
|
@ -4,12 +4,12 @@ import ink.wgink.common.component.SecurityComponent;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.interfaces.menu.IMenuBaseService;
|
||||
import ink.wgink.interfaces.role.IRoleMenuBaseService;
|
||||
import ink.wgink.login.base.config.properties.SystemProperties;
|
||||
import ink.wgink.login.base.consts.IUserCenterConst;
|
||||
import ink.wgink.login.base.manager.ConfigManager;
|
||||
import ink.wgink.pojo.bos.UserInfoBO;
|
||||
import ink.wgink.pojo.dtos.menu.MenuDTO;
|
||||
import ink.wgink.pojo.pos.RolePO;
|
||||
import ink.wgink.properties.ServerProperties;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
@ -38,7 +38,7 @@ public class IndexRouteController {
|
||||
@Autowired
|
||||
private SecurityComponent securityComponent;
|
||||
@Autowired
|
||||
private SystemProperties systemProperties;
|
||||
private ServerProperties serverProperties;
|
||||
@Autowired(required = false)
|
||||
private IMenuBaseService menuBaseService;
|
||||
@Autowired(required = false)
|
||||
@ -46,8 +46,8 @@ public class IndexRouteController {
|
||||
|
||||
@GetMapping("index")
|
||||
public ModelAndView goIndex() {
|
||||
if (!StringUtils.isBlank(systemProperties.getDefaultIndexPage())) {
|
||||
return new ModelAndView(new RedirectView(systemProperties.getDefaultHomePage()));
|
||||
if (!StringUtils.isBlank(serverProperties.getDefaultIndexPage())) {
|
||||
return new ModelAndView(new RedirectView(serverProperties.getDefaultHomePage()));
|
||||
}
|
||||
return new ModelAndView("forward:/default-main");
|
||||
}
|
||||
@ -66,12 +66,12 @@ public class IndexRouteController {
|
||||
if (!Objects.isNull(config.get(IUserCenterConst.SYSTEM_TITLE)) && !StringUtils.isBlank(config.get(IUserCenterConst.SYSTEM_TITLE).toString())) {
|
||||
mv.addObject(IUserCenterConst.SYSTEM_TITLE, config.get(IUserCenterConst.SYSTEM_TITLE).toString());
|
||||
} else {
|
||||
mv.addObject(IUserCenterConst.SYSTEM_TITLE, systemProperties.getSystemTitle());
|
||||
mv.addObject(IUserCenterConst.SYSTEM_TITLE, serverProperties.getSystemTitle());
|
||||
}
|
||||
if (!Objects.isNull(config.get(IUserCenterConst.SYSTEM_SUB_TITLE)) && !StringUtils.isBlank(config.get(IUserCenterConst.SYSTEM_SUB_TITLE).toString())) {
|
||||
mv.addObject(IUserCenterConst.SYSTEM_SUB_TITLE, config.get(IUserCenterConst.SYSTEM_SUB_TITLE).toString());
|
||||
} else {
|
||||
mv.addObject(IUserCenterConst.SYSTEM_SUB_TITLE, systemProperties.getSystemSubTitle());
|
||||
mv.addObject(IUserCenterConst.SYSTEM_SUB_TITLE, serverProperties.getSystemSubTitle());
|
||||
}
|
||||
// 系统LOGO
|
||||
if (!Objects.isNull(config.get(IUserCenterConst.SYSTEM_LOGO)) && !StringUtils.isBlank(config.get(IUserCenterConst.SYSTEM_LOGO).toString())) {
|
||||
@ -79,7 +79,11 @@ public class IndexRouteController {
|
||||
} else {
|
||||
mv.addObject(IUserCenterConst.SYSTEM_LOGO, "");
|
||||
}
|
||||
mv.addObject("ws", systemProperties.getWs());
|
||||
mv.addObject("ws", serverProperties.getWs());
|
||||
// 菜单模式
|
||||
if (!Objects.isNull(config.get(IUserCenterConst.MENU_MODE)) && !StringUtils.isBlank(config.get(IUserCenterConst.MENU_MODE).toString())) {
|
||||
mv.addObject(IUserCenterConst.MENU_MODE, config.get(IUserCenterConst.MENU_MODE).toString());
|
||||
}
|
||||
if (menuBaseService != null) {
|
||||
List<MenuDTO> menus;
|
||||
if (StringUtils.equalsIgnoreCase(ISystemConstant.ADMIN, userInfoBO.getUserUsername())) {
|
||||
@ -117,8 +121,8 @@ public class IndexRouteController {
|
||||
@GetMapping("default-home")
|
||||
public ModelAndView defaultHome() {
|
||||
ModelAndView mv;
|
||||
if (!StringUtils.isBlank(systemProperties.getDefaultHomePage())) {
|
||||
mv = new ModelAndView(new RedirectView(systemProperties.getDefaultHomePage()));
|
||||
if (!StringUtils.isBlank(serverProperties.getDefaultHomePage())) {
|
||||
mv = new ModelAndView(new RedirectView(serverProperties.getDefaultHomePage()));
|
||||
} else {
|
||||
mv = new ModelAndView("default-home");
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
package ink.wgink.login.base.controller.route;
|
||||
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.login.base.config.properties.SystemProperties;
|
||||
import ink.wgink.login.base.consts.IUserCenterConst;
|
||||
import ink.wgink.login.base.manager.ConfigManager;
|
||||
import ink.wgink.properties.ServerProperties;
|
||||
import ink.wgink.util.verification.code.Captcha;
|
||||
import ink.wgink.util.verification.code.GifCaptcha;
|
||||
import ink.wgink.util.verification.code.SpecCaptcha;
|
||||
@ -38,7 +38,7 @@ import java.util.Objects;
|
||||
public class OAuthRouteController {
|
||||
|
||||
@Autowired
|
||||
private SystemProperties systemProperties;
|
||||
private ServerProperties serverProperties;
|
||||
|
||||
/**
|
||||
* 登录
|
||||
@ -48,7 +48,7 @@ public class OAuthRouteController {
|
||||
@GetMapping("login")
|
||||
public ModelAndView login(HttpServletRequest request) {
|
||||
ModelAndView mv = new ModelAndView("login");
|
||||
mv.addObject(IUserCenterConst.SERVER_URL, systemProperties.getUrl());
|
||||
mv.addObject(IUserCenterConst.SERVER_URL, serverProperties.getUrl());
|
||||
if (request.getParameter(IUserCenterConst.ERROR) != null) {
|
||||
mv.addObject(IUserCenterConst.ERROR_MESSAGE, request.getSession().getAttribute(IUserCenterConst.ERROR_MESSAGE));
|
||||
}
|
||||
@ -69,7 +69,7 @@ public class OAuthRouteController {
|
||||
if (!Objects.isNull(config.get(IUserCenterConst.SYSTEM_TITLE)) && !StringUtils.isBlank(config.get(IUserCenterConst.SYSTEM_TITLE).toString())) {
|
||||
mv.addObject(IUserCenterConst.SYSTEM_TITLE, config.get(IUserCenterConst.SYSTEM_TITLE).toString());
|
||||
} else {
|
||||
mv.addObject(IUserCenterConst.SYSTEM_TITLE, systemProperties.getSystemTitle());
|
||||
mv.addObject(IUserCenterConst.SYSTEM_TITLE, serverProperties.getSystemTitle());
|
||||
}
|
||||
// 系统标题大小
|
||||
if (!Objects.isNull(config.get(IUserCenterConst.SYSTEM_SUB_TITLE_SIZE)) && Integer.parseInt(config.get(IUserCenterConst.SYSTEM_SUB_TITLE_SIZE).toString()) > 12) {
|
||||
@ -81,7 +81,7 @@ public class OAuthRouteController {
|
||||
if (!Objects.isNull(config.get(IUserCenterConst.SYSTEM_SUB_TITLE)) && !StringUtils.isBlank(config.get(IUserCenterConst.SYSTEM_SUB_TITLE).toString())) {
|
||||
mv.addObject(IUserCenterConst.SYSTEM_SUB_TITLE, config.get(IUserCenterConst.SYSTEM_SUB_TITLE).toString());
|
||||
} else {
|
||||
mv.addObject(IUserCenterConst.SYSTEM_SUB_TITLE, systemProperties.getSystemSubTitle());
|
||||
mv.addObject(IUserCenterConst.SYSTEM_SUB_TITLE, serverProperties.getSystemSubTitle());
|
||||
}
|
||||
// 系统子标题大小
|
||||
if (!Objects.isNull(config.get(IUserCenterConst.SYSTEM_SUB_TITLE_SIZE)) && Integer.parseInt(config.get(IUserCenterConst.SYSTEM_SUB_TITLE_SIZE).toString()) > 12) {
|
||||
|
@ -66,6 +66,9 @@ public class ConfigVO {
|
||||
private String scanCodeLogin;
|
||||
@ApiModelProperty(name = "loginBoxPosition", value = "登录框位置")
|
||||
private String loginBoxPosition;
|
||||
@ApiModelProperty(name = "menuMode", value = "菜单模式")
|
||||
@CheckEmptyAnnotation(name = "菜单模式", types = {"fixedLeft", "floatLeft"})
|
||||
private String menuMode;
|
||||
|
||||
public String getPasswordValidity() {
|
||||
return passwordValidity == null ? "" : passwordValidity.trim();
|
||||
@ -218,4 +221,12 @@ public class ConfigVO {
|
||||
public void setLoginBoxPosition(String loginBoxPosition) {
|
||||
this.loginBoxPosition = loginBoxPosition;
|
||||
}
|
||||
|
||||
public String getMenuMode() {
|
||||
return menuMode == null ? "" : menuMode;
|
||||
}
|
||||
|
||||
public void setMenuMode(String menuMode) {
|
||||
this.menuMode = menuMode;
|
||||
}
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
package ink.wgink.login.base.security;
|
||||
|
||||
import ink.wgink.common.handler.AccessDenyHandler;
|
||||
import ink.wgink.login.base.config.BaseConfig;
|
||||
import ink.wgink.login.base.handler.LoginFailureHandler;
|
||||
import ink.wgink.login.base.handler.LogoutHandler;
|
||||
import ink.wgink.login.base.security.user.UserSecurityConfig;
|
||||
import ink.wgink.login.base.service.user.UserDetailServiceImpl;
|
||||
import ink.wgink.login.base.service.user.UserLoginService;
|
||||
import ink.wgink.properties.BaseProperties;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.security.authentication.AuthenticationManager;
|
||||
@ -26,7 +26,7 @@ import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||
|
||||
@Autowired
|
||||
private BaseConfig baseConfig;
|
||||
private BaseProperties baseProperties;
|
||||
@Autowired
|
||||
private UserDetailServiceImpl userDetailService;
|
||||
@Autowired
|
||||
@ -36,12 +36,12 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
LoginFailureHandler loginFailureHandler = new LoginFailureHandler(baseConfig.getLoginFailure());
|
||||
LoginFailureHandler loginFailureHandler = new LoginFailureHandler(baseProperties.getLoginFailure());
|
||||
http
|
||||
.formLogin()
|
||||
.loginPage(baseConfig.getLoginUrl())
|
||||
.loginProcessingUrl(baseConfig.getLoginProcess())
|
||||
.failureForwardUrl(baseConfig.getLoginUrl())
|
||||
.loginPage(baseProperties.getLoginUrl())
|
||||
.loginProcessingUrl(baseProperties.getLoginProcess())
|
||||
.failureForwardUrl(baseProperties.getLoginUrl())
|
||||
.failureHandler(loginFailureHandler)
|
||||
.and()
|
||||
.logout()
|
||||
@ -52,17 +52,17 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||
.disable()
|
||||
.and()
|
||||
.authorizeRequests()
|
||||
.antMatchers(baseConfig.getAssetsMatchers(),
|
||||
baseConfig.getLoginUrl(),
|
||||
baseConfig.getLoginProcess(),
|
||||
baseConfig.getLoginFailure(),
|
||||
.antMatchers(baseProperties.getAssetsMatchers(),
|
||||
baseProperties.getLoginUrl(),
|
||||
baseProperties.getLoginProcess(),
|
||||
baseProperties.getLoginFailure(),
|
||||
"/oauth/**",
|
||||
"/oauth_client/**",
|
||||
"/app/**",
|
||||
"/approute/**",
|
||||
"/wechat/**",
|
||||
"/wechatroute/**",
|
||||
"/wxminiapp/**",
|
||||
"/wechat/route/**",
|
||||
"/wechat/miniapp/**",
|
||||
"/route/file/**",
|
||||
"/api/sms/getverificationcode/*",
|
||||
"/api/user/getsignintype/**")
|
||||
@ -96,7 +96,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||
UserSecurityConfig userSecurityConfig = new UserSecurityConfig();
|
||||
userSecurityConfig.setUserDetailService(userDetailService);
|
||||
userSecurityConfig.setPasswordEncoder(passwordEncoder);
|
||||
userSecurityConfig.setLoginProcessUrl(baseConfig.getLoginProcess());
|
||||
userSecurityConfig.setLoginProcessUrl(baseProperties.getLoginProcess());
|
||||
userSecurityConfig.setLoginFailureHandler(loginFailureHandler);
|
||||
userSecurityConfig.setUserLoginService(userLoginService);
|
||||
http.apply(userSecurityConfig);
|
||||
|
@ -218,6 +218,13 @@
|
||||
<input type="radio" name="scanCodeLogin" value="dingDingScanCode" title="钉钉(需要设置通讯录权限,访问白名单)" th:if="${dingDingScanLogin eq 'dingDingScanLogin'}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item" style="margin: 4px 0;">
|
||||
<div class="layui-form-mid layui-word-aux">菜单模式</div>
|
||||
<div class="layui-input-inline" style="width: 400px;">
|
||||
<input type="radio" name="menuMode" value="fixedLeft" title="左固定" checked>
|
||||
<input type="radio" name="menuMode" value="floatLeft" title="左浮动">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
@ -386,7 +393,8 @@
|
||||
verificationCode: data.verificationCode,
|
||||
uKeyLogin: data.uKeyLogin,
|
||||
scanCodeLogin: data.scanCodeLogin,
|
||||
loginBoxPosition: data.loginBoxPosition
|
||||
loginBoxPosition: data.loginBoxPosition,
|
||||
menuMode: data.menuMode
|
||||
});
|
||||
form.render(null, 'dataForm');
|
||||
if(data.systemLogo) {
|
||||
|
@ -11,6 +11,11 @@
|
||||
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/default-main.css" media="all">
|
||||
<style th:if="${menuMode eq 'floatLeft'}">
|
||||
.layui-side-menu-hidden {display: none;}
|
||||
.layui-layout-admin .layui-layout-left, .layadmin-pagetabs, .layui-layout-admin .layui-body, .layui-layout-admin .layui-footer {left: 0px}
|
||||
</style>
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
<div id="LAY_app">
|
||||
@ -18,7 +23,7 @@
|
||||
<div class="layui-header">
|
||||
<!-- 头部区域 -->
|
||||
<ul class="layui-nav layui-layout-left">
|
||||
<li class="layui-nav-item layadmin-flexible" lay-unselect>
|
||||
<li class="layui-nav-item layadmin-flexible layui-side-menu-show" lay-unselect>
|
||||
<a href="javascript:void(0);" layadmin-event="flexible" title="侧边伸缩">
|
||||
<i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>
|
||||
</a>
|
||||
@ -71,7 +76,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 侧边菜单 -->
|
||||
<div class="layui-side layui-side-menu">
|
||||
<div id="sideMenu" class="layui-side layui-side-menu layui-side-menu-hidden">
|
||||
<div class="layui-side-scroll">
|
||||
<div class="layui-logo">
|
||||
<img th:src="'route/file/download/true/'+ ${systemLogo}" style="width: 32px; height: 32px;" th:if="${systemLogo ne ''}">
|
||||
@ -121,7 +126,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 页面标签 -->
|
||||
<div class="layadmin-pagetabs" id="LAY_app_tabs">
|
||||
<div class="layadmin-pagetabs auto-hide-menu" id="LAY_app_tabs">
|
||||
<div class="layui-icon layadmin-tabs-control layui-icon-prev" layadmin-event="leftPage"></div>
|
||||
<div class="layui-icon layadmin-tabs-control layui-icon-next" layadmin-event="rightPage"></div>
|
||||
<div class="layui-icon layadmin-tabs-control layui-icon-down">
|
||||
@ -144,7 +149,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 主体内容 -->
|
||||
<div class="layui-body" id="LAY_app_body">
|
||||
<div class="layui-body auto-hide-menu" id="LAY_app_body">
|
||||
<div class="layadmin-tabsbody-item layui-show">
|
||||
<iframe id="defaultIFrame" frameborder="0" class="layadmin-iframe"></iframe>
|
||||
</div>
|
||||
@ -160,7 +165,8 @@
|
||||
base: 'assets/layuiadmin/' //静态资源所在路径
|
||||
}).extend({
|
||||
index: 'lib/index' //主入口模块
|
||||
}).use(['index', 'restajax', 'datamessage', 'dialog'], function() {
|
||||
}).use(['index', 'element', 'restajax', 'datamessage', 'dialog'], function() {
|
||||
var element = layui.element;
|
||||
var $ = layui.$;
|
||||
|
||||
var layer = layui.layer;
|
||||
@ -205,6 +211,27 @@
|
||||
window.location.href = 'oauth/logout';
|
||||
});
|
||||
});
|
||||
|
||||
/** 左浮动菜单 start **/
|
||||
var hideSideMenuTimeout = null;
|
||||
$('.layui-side-menu-show').on('mouseover', function(event) {
|
||||
$('#sideMenu').removeClass('layui-side-menu-hidden');
|
||||
});
|
||||
$('#sideMenu').on('mouseout', function(event) {
|
||||
if(hideSideMenuTimeout) {
|
||||
return;
|
||||
}
|
||||
hideSideMenuTimeout = setTimeout(function() {
|
||||
$('#sideMenu').addClass('layui-side-menu-hidden')
|
||||
}, 100);
|
||||
});
|
||||
$('#sideMenu').on('mouseover', function(event) {
|
||||
if(hideSideMenuTimeout) {
|
||||
clearTimeout(hideSideMenuTimeout);
|
||||
hideSideMenuTimeout = null;
|
||||
}
|
||||
});
|
||||
/** 左浮动菜单 end **/
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
@ -7,7 +7,7 @@ import ink.wgink.exceptions.WechatAccessTokenForUserException;
|
||||
import ink.wgink.exceptions.WechatUserInfoException;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.login.base.service.BaseAppSignService;
|
||||
import ink.wgink.login.wechat.config.properties.MiniAppProperties;
|
||||
import ink.wgink.properties.MiniAppProperties;
|
||||
import ink.wgink.login.wechat.pojo.bos.user.MiniAppUserInfoBO;
|
||||
import ink.wgink.login.wechat.pojo.vos.sign.MiniAppLoginVO;
|
||||
import ink.wgink.login.wechat.service.sign.IMiniAppSignService;
|
||||
|
@ -0,0 +1,40 @@
|
||||
package ink.wgink.login.wechat.startup;
|
||||
|
||||
import ink.wgink.login.wechat.dao.user.IMiniAppUserDao;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.ApplicationArguments;
|
||||
import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* When you feel like quitting. Think about why you started
|
||||
* 当你想要放弃的时候,想想当初你为何开始
|
||||
*
|
||||
* @ClassName: LoginWechatStartUp
|
||||
* @Description: 微信登录
|
||||
* @Author: wanggeng
|
||||
* @Date: 2021/4/9 11:44 上午
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Component
|
||||
public class LoginWechatStartUp implements ApplicationRunner {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(LoginWechatStartUp.class);
|
||||
@Autowired
|
||||
private IMiniAppUserDao miniAppUserDao;
|
||||
|
||||
@Override
|
||||
public void run(ApplicationArguments args) throws Exception {
|
||||
initTable();
|
||||
}
|
||||
|
||||
/**
|
||||
* 建表
|
||||
*/
|
||||
private void initTable() {
|
||||
LOG.debug("创建 wechat_mini_app_user 表");
|
||||
miniAppUserDao.createTable();
|
||||
}
|
||||
}
|
@ -14,7 +14,7 @@
|
||||
|
||||
<!-- 建表 -->
|
||||
<update id="createTable">
|
||||
CREATE TABLE `wechat_mini_app_user` (
|
||||
CREATE TABLE IF NOT EXISTS `wechat_mini_app_user` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`app_id` varchar(255) DEFAULT NULL COMMENT 'appid',
|
||||
`open_id` varchar(255) DEFAULT NULL COMMENT 'openid',
|
||||
|
@ -3,7 +3,7 @@ package ink.wgink.module.file.controller.api;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.module.file.config.properties.FileProperties;
|
||||
import ink.wgink.properties.FileProperties;
|
||||
import ink.wgink.module.file.enums.UploadTypeEnum;
|
||||
import ink.wgink.module.file.pojo.dtos.FileDTO;
|
||||
import ink.wgink.module.file.pojo.dtos.FileInfoDTO;
|
||||
|
@ -3,7 +3,7 @@ package ink.wgink.module.file.controller.app.api;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.module.file.config.properties.FileProperties;
|
||||
import ink.wgink.properties.FileProperties;
|
||||
import ink.wgink.module.file.enums.UploadTypeEnum;
|
||||
import ink.wgink.module.file.pojo.dtos.FileDTO;
|
||||
import ink.wgink.module.file.service.IFileService;
|
||||
|
@ -3,7 +3,7 @@ package ink.wgink.module.file.controller.route;
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.exceptions.ParamsException;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.module.file.config.properties.FileProperties;
|
||||
import ink.wgink.properties.FileProperties;
|
||||
import ink.wgink.module.file.service.IFileService;
|
||||
import ink.wgink.pojo.result.ErrorResult;
|
||||
import io.swagger.annotations.*;
|
||||
|
@ -2,7 +2,7 @@ package ink.wgink.module.file.controller.wechat;
|
||||
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.module.file.config.properties.FileProperties;
|
||||
import ink.wgink.properties.FileProperties;
|
||||
import ink.wgink.module.file.enums.UploadTypeEnum;
|
||||
import ink.wgink.module.file.pojo.dtos.FileDTO;
|
||||
import ink.wgink.module.file.service.IFileService;
|
||||
|
@ -10,7 +10,7 @@ import ink.wgink.exceptions.ParamsException;
|
||||
import ink.wgink.exceptions.SaveException;
|
||||
import ink.wgink.exceptions.SearchException;
|
||||
import ink.wgink.exceptions.base.SystemException;
|
||||
import ink.wgink.module.file.config.properties.FileProperties;
|
||||
import ink.wgink.properties.FileProperties;
|
||||
import ink.wgink.module.file.dao.IFileDao;
|
||||
import ink.wgink.module.file.enums.UploadTypeEnum;
|
||||
import ink.wgink.module.file.pojo.dtos.FileDTO;
|
||||
|
1
pom.xml
1
pom.xml
@ -28,6 +28,7 @@
|
||||
<module>login-base</module>
|
||||
<module>login-app</module>
|
||||
<module>login-wechat</module>
|
||||
<module>basic-properties</module>
|
||||
</modules>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
|
@ -142,7 +142,11 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService
|
||||
throw new SystemException("未引入APP登录模块");
|
||||
}
|
||||
String userId = securityComponent.getAppTokenUser(token).getId();
|
||||
Map<String, Object> params = HashMapUtil.beanToMap(updateUserVO);
|
||||
Map<String, Object> params = getHashMap(8);
|
||||
params.put("userAvatar", updateUserVO.getAvatar());
|
||||
params.put("userEmail", updateUserVO.getEmail());
|
||||
params.put("userPhone", updateUserVO.getPhone());
|
||||
params.put("userName", updateUserVO.getName());
|
||||
params.put("userId", userId);
|
||||
setAppUpdateInfo(token, params);
|
||||
userDao.update(params);
|
||||
|
Loading…
Reference in New Issue
Block a user