公司要求了解一下,于是就去了解一下,本以为能提升一些生产力,结果一看也不过如此。
使用 RuoYi-Vue,即 RuoYi 的单体,前后端分离的版本,
记录一些重要概念,以及完成一个业务模块的后端,包括打包发布,尽量使用代码生成。注意 RuoYi-Vue 的文档是 http://doc.ruoyi.vip/ruoyi-vue/,其中一些章节引用 http://doc.ruoyi.vip/ruoyi/,后者未被引用的部分不应参照。FAQ 部分也值得阅读,其讲述了一些实际问题的处理方案,如跨域,不登录查看,token 过期时间等。
开发环境部署
权限系统
概念:用户,角色,部门,岗位,接口,菜单权限,数据权限。
岗位独立存在,不和其它概念关联(甚至不和部门关联),似乎只有标识作用。
每个用户属于且只属于单个部门,用户可以有多个岗位和多个角色。
角色包含权限(页面中称为菜单权限,后端称为 Permi)和数据权限(后端称为 DataScope)信息,前者标识是否有权看到菜单(和调用接口),后者标识能看到表中的哪些范围的数据(即行权限)。
角色的数据权限可以和用户的部门相关,如只能看本部门数据,也可指定能够查看特定部门数据。
菜单和菜单权限是绑定的,每个菜单都使用特定权限标识。后端实现中,可以通过权限和角色来标识用户是否有权调用该接口:
前后端的鉴权是分开的(实际上它们根本没有被关联上吧?甚至拼写错误都无法避免),菜单需要对应特定权限不代表后端不需要做校验。
数据权限
重申:每个角色都有自己的数据权限,任一角色的数据权限满足约束时用户就能看到该数据。数据权限需要使用注解,其定义上有一些问题,注释语焉不详,参照源码大概是下面的语义:
一些细节如下:
在方法上定义注解后,还是需要手动在 XML 中引用其生成的 SQL 代码,详细见 http://doc.ruoyi.vip/ruoyi/document/htsc.html#数据权限。下面是一个完整例子,其中方法上的注解为,它使用左连接把部门表引入进来并重命名为来用来筛选,也有骚操作是直接把当前的表重命名为 d,使它引用当前表的字段;注意这里虽然没有使用到但还是把它引入进来了,因为需要通过用户才能找到用户的部门:
代码生成
参考 https://blog.csdn.net/m0_/article/details/
RuoYi 支持生成从 XML 到前端 vue 的一系列代码,支持单表、树表、主子表(一对多关系)的生成,其中主子表只能有一种子表。以及多对多关系是不支持的。使用文件上传控件,接受文件 ID 这样的需求同样不被支持。在代码生成且进行过编辑后,再想要迭代的话就无法再直接利用上代码生成了。我不如用 Mybatis Plus 反而更舒服。
代码生成的步骤是:
代码生成使用 apache velocity 作为模板语言,可以进行自定义,路径为 。
RuoYi 生成的 Entity 会继承,该 Entity 中包含创建、更新时间等字段,若表中包含(下划线分割的)同名字段则不会在子类上定义相应字段,这些字段分别为:
考虑建表时主动定义这些字段以避免后续使用时混淆。
代码生成表配置
导入后,点击编辑去配置表,其包含三个界面,各界面的一些可能不清楚的点如下:
字段信息中,编辑这一列似乎没有任何影响。此外对于主键以及 createTime,createBy,updateTime,updateBy 四个字段,添加和编辑这两列是否选中都不会让它被显示出来。
此外,生成主表时,关于子表信息,似乎是只有选中了“列表”才会显示在主表实体的添加、编辑页面中……这是 bug 吗?
待办清单示例
整个待办清单作为示例,有如下需求:
预计一级模块名为 work,二级模块名为 todolist,业务名为待办清单,包名为(如果不以起头的话就需要编辑 Bean 扫描的包了,或者把所有项目的名字全都改掉)。
RuoYi 没有提供文件管理功能,但提供了相应接口去做上传下载,接口见 <com.ruoyi.web.controller.common.CommonController>,前端见 http://doc.ruoyi.vip/ruoyi-vue/document/htsc.html#上传下载。
建立 work 模块
新建子模块的流程见 http://doc.ruoyi.vip/ruoyi/document/htsc.html#新建子模块。
1. 建立 maven 项目置于 同级,指定父项目为 , 为 , 为
此时中的 modules 部分应当也引用 :
2. 编辑,指定 的版本:
3. 为 添加 依赖,其中包含 spring 和 ruoyi 相关依赖:
4. 让 依赖 :
定义字典
1. 定义字典类型
2. 定义字典项
定义表
这里的需求是主子表,主表是待办,子表是待办进度。
代码生成
进入,点击,导入两表:
根据需求编辑主表信息:
编辑进度表信息:
进度表只选中进度内容的“列表”(见上面关于代码生成的说明)。进度表的生成信息不需要编辑,因为不需要生成它,只需要生成主表信息。
点击主表的按钮,下载代码,复制到相应位置。
后端修改
默认只自动维护了 createTime 和 updateTime,需要添加维护 createBy 和 updateBy 的代码,同时进度需要维护 createTime:
最终效果
前端还需要手动编码详情页面,以及一个完成功能。
打包,发布
在项目根目录,执行打包后端,结果为。
进入,执行打包前端,结果在。
后端使用直接启动,前端走nginx,见 http://doc.ruoyi.vip/ruoyi-vue/document/hjbs.html#nginx配置。
到此这篇若依文档(若依 文档)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/24501.html