当前位置:网站首页 > 编程语言 > 正文

若依文档(若依 文档)



公司要求了解一下,于是就去了解一下,本以为能提升一些生产力,结果一看也不过如此。

使用 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配置。

            到此这篇若依文档(若依 文档)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

            版权声明


            相关文章:

          1. udp广播(esp32 udp广播)2024-12-04 21:36:04
          2. 设置里面的本机信息(设置里面的本机信息怎么删除)2024-12-04 21:36:04
          3. ipv6全球单播地址(ipv6全球单播地址获取不到网关)2024-12-04 21:36:04
          4. 传输网页使用的协议是什么(浏览器传输网页使用的协议是)2024-12-04 21:36:04
          5. git的用法(git的基本用法)2024-12-04 21:36:04
          6. 能从单片机里面读取程序吗(单片机的程序可以读取吗)2024-12-04 21:36:04
          7. pdf文件中怎么查找(pdf文件怎么查找替换内容)2024-12-04 21:36:04
          8. 小蚂蚁速购(小蚂蚁官网)2024-12-04 21:36:04
          9. 蓝色颜色代码(蓝色颜色代码是多少)2024-12-04 21:36:04
          10. pass与saas(pass与saas区别)2024-12-04 21:36:04
          11. 全屏图片