339 Star 1.7K Fork 1.3K

唛盟开源 / 低代码开发平台-唛盟lcode后端

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

logo

唛盟(mdp-lcode):多功能、高效率、低代码的前后端一体化、智能化的开发工具

gitee star

👉 https://maimengcloud.com 👈

⚠️注意:本工程属于唛盟低代码平台的后端服务工程

快速导航

📢 简介唛盟低代码开发平台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-core 必须
    该工程作为所有后端的公共封装,不包含任何的业务功能,仅作为后端系统的技术底座,包含一些公共工具、服务类抽象、dao层抽象等。

高级配套工程

  • mdp-cloud-backend 非必须
    该工程作为spring cloud的扩展工程,如果需要将系统发布到spring cloud环境,需要下载该工程重新打包,不包含任何的业务功能,仅作为后端接入cloud环境使用

  • mdp-oauth2-backend 非必须
    该工程为统一认证中心,作为spring oauth2的扩展工程,如果需要将系统接入oauth2环境,需要下载该工程重新打包,该工程实现分布式单点登陆;支持微信、支付宝、短信、账户密码等多种登陆方式

开发辅助工具

  • mdp-code-generator 非必须 代码生成器
    生成代码两种方式,
    一、使用代码生成器本地工程,好处是代码可以直接覆盖到本地业务工程,避免复制黏贴出错。
    二、如果不需要本地生成代码,也可以在低代码平台在线生成。在线生成代码

💪 内置功能

角色权限
	├── 角色管理                  => 角色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) 

访问端口 http://localhost:7014

发布

服务器的目录结构

假设工作空间为/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>

场景1 开发时,登录时对接统一认证中心进行登录,本地起了部分后端服务

此场景下,本地起的后端服务需要配置以下几个选项,让本地后端服务对jwt令牌的解析验证调用统一认证中心,否则会报令牌错误。

mdp.jwt.connect-oauth2-server=true
mdp.oauth2.server.uri=统一认证中心的访问地址

场景2 生产测试环境

此场景下配置根场景1一致

接入spring cloud

唛盟提供了完整的部署例子mdp-lcode-cloud-bootstrap

1 下载mdp-cloud-backend并安装

2 在*-cloud-bootstrap/pom.xml文件中添加cloud客户端的引用

      <!-- mdp-cloud-starter ,mdp-oauth2-client-cloud 必须放在业务包之上优先加载 -->
      <dependency>
          <groupId>com.mdp</groupId>
          <artifactId>mdp-cloud-starter</artifactId>
          <version>${mdp.version}</version>
      </dependency>

3 需要在配置文件中配置spring.cloud*相关的配置项。

  1. spring cloud如何配置以官方文档为准
  2. 唛盟相关的有以下几个配置项需要做特殊处理
# 网关地址 如果接入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

4 打包部署

注意,部署的是*-cloud-bootstrap*.jar包,对应的一键启停脚本也需要做部分修改。具体例子查看bootstrap-mdp-lcode-00.sh)

异构目录下如何加载唛盟包

唛盟的java代码统一在com.mdp下,异构目录下如何加载唛盟的spring bean 假设企业的业务包在com.ipcm下 有两种办法:

  1. 把启动类置于com下。
  2. 在**Application.java同目录下创建AutoConfig.java
 /**
  * 要使用mdp平台功能,必须 扫码com.mdp包
  * 一些默认公共配置
  */
  @ComponentScan(basePackages={"com.mdp"})
  @Configuration
  public class AutoConfig {
  }

服务端多语言支持

服务端支持多语言0编码切换,主要涉及以下内容

1 配置文件

在配置文件application-*.yml中指定语言

mdp:
  # 站点语言类型cn\en等
  site-type: cn
  

2 语言包

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"));
  1. 控制层返回结果后,唛盟框架会自动做语言切换,前端会收到已切换的消息
	@RequestMapping(value="/list",method=RequestMethod.GET)
	public Result list(){
		 return Result.ok("tipscode1","%s先生/女士,你好,恭喜获得奖励¥ %s","陈天天","1000"); 
	}

🔔️ 特别提醒

mdp 3.0 版本已经开始规划更新了,尽请期待新版本的诞生吧

🚀 基于mdp框架拓展的开源项目

⚠️ 注意:以下拓展的框架或者子系统,由mdp开源团队基于项目经验进行总结抽取,可用可不用,可以以jar包方式合并到现有工程进行发布,也可单独发布成单体应用、微服务应用

💯 实践案例

  1. 低代码平台
  2. 系统管理
  3. 协同办公
  4. 唛盟众包-网页
  5. 项目管理-网页
  6. 项目管理-小程序
    drawing
  7. 流程管理

项目分支说明

分支 说明
master 主分支,受保护分支,此分支不接受 PR。在 dev 分支后经过测试没问题后会合并到此分支。
dev 开发分支,接受 PR,PR 请提交到 dev 分支。

🐞 交流讨论 、反馈 BUG、提出建议等

  1. 快扫描下方左侧微信二维码和我们一起交流讨论吧!(备注 唛盟-xm 进群)
drawing
  1. 唛盟微信公众号查看一些基础教程
drawing
  1. 反馈 BUG、提出建议,欢迎新建:issues,开发人员会不定时查看回复。
  2. 参与贡献,请查看贡献指南

💲 打赏

感谢所有赞赏以及参与贡献的小伙伴,你们的支持是我们不断更新前进的动力!微信扫一扫,赏杯咖啡呗!
drawing

🔔商务合作

序号 合作项目 详细介绍 费用说明
1. 打赏获得赞助商名额 在赞助商列表展示(添加微信沟通) 不限额度
2. 新组件开发 提供组件扩展、优化服务 视复杂程度而定
3. 开发问题解答 如果使用该产品遇到棘手问题需要解决,添加微信进行沟通解决 免费
4. 开发培训 提供开发流程介绍、技术介绍、功能介绍、部署流程介绍,仅限线上培训 加微信详聊
5. 扩展问题解答 如果需要使用该产品进行自有业务系统研发,需要我方提供意见建议,我方收取一定费用后提供相应服务 加微信详聊
6. 广告合作 广告位(精品项目推荐、赞助商展位) 加微信沟通
MIT License Copyright (c) 2018-present 广州擎勤网络科技有限公司 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

低代码开发平台-唛盟lcode旨在为企业开发业务系统提供一整套解决方案,唛盟具有高效率、低代码、功能丰富等特点。使用唛盟构建应用,您不用考虑多租户、登录、统一认证中心、权限、菜单管理、系统管理、公共组件、公共api、代码冗余、数据字典、图片库、文件库、智能表单、工作流、微服务互相调用、全局跟踪定位bug、多主键crud,复杂sql查询等各种问题,这些问题的解决方案都作为扩展功能内置 展开 收起
Java 等 3 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/maimengcloud/mdp-lcode-backend.git
git@gitee.com:maimengcloud/mdp-lcode-backend.git
maimengcloud
mdp-lcode-backend
低代码开发平台-唛盟lcode后端
master

搜索帮助