From 31f9a6ef0fcd506765e9603014924751eba75191 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Sun, 27 Dec 2020 20:00:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E8=B0=83=E9=80=9A=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=92=8C=E9=A6=96=E9=A1=B5=E7=9A=84=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CustomBeetlGroupUtilConfiguration.java | 12 +++- .../modular/controller/IndexController.java | 70 ------------------- .../controller/IndexViewController.java | 68 ++++++++++++++++++ ...ntroller.java => LoginViewController.java} | 48 +++++++++---- .../guns/modular/service/IndexService.java | 15 ++++ ...itional-spring-configuration-metadata.json | 29 ++++++++ src/main/resources/application.yml | 11 +-- src/main/webapp/assets/expand/module/ax/ax.js | 4 +- src/main/webapp/pages/index.html | 10 +-- src/main/webapp/pages/layout/_header.html | 31 +++----- src/main/webapp/pages/layout/_sidebar.html | 34 ++++----- src/main/webapp/pages/login.html | 16 ++--- 12 files changed, 198 insertions(+), 150 deletions(-) delete mode 100644 src/main/java/cn/stylefeng/guns/modular/controller/IndexController.java create mode 100644 src/main/java/cn/stylefeng/guns/modular/controller/IndexViewController.java rename src/main/java/cn/stylefeng/guns/modular/controller/{LoginController.java => LoginViewController.java} (52%) create mode 100644 src/main/java/cn/stylefeng/guns/modular/service/IndexService.java create mode 100644 src/main/resources/META-INF/additional-spring-configuration-metadata.json diff --git a/src/main/java/cn/stylefeng/guns/core/beetl/CustomBeetlGroupUtilConfiguration.java b/src/main/java/cn/stylefeng/guns/core/beetl/CustomBeetlGroupUtilConfiguration.java index 4a8e0e94..1666ba17 100644 --- a/src/main/java/cn/stylefeng/guns/core/beetl/CustomBeetlGroupUtilConfiguration.java +++ b/src/main/java/cn/stylefeng/guns/core/beetl/CustomBeetlGroupUtilConfiguration.java @@ -1,7 +1,9 @@ package cn.stylefeng.guns.core.beetl; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.stylefeng.roses.kernel.auth.api.LoginUserApi; +import cn.stylefeng.roses.kernel.system.expander.SystemConfigExpander; import org.beetl.ext.spring.BeetlGroupUtilConfiguration; /** @@ -20,8 +22,16 @@ public class CustomBeetlGroupUtilConfiguration extends BeetlGroupUtilConfigurati @Override public void initOther() { + + // 获取当前用户的接口 groupTemplate.registerFunctionPackage("loginUserApi", loginUserApi); - groupTemplate.registerFunctionPackage("strUtil", StrUtil.class); + + // 字符串处理工具类 + groupTemplate.registerFunctionPackage("objectUtil", ObjectUtil.class); + + // 获取基本信息的工具 + groupTemplate.registerFunctionPackage("constants", SystemConfigExpander.class); + // todo 多语言 // groupTemplate.registerFunctionPackage("lang", new UserTranslationContext()); } diff --git a/src/main/java/cn/stylefeng/guns/modular/controller/IndexController.java b/src/main/java/cn/stylefeng/guns/modular/controller/IndexController.java deleted file mode 100644 index f78e204c..00000000 --- a/src/main/java/cn/stylefeng/guns/modular/controller/IndexController.java +++ /dev/null @@ -1,70 +0,0 @@ -package cn.stylefeng.guns.modular.controller; - -import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; -import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource; -import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource; -import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; -import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * 首页接口 - * - * @author fengshuonan - * @date 2020/12/13 17:19 - */ -@Controller -@Slf4j -@ApiResource(name = "首页接口") -public class IndexController { - - /** - * 首页接口 - * - * @author fengshuonan - * @date 2020/12/13 17:19 - */ - @ResponseBody - @GetResource(name = "首页接口", path = "/", requiredPermission = false, requiredLogin = false) - public ResponseData logoutPage() { - return new SuccessResponseData("欢迎使用Guns"); - } - - /** - * 首页接口 - * - * @author fengshuonan - * @date 2020/12/13 17:19 - */ - @GetResource(name = "首页接口 view渲染", path = "/test") - public String test() { - return "/demos/test.html"; - } - - /** - * 获取当前登录用户信息 - * - * @return 用户登录可见的个人信息 - * @author huangyao - * @date 2020/12/20 21:36 - */ - @GetResource(name = "获取当前登录用户信息", path = "/getLoginUserDetail") - public ResponseData getLoginUserDetail() { - return new SuccessResponseData(LoginContext.me().getLoginUser()); - } - - /** - * 获取用户左侧菜单 todo - * - * @author fengshuonan - * @date 2020/12/24 22:23 - */ - @GetResource(name = "获取用户左侧菜单", path = "/getLeftMenuTree") - public ResponseData getLeftMenuTree() { - return new SuccessResponseData(); - } - -} diff --git a/src/main/java/cn/stylefeng/guns/modular/controller/IndexViewController.java b/src/main/java/cn/stylefeng/guns/modular/controller/IndexViewController.java new file mode 100644 index 00000000..5c5d3c90 --- /dev/null +++ b/src/main/java/cn/stylefeng/guns/modular/controller/IndexViewController.java @@ -0,0 +1,68 @@ +package cn.stylefeng.guns.modular.controller; + +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.SimpleUserInfo; +import cn.stylefeng.roses.kernel.file.FileOperatorApi; +import cn.stylefeng.roses.kernel.menu.modular.service.SysMenuService; +import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource; +import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource; +import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService; +import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiAppIndexMenus; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 首页相关的界面渲染 + * + * @author fengshuonan + * @date 2020/12/27 16:23 + */ +@Controller +@Slf4j +@ApiResource(name = "首页相关的界面渲染") +public class IndexViewController { + + @Resource + private SysMenuService sysMenuService; + + @Resource + private SysUserService sysUserService; + + /** + * 首页界面 + * + * @author fengshuonan + * @date 2020/12/13 17:19 + */ + @GetResource(name = "首页界面", path = "/", requiredPermission = false, requiredLogin = false) + public String indexView(Model model) { + + // 当前用户已经登录,跳转到首页 + if (LoginContext.me().hasLogin()) { + + LoginUser loginUser = LoginContext.me().getLoginUser(); + SimpleUserInfo simpleUserInfo = loginUser.getSimpleUserInfo(); + + // 渲染首页的菜单 + List layuiAppIndexMenus = sysMenuService.getLayuiIndexMenus(); + model.addAttribute("layuiAppIndexMenus", layuiAppIndexMenus); + + // 获取首页的头像 + model.addAttribute("avatar", sysUserService.getUserAvatarUrl(simpleUserInfo.getAvatar())); + + // 获取人员姓名 + model.addAttribute("name", simpleUserInfo.getRealName()); + + return "/index.html"; + } + + // 当前用户没有登录,跳转到登录页面 + return "/login.html"; + } + +} diff --git a/src/main/java/cn/stylefeng/guns/modular/controller/LoginController.java b/src/main/java/cn/stylefeng/guns/modular/controller/LoginViewController.java similarity index 52% rename from src/main/java/cn/stylefeng/guns/modular/controller/LoginController.java rename to src/main/java/cn/stylefeng/guns/modular/controller/LoginViewController.java index b44ed794..333b3c3a 100644 --- a/src/main/java/cn/stylefeng/guns/modular/controller/LoginController.java +++ b/src/main/java/cn/stylefeng/guns/modular/controller/LoginViewController.java @@ -1,6 +1,7 @@ package cn.stylefeng.guns.modular.controller; import cn.stylefeng.roses.kernel.auth.api.AuthServiceApi; +import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginRequest; import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginResponse; import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource; @@ -9,36 +10,52 @@ import cn.stylefeng.roses.kernel.resource.api.annotation.PostResource; import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; /** - * 登录登出控制器 + * 首页相关的界面渲染 * - * @author majianguo - * @date 2020/12/3 下午6:15 + * @author fengshuonan + * @date 2020/12/27 16:23 */ -@RestController +@Controller @Slf4j -@ApiResource(name = "登陆登出管理") -public class LoginController { +@ApiResource(name = "登录相关的接口") +public class LoginViewController { @Resource private AuthServiceApi authServiceApi; /** - * 用户登陆 + * 登录界面 * - * @param loginRequest 用户帐号和密码 - * @return 登陆成功返回token以及用户信息 - * @author majianguo - * @date 2020/12/4 上午9:05 + * @author fengshuonan + * @date 2020/12/27 17:10 */ - @PostResource(name = "登陆", path = "/login", requiredLogin = false, requiredPermission = false) - public ResponseData doAuth(@RequestBody @Validated LoginRequest loginRequest) { + @GetResource(name = "登录界面", path = "/login", requiredPermission = false, requiredLogin = false) + public String login() { + if (LoginContext.me().hasLogin()) { + return "redirect:/"; + } else { + return "/login.html"; + } + } + + /** + * 登录接口 + * + * @author fengshuonan + * @date 2020/12/27 17:10 + */ + @PostResource(name = "登录接口", path = "/loginAction", requiredPermission = false, requiredLogin = false) + @ResponseBody + public ResponseData loginAction(@RequestBody @Validated LoginRequest loginRequest) { LoginResponse loginResponse = authServiceApi.login(loginRequest); return new SuccessResponseData(loginResponse.getToken()); } @@ -50,7 +67,8 @@ public class LoginController { * @author majianguo * @date 2020/12/4 上午9:05 */ - @GetResource(name = "登出", path = "/logout", requiredPermission = false) + @GetResource(name = "登出接口", path = "/logout", requiredPermission = false) + @ResponseBody public ResponseData logoutPage() { authServiceApi.logout(); return new SuccessResponseData(); diff --git a/src/main/java/cn/stylefeng/guns/modular/service/IndexService.java b/src/main/java/cn/stylefeng/guns/modular/service/IndexService.java new file mode 100644 index 00000000..f61ae4bb --- /dev/null +++ b/src/main/java/cn/stylefeng/guns/modular/service/IndexService.java @@ -0,0 +1,15 @@ +package cn.stylefeng.guns.modular.service; + +import org.springframework.stereotype.Service; + +/** + * 首页相关数据组装服务 + * + * @author fengshuonan + * @date 2020/12/27 18:25 + */ +@Service +public class IndexService { + + +} diff --git a/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/src/main/resources/META-INF/additional-spring-configuration-metadata.json new file mode 100644 index 00000000..79023a4c --- /dev/null +++ b/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -0,0 +1,29 @@ +{ + "properties": [ + { + "name": "scanner.open", + "type": "java.lang.String", + "description": "Description for scanner.open." + }, + { + "name": "sys-log.type", + "type": "java.lang.String", + "description": "Description for sys-log.type." + }, + { + "name": "sys-log.file-save-path", + "type": "java.lang.String", + "description": "Description for sys-log.file-save-path." + }, + { + "name": "spring.datasource.max-active", + "type": "java.lang.String", + "description": "Description for spring.datasource.max-active." + }, + { + "name": "spring.datasource.max-pool-prepared-statement-per-connection-size", + "type": "java.lang.String", + "description": "Description for spring.datasource.max-pool-prepared-statement-per-connection-size." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index d1920b5f..af165c22 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -24,7 +24,8 @@ spring: scanner: open: true sys-log: - type: db # db-数据库,file-文件 + # db-数据库,file-文件 + type: db file-save-path: _sys_logs mybatis-plus: @@ -39,10 +40,4 @@ mybatis-plus: enable-sql-runner: true db-config: id-type: assign_id - table-underline: true - -session: - expiredSeconds: 1800 - -log: - path: _app_logs \ No newline at end of file + table-underline: true \ No newline at end of file diff --git a/src/main/webapp/assets/expand/module/ax/ax.js b/src/main/webapp/assets/expand/module/ax/ax.js index 90e329f5..3272ac9a 100644 --- a/src/main/webapp/assets/expand/module/ax/ax.js +++ b/src/main/webapp/assets/expand/module/ax/ax.js @@ -5,6 +5,7 @@ layui.define(['jquery'], function (exports) { this.url = url; this.type = "post"; this.data = {}; + this.contentType = "application/json"; this.dataType = "json"; this.async = false; this.success = success; @@ -25,9 +26,10 @@ layui.define(['jquery'], function (exports) { $.ajax({ type: me.type, url: me.url, + contentType: me.contentType, dataType: me.dataType, async: me.async, - data: me.data, + data: JSON.stringify(me.data), beforeSend: function (data) { }, diff --git a/src/main/webapp/pages/index.html b/src/main/webapp/pages/index.html index bab97dc6..266c73a2 100644 --- a/src/main/webapp/pages/index.html +++ b/src/main/webapp/pages/index.html @@ -16,21 +16,21 @@
- @include("/common/_header.html"){} + @include("/layout/_header.html"){} - @include("/common/_sidebar.html"){} + @include("/layout/_sidebar.html"){} - @include("/common/_body.html"){} + @include("/layout/_body.html"){} - @include("/common/_footer.html"){} + @include("/layout/_footer.html"){}
-@include("/common/loading.html"){} +@include("/layout/loading.html"){} @/* 加入contextPath属性和session超时的配置 */ - \ No newline at end of file