文章目录
- 前言
- 一、后端工程:openpms-server
- 1. 工程代码的引入
- 2. 工程编译运行依赖
- 3. 工程代码的部分改造
- 二、前端工程:openpms-web
- 三、移动端工程:openpms-uniapp
- 四、相关工程代码
前言
芋道开源在上一篇已介绍过,总体来说是个不错的低代码平台,而且作者承诺100%开源也是非常值得点赞的。基于我们要改造的租赁管理B端系统,芋道作为代码基座是个可以极大减少开发投入的不错选择。下面,我们基于芋道的源码来建立租赁管理系统的后端、前端及UniAPP移动端工程。由于上家公司习惯了叫PMS系统,实际PMS为资产管理系统,房屋及其相关设施也算是资产的一部分,因此我们的系统就叫OpenPMS。加Open,不会像OpenAI的叫Open又实际不Open,我们的工程将像芋道一样,完成开源免费。
一、后端工程:openpms-server
1. 工程代码的引入
由于Spring Cloud微服务架构要远优于单体架构,因此我们沿用的是yudao-cloud版本,且需要使用SpringAI能力,所以基于master-jdk17 分支(JDK 17/21 + Spring Boot 3.2)。引入相关代码后的工程目录如下:
工程中引入的相关模块说明如下:
模块 | 用途 |
---|---|
yudao-dependencies | 芋道源码的相关依赖项 ,无任何功能代码 |
yudao-framework | 芋道框架代码库,主要的核心框架代码都在这里 |
yudao-gateway | 对外的网关服务 |
yudao-module-ai | AI相关模块 |
yudao-module-bpm | 工作流模块 |
yudao-module-infra | 基础设施模块 |
yudao-module-pay | 支付模块 |
yudao-module-report | 报表模块 |
yudao-module-system | 系统管理模块 |
注:lombok.config是必须引入的,缺少里面的lombok.accessors.chain=true将会让整个代码工程无法编译成功。
2. 工程编译运行依赖
对于编译运行上述相关代码,需要解决如下几个依赖项:
- 数据库
这里我们使用的是MySQL数据库,根据芋道提供的SQL语句ruoyi-vue-pro.sql进行导入。而实际上导入的数据表只包括基础设施和系统管理这些基础模块的数据表,其它模块的表是需要在相关模块的文档中去获取到的。上一篇我们也讲过芋道作者的这些文档是收费的,在网上搜索基本也能找到相关的离线文档下载,但实际上这些离线文档和最新的代码还是有一定的脱钩。有了AI助手,我们可以轻松搞定,如下:
注:这里使用的是字节的Trae工具,如果一次性生成有缺少,可以指定到具体的DO类上进行生成即可。AI助手有很多选择,后面我们可以写一篇简单的介绍说明为啥我们选用Trae - xxl-job
XXL-JOB是一个轻量级分布式任务调度平台,也是个不错的开源项目。这里我们需要的是部署一个XXL-JOB的服务端xxl-job-admin来使用,也没必要集成其项目源码过来,不同框架依赖引用会存在很多冲突。我们使用jenkins简单部署一个供使用即可,在下一篇代码部署上再做详细说明。 - yudao-ui-go-view
报表模块需要引用的前端模块,我们同样使用jenkins简单部署一个供使用即可。
3. 工程代码的部分改造
整体代码上我们不做调整,这里主要改造的是配置文件。芋道源码虽然用到了nacos,不过只用作注册中心,而nacos还有另外一个非常不错的配置中心却没用到,改个数据库的连接配置都需要修改N多个配置文件才行,这点实在无法容忍。
主要涉及的修改如下:
- 降低spring.cloud.alibaba.version版本到2023.0.1.0,2023.0.3.2版本的存在兼容问题无法使用配置中心;
- 引入spring-cloud-starter-bootstrap包依赖,改用bootstrap.yaml作为配置入口文件;
- 在application入口中添加@EnableDiscoveryClient
以网关服务为例,修改后的bootstrap.yaml内容如下:
nacos中的配置文件列表如下:
二、前端工程:openpms-web
引入后的工程代码结构如下:
这里我们暂不对前端做过多修改,只替换系统名称等基本信息。另外添加的docker目录为jenkins部署时使用,后续再做说明。
三、移动端工程:openpms-uniapp
引入后的工程代码结构如下:
移动端的代码实际上只是个壳,基本的用户管理之类的模块一个都没实现,这个芋道不知基于啥原因了。后续可能还得做大的改造,毕竟现在移动端是个非常重要的一端,虽然芋道的商城移动端也是全开源,但对于我们的租赁管理系统来说,没有可参照意义。
四、相关工程代码
https://gitee.com/shenzhen-xingling-smart/openpms-server.git
https://gitee.com/shenzhen-xingling-smart/openpms-web.git
https://gitee.com/shenzhen-xingling-smart/openpms-uniapp.git