From d870710af1a29abef3fd6111b8bf49b42f436302 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sun, 18 Nov 2018 18:02:20 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BC=9A=E8=AF=9D=E5=91=BD=E5=90=8DsysUser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysIndexController.java | 2 +- .../system/SysProfileController.java | 14 ++++++------ .../controller/system/SysUserController.java | 4 ++-- .../framework/shiro/realm/UserRealm.java | 7 +++--- ...LoginService.java => SysLoginService.java} | 4 ++-- ...rdService.java => SysPasswordService.java} | 6 ++--- .../com/ruoyi/framework/util/ShiroUtils.java | 13 +++-------- .../framework/web/base/BaseController.java | 22 +++++++++---------- 8 files changed, 33 insertions(+), 39 deletions(-) rename ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/{LoginService.java => SysLoginService.java} (95%) rename ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/{PasswordService.java => SysPasswordService.java} (90%) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java index 5420cb503..f0d072245 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java @@ -27,7 +27,7 @@ public class SysIndexController extends BaseController public String index(ModelMap mmap) { // 取身份信息 - SysUser user = getUser(); + SysUser user = getSysUser(); // 根据用户id取出菜单 List menus = menuService.selectMenusByUser(user); mmap.put("menus", menus); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index 810e35d08..f0031743b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -17,7 +17,7 @@ import com.ruoyi.common.annotation.Log; import com.ruoyi.common.base.AjaxResult; import com.ruoyi.common.config.Global; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.framework.shiro.service.PasswordService; +import com.ruoyi.framework.shiro.service.SysPasswordService; import com.ruoyi.framework.util.FileUploadUtils; import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.system.domain.SysUser; @@ -42,7 +42,7 @@ public class SysProfileController extends BaseController private ISysUserService userService; @Autowired - private PasswordService passwordService; + private SysPasswordService passwordService; @Autowired private ISysDictDataService dictDataService; @@ -53,7 +53,7 @@ public class SysProfileController extends BaseController @GetMapping() public String profile(ModelMap mmap) { - SysUser user = getUser(); + SysUser user = getSysUser(); user.setSex(dictDataService.selectDictLabel("sys_user_sex", user.getSex())); mmap.put("user", user); mmap.put("roleGroup", userService.selectUserRoleGroup(user.getUserId())); @@ -65,7 +65,7 @@ public class SysProfileController extends BaseController @ResponseBody public boolean checkPassword(String password) { - SysUser user = getUser(); + SysUser user = getSysUser(); String encrypt = new Md5Hash(user.getLoginName() + password + user.getSalt()).toHex().toString(); if (user.getPassword().equals(encrypt)) { @@ -91,7 +91,7 @@ public class SysProfileController extends BaseController int rows = userService.resetUserPwd(user); if (rows > 0) { - setUser(userService.selectUserById(user.getUserId())); + setSysUser(userService.selectUserById(user.getUserId())); return success(); } return error(); @@ -127,7 +127,7 @@ public class SysProfileController extends BaseController { if (userService.updateUserInfo(user) > 0) { - setUser(userService.selectUserById(user.getUserId())); + setSysUser(userService.selectUserById(user.getUserId())); return success(); } return error(); @@ -149,7 +149,7 @@ public class SysProfileController extends BaseController user.setAvatar(avatar); if (userService.updateUserInfo(user) > 0) { - setUser(userService.selectUserById(user.getUserId())); + setSysUser(userService.selectUserById(user.getUserId())); return success(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 938bb7c08..c00f7439b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -16,7 +16,7 @@ import com.ruoyi.common.base.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.ExcelUtil; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.shiro.service.PasswordService; +import com.ruoyi.framework.shiro.service.SysPasswordService; import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.system.domain.SysUser; @@ -46,7 +46,7 @@ public class SysUserController extends BaseController private ISysPostService postService; @Autowired - private PasswordService passwordService; + private SysPasswordService passwordService; @RequiresPermissions("system:user:view") @GetMapping() diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java index 445158fb2..418ce9f96 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java @@ -19,7 +19,7 @@ import org.apache.shiro.subject.PrincipalCollection; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import com.ruoyi.framework.shiro.service.LoginService; +import com.ruoyi.framework.shiro.service.SysLoginService; import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.web.exception.user.CaptchaException; import com.ruoyi.framework.web.exception.user.RoleBlockedException; @@ -47,7 +47,7 @@ public class UserRealm extends AuthorizingRealm private ISysRoleService roleService; @Autowired - private LoginService loginService; + private SysLoginService loginService; /** * 授权 @@ -127,7 +127,8 @@ public class UserRealm extends AuthorizingRealm log.info("对用户[" + username + "]进行登录验证..验证未通过{}", e.getMessage()); throw new AuthenticationException(e.getMessage(), e); } - SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user, password, getName()); + ShiroUtils.getSession().setAttribute("sysUser", user); + SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user.getLoginName(), password, getName()); return info; } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/LoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/SysLoginService.java similarity index 95% rename from ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/LoginService.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/SysLoginService.java index 5b48a7deb..e8f677a81 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/LoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/SysLoginService.java @@ -27,10 +27,10 @@ import com.ruoyi.system.service.ISysUserService; * @author ruoyi */ @Component -public class LoginService +public class SysLoginService { @Autowired - private PasswordService passwordService; + private SysPasswordService passwordService; @Autowired private ISysUserService userService; diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/SysPasswordService.java similarity index 90% rename from ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/SysPasswordService.java index 9e0653866..7a5c6ee3c 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/SysPasswordService.java @@ -22,7 +22,7 @@ import com.ruoyi.system.domain.SysUser; * @author ruoyi */ @Component -public class PasswordService +public class SysPasswordService { @Autowired private CacheManager cacheManager; @@ -84,7 +84,7 @@ public class PasswordService public static void main(String[] args) { - System.out.println(new PasswordService().encryptPassword("admin", "admin123", "111111")); - System.out.println(new PasswordService().encryptPassword("ry", "admin123", "222222")); + System.out.println(new SysPasswordService().encryptPassword("admin", "admin123", "111111")); + System.out.println(new SysPasswordService().encryptPassword("ry", "admin123", "222222")); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/util/ShiroUtils.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/ShiroUtils.java index fd0695863..59cc1579f 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/util/ShiroUtils.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/ShiroUtils.java @@ -4,8 +4,6 @@ import org.apache.shiro.SecurityUtils; import org.apache.shiro.crypto.SecureRandomNumberGenerator; import org.apache.shiro.mgt.RealmSecurityManager; import org.apache.shiro.session.Session; -import org.apache.shiro.subject.PrincipalCollection; -import org.apache.shiro.subject.SimplePrincipalCollection; import org.apache.shiro.subject.Subject; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanUtils; @@ -37,7 +35,7 @@ public class ShiroUtils public static SysUser getUser() { SysUser user = null; - Object obj = getSubjct().getPrincipal(); + Object obj = getSession().getAttribute("sysUser"); if (StringUtils.isNotNull(obj)) { user = new SysUser(); @@ -46,14 +44,9 @@ public class ShiroUtils return user; } - public static void setUser(SysUser user) + public static void setSysUser(SysUser user) { - Subject subject = getSubjct(); - PrincipalCollection principalCollection = subject.getPrincipals(); - String realmName = principalCollection.getRealmNames().iterator().next(); - PrincipalCollection newPrincipalCollection = new SimplePrincipalCollection(user, realmName); - // 重新加载Principal - subject.runAs(newPrincipalCollection); + ShiroUtils.getSession().setAttribute("sysUser", user); } public static void clearCachedAuthorizationInfo() diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/base/BaseController.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/base/BaseController.java index 09dc83430..da2d1ded4 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/base/BaseController.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/base/BaseController.java @@ -1,5 +1,10 @@ package com.ruoyi.framework.web.base; +import java.beans.PropertyEditorSupport; +import java.util.Date; +import java.util.List; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ruoyi.common.base.AjaxResult; @@ -10,11 +15,6 @@ import com.ruoyi.framework.web.page.PageDomain; import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.framework.web.page.TableSupport; import com.ruoyi.system.domain.SysUser; -import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.InitBinder; -import java.beans.PropertyEditorSupport; -import java.util.Date; -import java.util.List; /** * web层通用数据处理 @@ -127,23 +127,23 @@ public class BaseController return StringUtils.format("redirect:{}", url); } - public SysUser getUser() + public SysUser getSysUser() { - return ShiroUtils.getUser(); + return (SysUser) ShiroUtils.getSession().getAttribute("sysUser"); } - public void setUser(SysUser user) + public void setSysUser(SysUser user) { - ShiroUtils.setUser(user); + ShiroUtils.setSysUser(user); } public Long getUserId() { - return getUser().getUserId(); + return getSysUser().getUserId(); } public String getLoginName() { - return getUser().getLoginName(); + return getSysUser().getLoginName(); } } From bcb7ba19f99840a8efb4077bce5a75ea33fd996e Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sun, 18 Nov 2018 18:17:40 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BC=9A=E8=AF=9D=E5=91=BD=E5=90=8DsysUser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/framework/aspectj/DataScopeAspect.java | 2 +- .../main/java/com/ruoyi/framework/aspectj/LogAspect.java | 2 +- .../java/com/ruoyi/framework/shiro/realm/UserRealm.java | 2 +- .../com/ruoyi/framework/shiro/web/filter/LogoutFilter.java | 2 +- .../shiro/web/filter/online/OnlineSessionFilter.java | 2 +- .../src/main/java/com/ruoyi/framework/util/ShiroUtils.java | 6 +++--- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java index 2c04112b5..4e20738f8 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java @@ -60,7 +60,7 @@ public class DataScopeAspect return; } // 获取当前的用户 - SysUser currentUser = ShiroUtils.getUser(); + SysUser currentUser = ShiroUtils.getSysUser(); if (currentUser != null) { // 如果是超级管理员,则不过滤数据 diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java index 6bc76866a..557c68de4 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java @@ -75,7 +75,7 @@ public class LogAspect } // 获取当前的用户 - SysUser currentUser = ShiroUtils.getUser(); + SysUser currentUser = ShiroUtils.getSysUser(); // *========数据库日志=========*// SysOperLog operLog = new SysOperLog(); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java index 418ce9f96..83924b686 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java @@ -55,7 +55,7 @@ public class UserRealm extends AuthorizingRealm @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection arg0) { - SysUser user = ShiroUtils.getUser(); + SysUser user = ShiroUtils.getSysUser(); // 角色列表 Set roles = new HashSet(); // 功能列表 diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/LogoutFilter.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/LogoutFilter.java index 58041857f..bf70f17cd 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/LogoutFilter.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/LogoutFilter.java @@ -47,7 +47,7 @@ public class LogoutFilter extends org.apache.shiro.web.filter.authc.LogoutFilter String redirectUrl = getRedirectUrl(request, response, subject); try { - SysUser user = ShiroUtils.getUser(); + SysUser user = ShiroUtils.getSysUser(); if (StringUtils.isNotNull(user)) { String loginName = user.getLoginName(); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/online/OnlineSessionFilter.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/online/OnlineSessionFilter.java index e15f91ff1..1e07f5301 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/online/OnlineSessionFilter.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/online/OnlineSessionFilter.java @@ -53,7 +53,7 @@ public class OnlineSessionFilter extends AccessControlFilter boolean isGuest = onlineSession.getUserId() == null || onlineSession.getUserId() == 0L; if (isGuest == true) { - SysUser user = ShiroUtils.getUser(); + SysUser user = ShiroUtils.getSysUser(); if (user != null) { onlineSession.setUserId(user.getUserId()); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/util/ShiroUtils.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/ShiroUtils.java index 59cc1579f..ffb32ea37 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/util/ShiroUtils.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/ShiroUtils.java @@ -32,7 +32,7 @@ public class ShiroUtils getSubjct().logout(); } - public static SysUser getUser() + public static SysUser getSysUser() { SysUser user = null; Object obj = getSession().getAttribute("sysUser"); @@ -58,12 +58,12 @@ public class ShiroUtils public static Long getUserId() { - return getUser().getUserId().longValue(); + return getSysUser().getUserId().longValue(); } public static String getLoginName() { - return getUser().getLoginName(); + return getSysUser().getLoginName(); } public static String getIp() From bf012194203db0c744fa676471da0b21cde8cf30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BA=A6=E6=B4=9B?= <900324milo> Date: Mon, 19 Nov 2018 15:43:18 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=A2=E5=A4=B1?= =?UTF-8?q?=E7=9A=84=20@Override=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java index 9f7f1fcb8..930d44820 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java @@ -212,6 +212,7 @@ public class SysJobServiceImpl implements ISysJobService * @param cronExpression 表达式 * @return 结果 */ + @Override public boolean checkCronExpressionIsValid(String cronExpression) { return CronUtils.isValid(cronExpression); From b0495c23a697ff92b667be3f5cfea3b61fc2390b Mon Sep 17 00:00:00 2001 From: RuoYi Date: Mon, 19 Nov 2018 18:05:44 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=83=AD=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E5=BC=95=E8=B5=B7Null?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/framework/web/base/BaseController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/base/BaseController.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/base/BaseController.java index da2d1ded4..2d9e62573 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/base/BaseController.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/base/BaseController.java @@ -129,7 +129,7 @@ public class BaseController public SysUser getSysUser() { - return (SysUser) ShiroUtils.getSession().getAttribute("sysUser"); + return ShiroUtils.getSysUser(); } public void setSysUser(SysUser user) From c96b73bbda82411005d02ad2dcf291d99ff54343 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 21 Nov 2018 23:37:09 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 +-- .../src/main/resources/application.yml | 4 +- .../main/resources/static/ruoyi/js/common.js | 16 +++ .../generator/domain/ColumnConfigInfo.java | 72 +++++++++++++ .../ruoyi/generator/domain/ColumnInfo.java | 29 ++++- .../com/ruoyi/generator/util/GenUtils.java | 16 ++- .../src/main/resources/vm/html/add.html.vm | 21 ++++ .../src/main/resources/vm/html/edit.html.vm | 33 ++++-- .../src/main/resources/vm/html/list.html.vm | 101 +++++++++++++++--- .../main/resources/vm/java/Controller.java.vm | 17 ++- .../resources/vm/java/ServiceImpl.java.vm | 2 +- 11 files changed, 284 insertions(+), 39 deletions(-) create mode 100644 ruoyi-generator/src/main/java/com/ruoyi/generator/domain/ColumnConfigInfo.java diff --git a/README.md b/README.md index 2ca61db37..8a08ff369 100644 --- a/README.md +++ b/README.md @@ -2,20 +2,16 @@ 2018年度最受欢迎中国开源软件评选 -请给若依/RuoYi 投票,谢谢支持。 +请给若依/RuoYi 投票,谢谢大家。 https://www.oschina.net/project/top_cn_2018?sort=1 一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套后台系统。如此有了若依。她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。 -性别男,若依是女儿的名字。 +寓意:你若不离不弃,我必生死相依 若依基于hplus和inspinia两套后台系统模板开发。有需要可自行到群内下载。 -http://www.zi-han.net/theme/hplus - -http://webapplayers.com/inspinia_admin-v2.7.1 - > RuoYi从3.0开始,进行模块拆分,将原先的单应用转变为多模块,如需单应用,请移步 [RuoYi-fast](https://gitee.com/y_project/RuoYi-fast) > 推荐使用阿里云部署,通用云产品代金券 :[点我领取](https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=brki8iof) @@ -41,7 +37,9 @@ http://webapplayers.com/inspinia_admin-v2.7.1 ## 在线体验 > admin/admin123 -地址:http://www.ruoyi.vip +演示地址:http://ruoyi.vip + +文档地址:http://doc.ruoyi.vip ## 演示图 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index a1acec922..4dd6f2044 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -126,8 +126,8 @@ xss: gen: # 作者 author: ruoyi - # 默认生成包路径 module 需改成自己的模块名称 如 system monitor tool - packageName: com.ruoyi.module + # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool + packageName: com.ruoyi.system # 自动去除表前缀,默认是true autoRemovePre: true # 表前缀(类名不会包含表前缀) diff --git a/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js b/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js index 64b2a8347..9f56a6ac0 100644 --- a/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js +++ b/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js @@ -68,6 +68,22 @@ $(function() { }); }); } + // laydate time-input 时间控件绑定 + if ($(".time-input").length > 0) { + layui.use('laydate', function() { + var laydate = layui.laydate; + var times = $(".time-input"); + for (var i = 0; i < times.length; i++) { + var time = times[i]; + laydate.render({ + elem: time, + theme: 'molv', + trigger: 'click', + done: function(value, date) {} + }); + } + }); + } // tree 关键字搜索绑定 if ($("#keyword").length > 0) { $("#keyword").bind("focus", function focusKey(e) { diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/ColumnConfigInfo.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/ColumnConfigInfo.java new file mode 100644 index 000000000..7deb42d38 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/ColumnConfigInfo.java @@ -0,0 +1,72 @@ +package com.ruoyi.generator.domain; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +/** + * 字段类型配置 由数据库字段的注释解析而来 + * 注释结构示例:{"title": "状态", "type": "dict", "value": "sys_common_status"} {"title": "登录时间", "type": "date"} + * + * @author ruoyi + * + */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class ColumnConfigInfo +{ + /** + * 属性标题 + */ + private String title; + + /** + * 属性类型 dict(字典,value对应字典管理的字典类型), date(包括date) + */ + private String type; + + /** + * 属性值,参考数据类型,可为空 + */ + private String value; + + public ColumnConfigInfo() + { + super(); + } + + public ColumnConfigInfo(String title, String type, String value) + { + super(); + this.title = title; + this.type = type; + this.value = value; + } + + public String getTitle() + { + return title; + } + + public void setTitle(String title) + { + this.title = title; + } + + public String getType() + { + return type; + } + + public void setType(String type) + { + this.type = type; + } + + public String getValue() + { + return value; + } + + public void setValue(String value) + { + this.value = value; + } +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/ColumnInfo.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/ColumnInfo.java index 4108af6c4..7afab2675 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/ColumnInfo.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/ColumnInfo.java @@ -1,5 +1,8 @@ package com.ruoyi.generator.domain; +import com.ruoyi.common.json.JSON; +import com.ruoyi.common.utils.StringUtils; + /** * ry数据库表列信息 * @@ -15,6 +18,9 @@ public class ColumnInfo /** 列描述 */ private String columnComment; + + /** 列配置 */ + private ColumnConfigInfo configInfo; /** Java属性类型 */ private String attrType; @@ -50,9 +56,18 @@ public class ColumnInfo return columnComment; } - public void setColumnComment(String columnComment) + public void setColumnComment(String columnComment) throws Exception { - this.columnComment = columnComment; + // 根据列描述解析列的配置信息 + if (StringUtils.isNotEmpty(columnComment) && columnComment.startsWith("{")) + { + this.configInfo = JSON.unmarshal(columnComment, ColumnConfigInfo.class); + this.columnComment = configInfo.getTitle(); + } + else + { + this.columnComment = columnComment; + } } public String getAttrName() @@ -84,4 +99,14 @@ public class ColumnInfo { this.attrType = attrType; } + + public ColumnConfigInfo getConfigInfo() + { + return configInfo; + } + + public void setConfigInfo(ColumnConfigInfo configInfo) + { + this.configInfo = configInfo; + } } diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java index 26fa726e1..a925ed23a 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java @@ -23,7 +23,7 @@ public class GenUtils private static final String PROJECT_PATH = "main/java/com/ruoyi"; /** mybatis空间路径 */ - private static final String MYBATIS_PATH = "main/resources/mybatis"; + private static final String MYBATIS_PATH = "main/resources/mapper"; /** html空间路径 */ private static final String TEMPLATES_PATH = "main/resources/templates"; @@ -69,8 +69,9 @@ public class GenUtils velocityContext.put("primaryKey", table.getPrimaryKey()); velocityContext.put("className", table.getClassName()); velocityContext.put("classname", table.getClassname()); - velocityContext.put("moduleName", GenUtils.getModuleName(packageName)); + velocityContext.put("moduleName", getModuleName(packageName)); velocityContext.put("columns", table.getColumns()); + velocityContext.put("basePackage", getBasePackage(packageName)); velocityContext.put("package", packageName); velocityContext.put("author", Global.getAuthor()); velocityContext.put("datetime", DateUtils.getDate()); @@ -144,7 +145,7 @@ public class GenUtils if (template.contains("ServiceImpl.java.vm")) { - return javaPath + "service" + "/" + className + "ServiceImpl.java"; + return javaPath + "service" + "/" + "/impl/" + className + "ServiceImpl.java"; } if (template.contains("Controller.java.vm")) @@ -190,6 +191,13 @@ public class GenUtils return moduleName; } + public static String getBasePackage(String packageName) + { + int lastIndex = packageName.lastIndexOf("."); + String basePackage = StringUtils.substring(packageName, 0, lastIndex); + return basePackage; + } + public static String replaceKeyword(String keyword) { String keyName = keyword.replaceAll("(?:表|信息)", ""); @@ -224,6 +232,6 @@ public class GenUtils { System.out.println(StringUtils.convertToCamelCase("user_name")); System.out.println(replaceKeyword("岗位信息表")); - System.out.println(getModuleName("com.ruoyi.system")); + System.out.println(getBasePackage("com.ruoyi.system")); } } diff --git a/ruoyi-generator/src/main/resources/vm/html/add.html.vm b/ruoyi-generator/src/main/resources/vm/html/add.html.vm index 7e29b0ecd..19e0d1386 100644 --- a/ruoyi-generator/src/main/resources/vm/html/add.html.vm +++ b/ruoyi-generator/src/main/resources/vm/html/add.html.vm @@ -7,12 +7,33 @@
#foreach($column in $columns) #if($column.columnName != $primaryKey.columnName) +#if(!${column.configInfo})
+#else +#if(${column.configInfo.type} == "dict") +
+ +
+ +
+
+#elseif(${column.configInfo.type} == "date") +
+ +
+ +
+
+#elseif(${column.configInfo.type} == "fk") +#end +#end #end #end
diff --git a/ruoyi-generator/src/main/resources/vm/html/edit.html.vm b/ruoyi-generator/src/main/resources/vm/html/edit.html.vm index e72b93887..e27119e79 100644 --- a/ruoyi-generator/src/main/resources/vm/html/edit.html.vm +++ b/ruoyi-generator/src/main/resources/vm/html/edit.html.vm @@ -8,12 +8,33 @@ #foreach($column in $columns) #if($column.columnName != $primaryKey.columnName) -
- -
- -
-
+#if(!${column.configInfo}) +
+ +
+ +
+
+#else +#if(${column.configInfo.type} == "dict") +
+ +
+ +
+
+#elseif(${column.configInfo.type} == "date") +
+ +
+ +
+
+#elseif(${column.configInfo.type} == "fk") +#end +#end #end #end diff --git a/ruoyi-generator/src/main/resources/vm/html/list.html.vm b/ruoyi-generator/src/main/resources/vm/html/list.html.vm index 2f9605d8b..12b9f535c 100644 --- a/ruoyi-generator/src/main/resources/vm/html/list.html.vm +++ b/ruoyi-generator/src/main/resources/vm/html/list.html.vm @@ -3,23 +3,68 @@ -
- + +
+
+
+
+
+
    +#foreach($column in $columns) +#if($column.columnName != $primaryKey.columnName) +#if(!${column.configInfo}) +
  • + ${column.columnComment}: +
  • + +#else +#if(${column.configInfo.type} == "dict") +
  • + ${column.columnComment}: +
  • +#elseif(${column.configInfo.type} == "date") +
  • + + + - + +
  • +#elseif(${column.configInfo.type} == "fk") +#end +#end +#end +#end +
  • +  搜索 +  重置 +
  • +
+
+
+
- -
+
+ + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/monitor/job/jobLog.html b/ruoyi-admin/src/main/resources/templates/monitor/job/jobLog.html index 1fc415d3e..cce505c44 100644 --- a/ruoyi-admin/src/main/resources/templates/monitor/job/jobLog.html +++ b/ruoyi-admin/src/main/resources/templates/monitor/job/jobLog.html @@ -57,7 +57,7 @@