From 4e8781d5e1c6daecd19f81aed409385d57e27124 Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Fri, 30 Jul 2021 14:21:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=99=BB=E5=BD=95=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E9=80=BB=E8=BE=91=EF=BC=8C=E6=96=B0=E5=A2=9E=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=A1=B5=E9=9D=A2=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../login/base/consts/IUserCenterConst.java | 8 + .../route/OAuthRouteController.java | 44 +---- .../route/login/LoginFormRouteController.java | 21 +++ .../login/base/service/IOAuthService.java | 16 ++ .../base/service/impl/OAuthServiceImpl.java | 64 ++++++++ .../src/main/resources/templates/login.html | 8 +- .../login/form/get-login-preview.html | 155 ++++++++++++++++++ .../resources/templates/login/form/list.html | 7 + .../templates/login/form/update.html | 6 + 9 files changed, 288 insertions(+), 41 deletions(-) create mode 100644 login-base/src/main/java/ink/wgink/login/base/service/IOAuthService.java create mode 100644 login-base/src/main/java/ink/wgink/login/base/service/impl/OAuthServiceImpl.java create mode 100644 login-base/src/main/resources/templates/login/form/get-login-preview.html diff --git a/login-base/src/main/java/ink/wgink/login/base/consts/IUserCenterConst.java b/login-base/src/main/java/ink/wgink/login/base/consts/IUserCenterConst.java index d6323057..add55b75 100644 --- a/login-base/src/main/java/ink/wgink/login/base/consts/IUserCenterConst.java +++ b/login-base/src/main/java/ink/wgink/login/base/consts/IUserCenterConst.java @@ -89,5 +89,13 @@ public interface IUserCenterConst { * 菜单模式 */ String MENU_MODE = "menuMode"; + /** + * 页面参数 + */ + String PAGE_PARAMS = "pageParams"; + /** + * 自定义表单 + */ + String CUSTOM_LOGIN_FORM = "customLoginForm"; } diff --git a/login-base/src/main/java/ink/wgink/login/base/controller/route/OAuthRouteController.java b/login-base/src/main/java/ink/wgink/login/base/controller/route/OAuthRouteController.java index 965a3dcd..31b1000c 100644 --- a/login-base/src/main/java/ink/wgink/login/base/controller/route/OAuthRouteController.java +++ b/login-base/src/main/java/ink/wgink/login/base/controller/route/OAuthRouteController.java @@ -2,10 +2,8 @@ package ink.wgink.login.base.controller.route; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.login.base.consts.IUserCenterConst; -import ink.wgink.login.base.manager.ConfigManager; +import ink.wgink.login.base.service.IOAuthService; import ink.wgink.login.base.service.login.ILoginFormService; -import ink.wgink.properties.BaseProperties; -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; @@ -22,7 +20,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; -import java.util.HashMap; import java.util.Map; /** @@ -40,9 +37,7 @@ import java.util.Map; public class OAuthRouteController { @Autowired - private ServerProperties serverProperties; - @Autowired - private BaseProperties baseProperties; + private IOAuthService oAuthService; @Autowired private ILoginFormService loginFormService; @@ -54,38 +49,9 @@ public class OAuthRouteController { @GetMapping("login") public ModelAndView login(HttpServletRequest request) { ModelAndView mv = new ModelAndView(); - Map config = ConfigManager.getInstance().getConfig(); - - Map pageParams = new HashMap<>(16); - pageParams.put(IUserCenterConst.ERROR_MESSAGE, request.getSession().getAttribute(IUserCenterConst.ERROR_MESSAGE)); - // 服务地址 - pageParams.put(IUserCenterConst.SERVER_URL, serverProperties.getUrl()); - // 系统LOGO - pageParams.put(IUserCenterConst.SYSTEM_LOGO, config.get(IUserCenterConst.SYSTEM_LOGO).toString()); - // 背景图片 - pageParams.put(IUserCenterConst.LOGIN_BACKGROUND_IMAGES, config.get(IUserCenterConst.LOGIN_BACKGROUND_IMAGES).toString()); - // 系统标题 - pageParams.put(IUserCenterConst.SYSTEM_TITLE, config.get(IUserCenterConst.SYSTEM_TITLE).toString()); - // 系统标题大小,默认26 - pageParams.put(IUserCenterConst.SYSTEM_TITLE_SIZE, Integer.parseInt(config.get(IUserCenterConst.SYSTEM_TITLE_SIZE).toString())); - // 系统子标题 - pageParams.put(IUserCenterConst.SYSTEM_SUB_TITLE, config.get(IUserCenterConst.SYSTEM_SUB_TITLE).toString()); - // 系统子标题大小,默认16 - pageParams.put(IUserCenterConst.SYSTEM_SUB_TITLE_SIZE, Integer.parseInt(config.get(IUserCenterConst.SYSTEM_SUB_TITLE_SIZE).toString())); - // 版权年份 - pageParams.put(IUserCenterConst.COPY_RIGHT_YEAR, config.get(IUserCenterConst.COPY_RIGHT_YEAR).toString()); - // 版权所属 - pageParams.put(IUserCenterConst.COPY_LEFT, config.get(IUserCenterConst.COPY_LEFT).toString()); - // 官方链接 - pageParams.put(IUserCenterConst.OFFICIAL_URL, config.get(IUserCenterConst.OFFICIAL_URL).toString()); - // 开启验证码 - pageParams.put(ISystemConstant.VERIFICATION_CODE, config.get(ISystemConstant.VERIFICATION_CODE).toString()); - // 登录框位置 - pageParams.put(IUserCenterConst.LOGIN_BOX_POSITION, config.get(IUserCenterConst.LOGIN_BOX_POSITION).toString()); - // 登录表单action - pageParams.put(IUserCenterConst.LOGIN_FORM_ACTION, baseProperties.getLoginProcess().startsWith("/") ? baseProperties.getLoginProcess().substring(1) : baseProperties.getLoginProcess()); - mv.addObject("pageParams", pageParams); - mv.addObject("customLoginForm", loginFormService.getActive()); + Map pageParams = oAuthService.getPageParams(request); + mv.addObject(IUserCenterConst.PAGE_PARAMS, pageParams); + mv.addObject(IUserCenterConst.CUSTOM_LOGIN_FORM, loginFormService.getActive()); mv.setViewName("login"); return mv; } diff --git a/login-base/src/main/java/ink/wgink/login/base/controller/route/login/LoginFormRouteController.java b/login-base/src/main/java/ink/wgink/login/base/controller/route/login/LoginFormRouteController.java index 100fbaa5..710d9bb7 100644 --- a/login-base/src/main/java/ink/wgink/login/base/controller/route/login/LoginFormRouteController.java +++ b/login-base/src/main/java/ink/wgink/login/base/controller/route/login/LoginFormRouteController.java @@ -1,12 +1,19 @@ package ink.wgink.login.base.controller.route.login; import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.login.base.consts.IUserCenterConst; +import ink.wgink.login.base.service.IOAuthService; +import ink.wgink.login.base.service.login.ILoginFormService; import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +import javax.servlet.http.HttpServletRequest; + /** * @ClassName: LoginFormRouteController * @Description: 登录form @@ -19,6 +26,11 @@ import org.springframework.web.servlet.ModelAndView; @RequestMapping(ISystemConstant.ROUTE_PREFIX + "/login-form") public class LoginFormRouteController { + @Autowired + private IOAuthService oauthService; + @Autowired + private ILoginFormService loginFormService; + @GetMapping("save") public ModelAndView save() { return new ModelAndView("login/form/save"); @@ -34,4 +46,13 @@ public class LoginFormRouteController { return new ModelAndView("login/form/list"); } + @GetMapping("get-login-preview/{loginFormId}") + public ModelAndView getLoginPreview(@PathVariable("loginFormId") String loginFormId, HttpServletRequest request) { + ModelAndView mv = new ModelAndView("login/form/get-login-preview"); + mv.addObject(IUserCenterConst.PAGE_PARAMS, oauthService.getPageParams(request)); + mv.addObject(IUserCenterConst.CUSTOM_LOGIN_FORM, loginFormService.get(loginFormId)); + mv.setViewName("login/form/get-login-preview"); + return mv; + } + } diff --git a/login-base/src/main/java/ink/wgink/login/base/service/IOAuthService.java b/login-base/src/main/java/ink/wgink/login/base/service/IOAuthService.java new file mode 100644 index 00000000..e29ddbf1 --- /dev/null +++ b/login-base/src/main/java/ink/wgink/login/base/service/IOAuthService.java @@ -0,0 +1,16 @@ +package ink.wgink.login.base.service; + +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + +/** + * @ClassName: IOAuthService + * @Description: oauth认证 + * @Author: wanggeng + * @Date: 2021/7/30 10:56 上午 + * @Version: 1.0 + */ +public interface IOAuthService { + + Map getPageParams(HttpServletRequest request); +} diff --git a/login-base/src/main/java/ink/wgink/login/base/service/impl/OAuthServiceImpl.java b/login-base/src/main/java/ink/wgink/login/base/service/impl/OAuthServiceImpl.java new file mode 100644 index 00000000..3148105b --- /dev/null +++ b/login-base/src/main/java/ink/wgink/login/base/service/impl/OAuthServiceImpl.java @@ -0,0 +1,64 @@ +package ink.wgink.login.base.service.impl; + +import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.login.base.consts.IUserCenterConst; +import ink.wgink.login.base.manager.ConfigManager; +import ink.wgink.login.base.service.IOAuthService; +import ink.wgink.properties.BaseProperties; +import ink.wgink.properties.ServerProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +/** + * @ClassName: OAuthServiceImpl + * @Description: Oauth认证 + * @Author: wanggeng + * @Date: 2021/7/30 10:57 上午 + * @Version: 1.0 + */ +@Service +public class OAuthServiceImpl implements IOAuthService { + + @Autowired + private ServerProperties serverProperties; + @Autowired + private BaseProperties baseProperties; + + @Override + public Map getPageParams(HttpServletRequest request) { + Map config = ConfigManager.getInstance().getConfig(); + Map pageParams = new HashMap<>(16); + pageParams.put(IUserCenterConst.ERROR_MESSAGE, request.getSession().getAttribute(IUserCenterConst.ERROR_MESSAGE)); + // 服务地址 + pageParams.put(IUserCenterConst.SERVER_URL, serverProperties.getUrl()); + // 系统LOGO + pageParams.put(IUserCenterConst.SYSTEM_LOGO, config.get(IUserCenterConst.SYSTEM_LOGO).toString()); + // 背景图片 + pageParams.put(IUserCenterConst.LOGIN_BACKGROUND_IMAGES, config.get(IUserCenterConst.LOGIN_BACKGROUND_IMAGES).toString()); + // 系统标题 + pageParams.put(IUserCenterConst.SYSTEM_TITLE, config.get(IUserCenterConst.SYSTEM_TITLE).toString()); + // 系统标题大小,默认26 + pageParams.put(IUserCenterConst.SYSTEM_TITLE_SIZE, Integer.parseInt(config.get(IUserCenterConst.SYSTEM_TITLE_SIZE).toString())); + // 系统子标题 + pageParams.put(IUserCenterConst.SYSTEM_SUB_TITLE, config.get(IUserCenterConst.SYSTEM_SUB_TITLE).toString()); + // 系统子标题大小,默认16 + pageParams.put(IUserCenterConst.SYSTEM_SUB_TITLE_SIZE, Integer.parseInt(config.get(IUserCenterConst.SYSTEM_SUB_TITLE_SIZE).toString())); + // 版权年份 + pageParams.put(IUserCenterConst.COPY_RIGHT_YEAR, config.get(IUserCenterConst.COPY_RIGHT_YEAR).toString()); + // 版权所属 + pageParams.put(IUserCenterConst.COPY_LEFT, config.get(IUserCenterConst.COPY_LEFT).toString()); + // 官方链接 + pageParams.put(IUserCenterConst.OFFICIAL_URL, config.get(IUserCenterConst.OFFICIAL_URL).toString()); + // 开启验证码 + pageParams.put(ISystemConstant.VERIFICATION_CODE, config.get(ISystemConstant.VERIFICATION_CODE).toString()); + // 登录框位置 + pageParams.put(IUserCenterConst.LOGIN_BOX_POSITION, config.get(IUserCenterConst.LOGIN_BOX_POSITION).toString()); + // 登录表单action + pageParams.put(IUserCenterConst.LOGIN_FORM_ACTION, baseProperties.getLoginProcess().startsWith("/") ? baseProperties.getLoginProcess().substring(1) : baseProperties.getLoginProcess()); + return pageParams; + } +} diff --git a/login-base/src/main/resources/templates/login.html b/login-base/src/main/resources/templates/login.html index cb7a2de8..7c333b54 100644 --- a/login-base/src/main/resources/templates/login.html +++ b/login-base/src/main/resources/templates/login.html @@ -8,6 +8,7 @@ + @@ -66,7 +67,7 @@
- +
@@ -157,6 +158,10 @@ slides : photos }); }, + // 刷新验证码 + refreshVerificationCode: function(event) { + event.target.src = event.target.src; + }, // 记住我 rememberMe: function() { var self = this; @@ -195,7 +200,6 @@ // 复选框勾选事件 form.on('checkbox(rememberFilter)', function(data) { self.formData.remember = data.elem.checked; - console.log(self.formData.remember); }); // 保单验证 form.verify({ diff --git a/login-base/src/main/resources/templates/login/form/get-login-preview.html b/login-base/src/main/resources/templates/login/form/get-login-preview.html new file mode 100644 index 00000000..b729d456 --- /dev/null +++ b/login-base/src/main/resources/templates/login/form/get-login-preview.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + \ No newline at end of file diff --git a/login-base/src/main/resources/templates/login/form/list.html b/login-base/src/main/resources/templates/login/form/list.html index 831bf91e..94fe5199 100644 --- a/login-base/src/main/resources/templates/login/form/list.html +++ b/login-base/src/main/resources/templates/login/form/list.html @@ -129,6 +129,11 @@ return rowData; } }, + {field:'previewPage', width:100, title: '操作', align:'center', fixed: 'right', + templet: function(row) { + return ''; + } + }, ] ], page: true, @@ -273,6 +278,8 @@ }, function() { top.dialog.close(loadLayerIndex); }); + } else if(event === 'previewPageEvent') { + window.open(top.restAjax.path('route/login-form/get-login-preview/{loginFormId}', [data.loginFormId])); } }) }); diff --git a/login-base/src/main/resources/templates/login/form/update.html b/login-base/src/main/resources/templates/login/form/update.html index d9e0e0f7..9d122d19 100644 --- a/login-base/src/main/resources/templates/login/form/update.html +++ b/login-base/src/main/resources/templates/login/form/update.html @@ -296,6 +296,7 @@ @@ -533,6 +534,11 @@ }); return false; }); + + $('#previewPageBtn').on('click', function() { + window.open(top.restAjax.path('route/login-form/get-login-preview/{loginFormId}', [loginFormId])); + }); + $('.close').on('click', function() { closeBox(); });