diff --git a/README.md b/README.md index a0a7a56b8..dbd86bb26 100644 --- a/README.md +++ b/README.md @@ -103,29 +103,28 @@ Topiam IAM/IDaaS身份管理平台 - https://www.topiam.cn/
## 本框架与RuoYi的业务差异 -| 业务 | 功能说明 | 本框架 | RuoYi | -|--------|-----------------------------------------|-----|------------------| -| 租户管理 | 系统内租户的管理 如:租户套餐、过期时间、用户数量、企业信息等 | 支持 | 无 | -| 租户套餐管理 | 系统内租户所能使用的套餐管理 如:套餐内所包含的菜单等 | 支持 | 无 | -| 用户管理 | 用户的管理配置 如:新增用户、分配用户所属部门、角色、岗位等 | 支持 | 支持 | -| 部门管理 | 配置系统组织机构(公司、部门、小组) 树结构展现支持数据权限 | 支持 | 支持 | -| 岗位管理 | 配置系统用户所属担任职务 | 支持 | 支持 | -| 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等 | 支持 | 支持 | -| 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | 支持 | 支持 | -| 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | 支持 | 支持 | -| 参数管理 | 对系统动态配置常用参数 | 支持 | 支持 | -| 通知公告 | 系统通知公告信息发布维护 | 支持 | 支持 | -| 操作日志 | 系统正常操作日志记录和查询 系统异常信息日志记录和查询 | 支持 | 支持 | -| 登录日志 | 系统登录日志记录查询包含登录异常 | 支持 | 支持 | -| 文件管理 | 系统文件展示、上传、下载、删除等管理 | 支持 | 无 | -| 文件配置管理 | 系统文件上传、下载所需要的配置信息动态添加、修改、删除等管理 | 支持 | 无 | -| 在线用户管理 | 已登录系统的在线用户信息监控与强制踢出操作 | 支持 | 支持 | -| 定时任务 | 运行报表、任务管理(添加、修改、删除)、日志管理、执行器管理等 | 支持 | 仅支持任务与日志管理 | -| 代码生成 | 多数据源前后端代码的生成(java、html、xml、sql)支持CRUD下载 | 支持 | 仅支持单数据源 | -| 系统接口 | 根据业务代码自动生成相关的api接口文档 | 支持 | 支持 | -| 服务监控 | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等 | 支持 | 仅支持单机CPU、内存、磁盘监控 | -| 缓存监控 | 对系统的缓存信息查询,命令统计等。 | 支持 | 支持 | -| 使用案例 | 系统的一些功能案例 | 支持 | 不支持 | +| 业务 | 功能说明 | 本框架 | RuoYi | +|--------|----------------------------------------------------------------------|-----|------------------| +| 客户端管理 | 系统内对接的所有客户端管理 如: pc端、小程序端等
支持动态授权登录方式 如: 短信登录、密码登录等 支持动态控制token时效 | 支持 | 无 | +| 用户管理 | 用户的管理配置 如:新增用户、分配用户所属部门、角色、岗位等 | 支持 | 支持 | +| 部门管理 | 配置系统组织机构(公司、部门、小组) 树结构展现支持数据权限 | 支持 | 支持 | +| 岗位管理 | 配置系统用户所属担任职务 | 支持 | 支持 | +| 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等 | 支持 | 支持 | +| 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | 支持 | 支持 | +| 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | 支持 | 支持 | +| 参数管理 | 对系统动态配置常用参数 | 支持 | 支持 | +| 通知公告 | 系统通知公告信息发布维护 | 支持 | 支持 | +| 操作日志 | 系统正常操作日志记录和查询 系统异常信息日志记录和查询 | 支持 | 支持 | +| 登录日志 | 系统登录日志记录查询包含登录异常 | 支持 | 支持 | +| 文件管理 | 系统文件展示、上传、下载、删除等管理 | 支持 | 无 | +| 文件配置管理 | 系统文件上传、下载所需要的配置信息动态添加、修改、删除等管理 | 支持 | 无 | +| 在线用户管理 | 已登录系统的在线用户信息监控与强制踢出操作 | 支持 | 支持 | +| 定时任务 | 运行报表、任务管理(添加、修改、删除)、日志管理、执行器管理等 | 支持 | 仅支持任务与日志管理 | +| 代码生成 | 多数据源前后端代码的生成(java、html、xml、sql)支持CRUD下载 | 支持 | 仅支持单数据源 | +| 系统接口 | 根据业务代码自动生成相关的api接口文档 | 支持 | 支持 | +| 服务监控 | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等 | 支持 | 仅支持单机CPU、内存、磁盘监控 | +| 缓存监控 | 对系统的缓存信息查询,命令统计等。 | 支持 | 支持 | +| 使用案例 | 系统的一些功能案例 | 支持 | 不支持 | ## 参考文档 diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java index 8ae2da781..a25632c68 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java @@ -48,11 +48,11 @@ public interface RemoteUserService { /** * 通过手机号查询用户信息 * - * @param phonenumber 手机号 + * @param phoneNumber 手机号 * @return 结果 */ @GetMapping("/get-by-phonenumber") - LoginUser getUserInfoByPhonenumber(@RequestParam String phonenumber) throws UserException; + LoginUser getUserInfoByPhoneNumber(@RequestParam String phoneNumber) throws UserException; /** * 通过邮箱查询用户信息 diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/form/SmsLoginBody.java b/ruoyi-auth/src/main/java/org/dromara/auth/form/SmsLoginBody.java index 7271b638a..2e9976aea 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/form/SmsLoginBody.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/form/SmsLoginBody.java @@ -18,7 +18,7 @@ public class SmsLoginBody extends LoginBody { * 手机号 */ @NotBlank(message = "{user.phonenumber.not.blank}") - private String phonenumber; + private String phoneNumber; /** * 短信code diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SmsAuthStrategy.java b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SmsAuthStrategy.java index aeb2347e1..60597f152 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SmsAuthStrategy.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SmsAuthStrategy.java @@ -41,10 +41,10 @@ public class SmsAuthStrategy implements IAuthStrategy { public LoginVo login(String body, RemoteClientVo client) { SmsLoginBody loginBody = JsonUtils.parseObject(body, SmsLoginBody.class); ValidatorUtils.validate(loginBody); - String phonenumber = loginBody.getPhonenumber(); + String phoneNumber = loginBody.getPhoneNumber(); String smsCode = loginBody.getSmsCode(); - LoginUser loginUser = remoteUserService.getUserInfoByPhonenumber(phonenumber); - loginService.checkLogin(LoginType.SMS, loginUser.getUsername(), () -> !validateSmsCode(phonenumber, smsCode)); + LoginUser loginUser = remoteUserService.getUserInfoByPhoneNumber(phoneNumber); + loginService.checkLogin(LoginType.SMS, loginUser.getUsername(), () -> !validateSmsCode(phoneNumber, smsCode)); loginUser.setClientKey(client.getClientKey()); loginUser.setDeviceType(client.getDeviceType()); SaLoginParameter model = new SaLoginParameter(); @@ -67,10 +67,10 @@ public class SmsAuthStrategy implements IAuthStrategy { /** * 校验短信验证码 */ - private boolean validateSmsCode(String phonenumber, String smsCode) { - String code = RedisUtils.getCacheObject(GlobalConstants.CAPTCHA_CODE_KEY + phonenumber); + private boolean validateSmsCode(String phoneNumber, String smsCode) { + String code = RedisUtils.getCacheObject(GlobalConstants.CAPTCHA_CODE_KEY + phoneNumber); if (StringUtils.isBlank(code)) { - loginService.recordLoginInfo(phonenumber, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire")); + loginService.recordLoginInfo(phoneNumber, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire")); throw new CaptchaExpireException(); } return code.equals(smsCode); diff --git a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/controller/SysSmsController.java b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/controller/SysSmsController.java index 52e227c8d..4207dc4f6 100644 --- a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/controller/SysSmsController.java +++ b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/controller/SysSmsController.java @@ -37,12 +37,12 @@ public class SysSmsController extends BaseController { /** * 短信验证码 * - * @param phonenumber 用户手机号 + * @param phoneNumber 用户手机号 */ @RateLimiter(key = "#phonenumber", time = 60, count = 1) @GetMapping("/code") - public R smsCaptcha(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) { - String key = GlobalConstants.CAPTCHA_CODE_KEY + phonenumber; + public R smsCaptcha(@NotBlank(message = "{user.phonenumber.not.blank}") String phoneNumber) { + String key = GlobalConstants.CAPTCHA_CODE_KEY + phoneNumber; String code = RandomUtil.randomNumbers(4); RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION)); // 验证码模板id 自行处理 (查数据库或写死均可) @@ -50,7 +50,7 @@ public class SysSmsController extends BaseController { LinkedHashMap map = new LinkedHashMap<>(1); map.put("code", code); SmsBlend smsBlend = SmsFactory.getSmsBlend("tx1"); - SmsResponse smsResponse = smsBlend.sendMessage(phonenumber, templateId, map); + SmsResponse smsResponse = smsBlend.sendMessage(phoneNumber, templateId, map); if (!smsResponse.isSuccess()) { log.error("验证码短信发送异常 => {}", smsResponse); return R.fail(smsResponse.getData().toString()); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/remote/RemoteUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/remote/RemoteUserServiceImpl.java index dc95d33a6..d1f7a48cf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/remote/RemoteUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/remote/RemoteUserServiceImpl.java @@ -95,17 +95,17 @@ public class RemoteUserServiceImpl implements RemoteUserService { /** * 通过手机号查询用户信息 * - * @param phonenumber 手机号 + * @param phoneNumber 手机号 * @return 结果 */ @Override - public LoginUser getUserInfoByPhonenumber(String phonenumber) throws UserException { - SysUserVo sysUser = userMapper.selectVoOne(new LambdaQueryWrapper().eq(SysUser::getPhoneNumber, phonenumber)); + public LoginUser getUserInfoByPhoneNumber(String phoneNumber) throws UserException { + SysUserVo sysUser = userMapper.selectVoOne(new LambdaQueryWrapper().eq(SysUser::getPhoneNumber, phoneNumber)); if (ObjectUtil.isNull(sysUser)) { - throw new UserException("user.not.exists", phonenumber); + throw new UserException("user.not.exists", phoneNumber); } if (UserStatus.DISABLE.getCode().equals(sysUser.getStatus())) { - throw new UserException("user.blocked", phonenumber); + throw new UserException("user.blocked", phoneNumber); } // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java index ee21aa64a..24cfcd4d3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java @@ -60,10 +60,10 @@ public interface ISysUserService { /** * 通过手机号查询用户 * - * @param phonenumber 手机号 + * @param phoneNumber 手机号 * @return 用户对象信息 */ - SysUserVo selectUserByPhonenumber(String phonenumber); + SysUserVo selectUserByPhoneNumber(String phoneNumber); /** * 通过用户ID查询用户 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java index 418cc7060..5dee6c9bb 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java @@ -131,12 +131,12 @@ public class SysUserServiceImpl implements ISysUserService { /** * 通过手机号查询用户 * - * @param phonenumber 手机号 + * @param phoneNumber 手机号 * @return 用户对象信息 */ @Override - public SysUserVo selectUserByPhonenumber(String phonenumber) { - return baseMapper.selectVoOne(new LambdaQueryWrapper().eq(SysUser::getPhoneNumber, phonenumber)); + public SysUserVo selectUserByPhoneNumber(String phoneNumber) { + return baseMapper.selectVoOne(new LambdaQueryWrapper().eq(SysUser::getPhoneNumber, phoneNumber)); } /** diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java index 1bc084503..caf2685b5 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java @@ -248,8 +248,4 @@ public class FlowHisTaskVo implements Serializable { this.cooperateTypeName = CooperateType.getValueByKey(cooperateType); } - public String getCreateTime() { - return DateUtils.formatFriendlyTime(createTime); - } - } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java index e26a63c1b..30a9667ed 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java @@ -207,8 +207,4 @@ public class FlowTaskVo implements Serializable { private String businessTitle; //业务扩展信息结束 - public String getCreateTime() { - return DateUtils.formatFriendlyTime(createTime); - } - }