唛盟(mdp-lcode):多功能、高效率、低代码的前后端一体化、智能化的开发工具
⚠️注意:本工程属于唛盟低代码平台的后端服务工程
唛盟低代码开发平台简称唛盟或者mdp.
唛盟旨在为企业开发业务系统提供一整套解决方案,唛盟具有高效率、低代码、功能丰富等特点。企业可以在唛盟工程之上,加入更多其它业务功能;也可以以唛盟作为模板,创建新的工程,用于开发其它业务。使用唛盟构建应用,您不用考虑多租户、登录、统一认证中心、权限、菜单管理、系统管理、公共组件、公共api、代码冗余、数据字典、图片库、文件库、智能表单、工作流、微服务互相调用、全局跟踪定位bug、多主键crud,复杂sql查询等各种问题,这些问题的解决方案都作为扩展功能内置唛盟工程中了。
💪给你一个使用唛盟的理由:代码大量减少、开发so easy、前后端MIT协议、全部开源、永久免费
⚠️工程分类:主体工程、基础配套工程、高级配套工程、辅助开发工具四大类。
主体工程:本系统业务工程,用于书写本系统相关的业务代码;
基础配套工程:业务工程运行所需的必要工程;如开发底座,系统管理相关功能包
高级配套工程:高级应用,比如需要将业务工程接入oauth2环境、将业务工程发布到cloud环境,才需要下载安装高级配套工程
辅助开发工具:指开发用到的一些工具
⚠️工程命名规范:业务名称+工程属性
工程属性如下:
-ui: 页面工程
-web: pc端运行的浏览器工程
-backend: 后端服务
-app: 安卓、ios等原生app工程
-uniapp: 基于uniapp开发的应用
-minapp: 小程序
-cloud: 微服务cloud环境
-oauth2: 统一认证中心
-bootstrap: 打包部署工程
唛盟属于前后端严格分离的一套系统,分为前端工程、后端工程两部分
mdp-cloud-backend 非必须
该工程作为spring cloud的扩展工程,如果需要将系统发布到spring cloud环境,需要下载该工程重新打包,不包含任何的业务功能,仅作为后端接入cloud环境使用
mdp-oauth2-backend 非必须
该工程为统一认证中心,作为spring oauth2的扩展工程,如果需要将系统接入oauth2环境,需要下载该工程重新打包,该工程实现分布式单点登陆;支持微信、支付宝、短信、账户密码等多种登陆方式
角色权限
├── 角色管理 => 角色crud、分配菜单、分配权限
├── 权限定义 => 权限crud
├── 菜单管理 => 菜单(按钮)crud、分配菜单(按钮)给角色、
├── 模块管理 => 模块crud
├── 已开模块 => 查看企业(个人)已开通的模块
组织管理
├── 机构管理 => 企业信息维护、管理员维护、账户信息维护、企业产品维护、
├── 用户管理 => 用户的crud、分配岗位、分配部门、重置密码、邀请
├── 部门管理 => 部门curd、分配岗位到部门、查看部门用户
├── 公司管理 => 公司curd(超级管理员使用)
├── 岗位管理 => 岗位curd、分配角色到岗位、岗位人员查看
├── 注销审核 => 审核用户的注销申请
平台管理
├── 平台配置 => 配置平台的信息
├── 个人认证审核 => 审核个人的实名认证请求
├── 企业认证审核 => 审核企业的实名认证请求
元数据管理
├── 字典管理 => 数据字典的crud
├── 列表维护 => 下拉列表数据项的crud
├── 参数定义 => 公共系统参数的crud
审批中心
├── 待执行 => 我的待执行任务查询、任务执行
├── 日历任务 => 我的待执行任务查询、任务执行
├── 发起流程 => 发起流程
审批监控
├── 我发起的流程 => 查询我发起的流程
├── 我监控的流程 => 查询我监控的流程、催办
├── 我参与的流程 => 查询我参与过的流程
流程模型
├── 流程编辑器 => 在线流程编辑器
├── 模型发布 => 流程模型发布
├── 模型设置 => 设置流程与智能表单的关联、模型的启动条件、审批人、权限等
低代码
├── 表单中心 => 智能表单的门户
├── 表单设计 => 进行智能表单设计、权限设置、在线查看源代码等
├── 数据录入、查询 => 查询表单已录入的数据
├── 代码生成器 => 在线生成crud的前端页面代码(表单、表格、api),后端代码(控制层、服务层、dao层代码),前后端0修改即可正常运行
spring boot + spring cloud + mybatis plus + flowable(可选)
数据库版本mysql8,jdk版本java-8-openjdk-amd64,redis版本3.0.6
# 克隆开发底座项目
git clone https://gitee.com/maimengcloud/mdp-core.git
# 安装开发底座依赖
mvn install
# 克隆oauth2项目(非必须)
git https://gitee.com/maimengcloud/mdp-oauth2-backend
# 安装oauth2依赖
mvn install
# 克隆cloud项目(非必须)
git https://gitee.com/maimengcloud/mdp-cloud-backend
# 安装cloud依赖
mvn install
# 克隆lcode项目
git clone https://gitee.com/maimengcloud/mdp-lcode-backend.git
# 安装lcode依赖
mvn install
# 导入数据库脚本
# 1.创建wf库 如果不想用工作流,可忽略创建wf库,找到相关脚本,导入相关表到wf数据库中,如果已创建,该步忽略
[wf.sql](https://gitee.com/maimengcloud/mdp-workflow-backend/blob/master/sql/wf.sql)
# 2.创建lcode库,导入相关脚本,如果已导入过,则忽略该步骤
[lcode.sql](./mdp-lcode/sql/lcode.sql)
# 配置数据库链接 + redis 链接(需要提前准备数据库及redis环境)
[application-dev.yml](./mdp-lcode/src/main/resources/application-dev.yml)
# 启动服务 ⚠注意启动类放在test下面,
找到并运行[LcodeApplication.java](./mdp-lcode/src/test/java/com/mdp/LcodeApplication.java)
假设工作空间为/home/m1/
/hom/m1/
├── start-service => 唛盟一键启停脚本存放目录
├── config => spring boot的外置配置文件存放目录
├── lib => jar包存放目录
├── conf => 其它配置文件存放目录
├── consul => consul安装目录
├── logs => 唛盟日志存放目录
├── backup-log => 日志备份存放目录
├── arcfile => 唛盟内容素材上传下载访问的目录(素材存放目录)
├── bin => 一些公共脚本目录,如日志定时清理脚本、微服务注销脚本
# 构建
在mdp-lcode-backend下执行
mvn instal
# 部署 指部署jar包到nexus私服,如果企业没有nexus私服,则忽略此步骤
在mdp-lcode-backend下执行
mvn deploy
# 手工发布到测试环境或者生产环境
如果是单体应用则拷贝并推送到服务器上[mdp-lcode-bootstrap-2.0.0-RELEASE.jar](./mdp-lcode-bootstrap/target/mdp-lcode-bootstrap-2.0.0-RELEASE.jar)
如果是微服务则拷贝并推送到服务器上[mdp-lcode-cloud-bootstrap-2.0.0-RELEASE.jar](./mdp-lcode-cloud-bootstrap/target/mdp-lcode-cloud-bootstrap-2.0.0-RELEASE.jar)
# 启动应用(单体、cloud对jar包的引用不同,需要根据情况修改下脚本bootstrap-mdp-lcode-00.sh,默认是单体)初次部署把./start-service/bootstrap-mdp-lcode-00.sh拷贝到服务器上
sh bootstrap-mdp-lcode-00.sh
1.如果部署了统一认证中心,需要做配置更改。 统一认证中心相关的配置项:
mdp.jwt.connect-oauth2-server=true|false 如果不需要对接统一认证中心,connect-oauth2-server设为false,则对jwt token的解析将采用HS256算法解密,默认为true
mdp.oauth2.server.uri=统一认证中心的访问地址 如http://127.0.0.1:7000,如果是cloud环境下可以设置为http://oauth2server
mdp:
jwt:
connect-oauth2-server: true
oauth2:
server:
uri: http://127.0.0.1:7000
2.本地起的后端服务pom.xml文件需要引入mdp-oauth2-client
或者mdp-oauth2-client-cloud ,如果没有该jar包,请下载mdp-oauth2-backend 到本地执行下mvn install即可
单体应用下:
<!-- mdp-oauth2-client 必须放在业务包之上优先加载 -->
<dependency>
<groupId>com.mdp</groupId>
<artifactId>mdp-oauth2-client</artifactId>
</dependency>
cloud环境下
<!-- mdp-oauth2-client-cloud 必须放在业务包之上优先加载 -->
<dependency>
<groupId>com.mdp</groupId>
<artifactId>mdp-oauth2-client-cloud</artifactId>
</dependency>
此场景下,本地起的后端服务需要配置以下几个选项,让本地后端服务对jwt令牌的解析验证调用统一认证中心,否则会报令牌错误。
mdp.jwt.connect-oauth2-server=true
mdp.oauth2.server.uri=统一认证中心的访问地址
此场景下配置根场景1一致
唛盟提供了完整的部署例子mdp-lcode-cloud-bootstrap
<!-- mdp-cloud-starter ,mdp-oauth2-client-cloud 必须放在业务包之上优先加载 -->
<dependency>
<groupId>com.mdp</groupId>
<artifactId>mdp-cloud-starter</artifactId>
<version>${mdp.version}</version>
</dependency>
# 网关地址 如果接入cloud,指cpringcloud的gate服务的访问地址 http://gate,如果不接入cloud,这里填写nginx的地址,或者注释掉
mdp.api-gate= http://gate
# 统一认证中心的访问地址 如http://127.0.0.1:7000,如果是cloud环境下可以设置为http://oauth2server
mdp.oauth2.server.uri= http://oauth2server
注意,部署的是*-cloud-bootstrap*.jar包,对应的一键启停脚本也需要做部分修改。具体例子查看bootstrap-mdp-lcode-00.sh)
唛盟的java代码统一在com.mdp下,异构目录下如何加载唛盟的spring bean 假设企业的业务包在com.ipcm下 有两种办法:
/**
* 要使用mdp平台功能,必须 扫码com.mdp包
* 一些默认公共配置
*/
@ComponentScan(basePackages={"com.mdp"})
@Configuration
public class AutoConfig {
}
服务端支持多语言0编码切换,主要涉及以下内容
在配置文件application-*.yml中指定语言
mdp:
# 站点语言类型cn\en等
site-type: cn
msgtpl.properties
格式为:
mdp.msg.tpl.${tipscode}@${mdp.site-type}=消息内容
举例如下:
mdp.msg.tpl.tipscode1@cn=%s先生/女士,你好,恭喜获得奖励¥ %s
mdp.msg.tpl.tipscode1@en=Hello %s, congratulations on receiving a reward of ¥ %s
${tipscode}来自以下几种地方:
1.BizException.java抛出的异常,唛盟框架会自动匹配语言
throw new BizException(LangTips.errMsg("tipscode1","%s先生/女士,你好,恭喜获得奖励¥ %s","陈天天","1000"));
@RequestMapping(value="/list",method=RequestMethod.GET)
public Result list(){
return Result.ok("tipscode1","%s先生/女士,你好,恭喜获得奖励¥ %s","陈天天","1000");
}
mdp 3.0 版本已经开始规划更新了,尽请期待新版本的诞生吧
⚠️ 注意:以下拓展的框架或者子系统,由mdp开源团队基于项目经验进行总结抽取,可用可不用,可以以jar包方式合并到现有工程进行发布,也可单独发布成单体应用、微服务应用
第三方支付框架,整合了微信支付、支付宝支付、paypal支付
即时通讯框架
统一认证中心框架 2. mdp-oauth2-backend 后端
微服务框架
工作流管理子系统
低代码平台
内容管理子系统
短信子系统
项目管理子系统
财务管理子系统
分支 | 说明 |
---|---|
master | 主分支,受保护分支,此分支不接受 PR。在 dev 分支后经过测试没问题后会合并到此分支。 |
dev | 开发分支,接受 PR,PR 请提交到 dev 分支。 |
感谢所有赞赏以及参与贡献的小伙伴,你们的支持是我们不断更新前进的动力!微信扫一扫,赏杯咖啡呗!
序号 | 合作项目 | 详细介绍 | 费用说明 |
---|---|---|---|
1. | 打赏获得赞助商名额 | 在赞助商列表展示(添加微信沟通) | 不限额度 |
2. | 新组件开发 | 提供组件扩展、优化服务 | 视复杂程度而定 |
3. | 开发问题解答 | 如果使用该产品遇到棘手问题需要解决,添加微信进行沟通解决 | 免费 |
4. | 开发培训 | 提供开发流程介绍、技术介绍、功能介绍、部署流程介绍,仅限线上培训 | 加微信详聊 |
5. | 扩展问题解答 | 如果需要使用该产品进行自有业务系统研发,需要我方提供意见建议,我方收取一定费用后提供相应服务 | 加微信详聊 |
6. | 广告合作 | 广告位(精品项目推荐、赞助商展位) | 加微信沟通 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型