看看人家的快速开发平台,确实清新优雅!

点击上方“芋道源码”,选择“设为星标

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

 

🐯 平台简介

芋道,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。

448ea9985951047440df1368296e24f1.png
架构图
  • 管理后台的 Vue3 版本采用 vue-element-plus-admin ,Vue2 版本采用 vue-element-admin

  • 管理后台的移动端采用 uni-app 方案,一份代码多终端适配,同时支持 APP、小程序、H5!

  • 后端采用 Spring Boot、MySQL + MyBatis Plus、Redis + Redisson

  • 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等

  • 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统,支持 SSO 单点登录

  • 支持加载动态权限菜单,按钮级别权限控制,本地缓存提升性能

  • 支持 SaaS 多租户系统,可自定义每个租户的权限,提供透明化的多租户底层封装

  • 工作流使用 Flowable,支持动态表单、在线设计流程、会签 / 或签、多种任务分配方式

  • 高效率开发,使用代码生成器可以一键生成前后端代码 + 单元测试 + Swagger 接口文档 + Validator 参数校验

  • 集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款

  • 集成阿里云、腾讯云等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务

  • 集成报表设计器,支持数据报表、图形报表、打印设计等

🐳 项目关系

0f23d7029ede7a2df3d6e286cd76762f.jpeg
架构演进

三个项目的功能对比,可见社区共同整理的 国产开源项目对比 表格。

  • 项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

  • 官方文档:https://doc.iocoder.cn/

  • 演示地址:http://dashboard.yudao.iocoder.cn

  • 视频教程:https://doc.iocoder.cn/video/

后端项目

项目Star简介
ruoyi-vue-prooutside_default.png
基于 Spring Boot 多模块架构
yudao-cloudoutside_default.png基于 Spring Cloud 微服务架构
Spring-Boot-Labsoutside_default.png系统学习 Spring Boot & Cloud 专栏

前端项目

项目Star简介
yudao-ui-admin-vue3outside_default.png基于 Vue3 + element-plus 实现的管理后台
yudao-ui-adminoutside_default.png基于 Vue2 + element-ui 实现的管理后台
yudao-ui-admin-uniappoutside_default.png基于 uni-app + uni-ui 实现的管理后台的小程序
yudao-ui-go-viewoutside_default.png基于 Vue3 + naive-ui 实现的大屏报表
yudao-ui-appoutside_default.png基于 uni-app + uview 实现的用户 App

😎 开源协议

为什么推荐使用本项目?

① 本项目采用比 Apache 2.0 更宽松的 MIT License 开源协议,个人与企业可 100% 免费使用,不用保留类作者、Copyright 信息。

② 代码全部开源,不会像其他项目一样,只开源部分代码,让你无法了解整个项目的架构设计。

③ 代码整洁、架构整洁,遵循《阿里巴巴 Java 开发手册》规范,代码注释详细,57000 行 Java 代码,22000 行代码注释。

🐼 内置功能

系统内置多种多种业务功能,可以用于快速你的业务系统:

d0e6775c07baa9b642d81005f5339a58.png
功能分层
  • 系统功能

  • 基础设施

  • 工作流程

  • 支付系统

  • 数据报表

友情提示:本项目基于 RuoYi-Vue 修改,重构优化后端的代码,美化前端的界面。

  • 额外新增的功能,我们使用 🚀 标记。

  • 重新实现的功能,我们使用 ⭐️ 标记。

🙂 所有功能,都通过 单元测试 保证高质量。

系统功能


功能描述

用户管理用户是系统操作者,该功能主要完成系统用户配置
⭐️在线用户当前系统中活跃用户状态监控,支持手动踢下线

角色管理角色菜单权限分配、设置角色按机构进行数据范围权限划分

菜单管理配置系统菜单、操作权限、按钮权限标识等,本地缓存提供性能

部门管理配置系统组织机构(公司、部门、小组),树结构展现支持数据权限

岗位管理配置系统用户所属担任职务
🚀租户管理配置系统租户,支持 SaaS 场景下的多租户功能
🚀租户套餐配置租户套餐,自定每个租户的菜单、操作、按钮的权限

字典管理对系统中经常使用的一些较为固定的数据进行维护
🚀短信管理短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台
🚀操作日志系统正常操作日志记录和查询,集成 Swagger 生成日志内容
⭐️登录日志系统登录日志记录查询,包含登录异常
🚀错误码管理系统所有错误码的管理,可在线修改错误提示,无需重启服务

通知公告系统通知公告信息发布维护
🚀敏感词配置系统敏感词,支持标签分组
🚀应用管理管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式

工作流程


功能描述
🚀流程模型配置工作流的流程模型,支持文件导入与在线设计流程图,提供 7 种任务分配规则
🚀流程表单拖动表单元素生成相应的工作流表单,覆盖 Element UI 所有的表单组件
🚀用户分组自定义用户分组,可用于工作流的审批分组
🚀我的流程查看我发起的工作流程,支持新建、取消流程等操作,高亮流程图、审批时间线
🚀待办任务查看自己【未】审批的工作任务,支持通过、不通过、转发、委派、退回等操作
🚀已办任务查看自己【已】审批的工作任务,未来会支持回退操作
🚀OA 请假作为业务自定义接入工作流的使用示例,只需创建请求对应的工作流程,即可进行审批

支付系统


功能描述
🚀商户信息管理商户信息,支持 Saas 场景下的多商户功能
🚀应用信息配置商户的应用信息,对接支付宝、微信等多个支付渠道
🚀支付订单查看用户发起的支付宝、微信等的【支付】订单
🚀退款订单查看用户发起的支付宝、微信等的【退款】订单

ps:核心功能已经实现,正在对接微信小程序中...

基础设施


功能描述
🚀代码生成前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载
🚀系统接口基于 Swagger 自动生成相关的 RESTful API 接口文档
🚀数据库文档基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式

表单构建拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件
🚀配置管理对系统动态配置常用参数,支持 SpringBoot 加载
⭐️定时任务在线(添加、修改、删除)任务调度包含执行结果日志
🚀文件服务支持将文件存储到 S3(MinIO、阿里云、腾讯云、七牛云)、本地、FTP、数据库等
🚀API 日志包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题

MySQL 监控监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈

Redis 监控监控 Redis 数据库的使用情况,使用的 Redis Key 管理
🚀消息队列基于 Redis 实现消息队列,Stream 提供集群消费,Pub/Sub 提供广播消费
🚀Java 监控基于 Spring Boot Admin 实现 Java 应用的监控
🚀链路追踪接入 SkyWalking 组件,实现链路追踪
🚀日志中心接入 SkyWalking 组件,实现日志中心
🚀分布式锁基于 Redis 实现分布式锁,满足并发场景
🚀幂等组件基于 Redis 实现幂等组件,解决重复请求问题
🚀服务保障基于 Resilience4j 实现服务的稳定性,包括限流、熔断等功能
🚀日志服务轻量级日志中心,查看远程服务器的日志
🚀单元测试基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等

数据报表


功能描述
🚀报表设计器支持数据报表、图形报表、打印设计等
🚀大屏设计器建设中... 拖拽式实现可视化数据大屏

🐨 技术栈

项目说明
yudao-dependenciesMaven 依赖版本管理
yudao-frameworkJava 框架拓展
yudao-server管理后台 + 用户 APP 的服务端
yudao-ui-admin管理后台的 Vue2 前端项目
yudao-ui-admin-vue3管理后台的 Vue3 前端项目
yudao-ui-admin-uniapp管理后台的 uni-app 多端项目
yudao-ui-app用户 APP 的 UI 界面
yudao-module-system系统功能的 Module 模块
yudao-module-member会员中心的 Module 模块
yudao-module-infra基础设施的 Module 模块
yudao-module-tool研发工具的 Module 模块
yudao-module-bpm工作流程的 Module 模块
yudao-module-pay支付系统的 Module 模块

后端

框架说明版本学习指南
Spring Boot应用开发框架2.7.6文档
MySQL数据库服务器5.7 / 8.0+
DruidJDBC 连接池、监控组件1.2.15文档
MyBatis PlusMyBatis 增强工具包3.5.2文档
Dynamic Datasource动态数据源3.6.0文档
Rediskey-value 数据库5.0 / 6.0
RedissonRedis 客户端3.18.0文档
Spring MVCMVC 框架5.3.24文档
Spring SecuritySpring 安全框架5.7.5文档
Hibernate Validator参数校验组件6.2.5文档
Flowable工作流引擎6.7.2文档
Quartz任务调度组件2.3.2文档
Knife4jSwagger 增强 UI 实现3.0.3文档
Resilience4j服务保障组件1.7.1文档
SkyWalking分布式应用追踪系统8.12.0文档
Spring Boot AdminSpring Boot 监控平台2.7.9文档
JacksonJSON 工具库2.13.3
MapStructJava Bean 转换1.5.3.Final文档
Lombok消除冗长的 Java 代码1.18.24文档
JUnitJava 单元测试框架5.8.2-
MockitoJava Mock 框架4.8.0-

管理后台 Vue2 前端

框架说明版本
VueJavaScript 框架2.7.14
Vue Element Admin后台前端解决方案-

管理后台 Vue3 前端

框架说明版本
VueVue 框架3.2.45
Vite开发与构建工具4.0.3
Element PlusElement Plus2.2.27
TypeScriptTypeScript4.9.4
piniavuex52.0.28
vue-i18n国际化9.2.2
vxe-tablevue最强表单4.3.7

管理后台 uni-app 跨端

框架说明版本
uni-app跨平台框架2.0.0
uni-ui基于 uni-app 的 UI 框架1.4.20

🐷 演示图

效果预览

dcf855a81e011fcefda99e39981efdcd.jpeg
首页
ad06d5e808a53a4e083f4513b345bb58.jpeg
令牌管理
d29bab8fdb87e64146109ac0b1c14100.jpeg
流程模型-设计
0ade5018dfd781645ac933468ca82b49.png
大屏设计


欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

c13fa3cd679981010272317b275d7291.png

已在知识星球更新源码解析如下:

938eb5a2635483ae50eb616cc598122f.jpeg

475732cb743a62e958ad5c755768a37e.jpeg

1749acd0a1b1126e3441bf9cfc48a321.jpeg

1c94dbdb7b8c7226f31c9ebe322c34ca.jpeg

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我的快速排序代码如下:def quicksort(arr): if len(arr) <= 1: return arr else: pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quicksort(left) + middle + quicksort(right)print(quicksort([3,6,8,10,1,2,1])) ### 回答2: 当然,请看下面是一个示例的快速排序代码: ```python def quicksort(arr): if len(arr) <= 1: return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quicksort(left) + middle + quicksort(right) # 示例用法 arr = [5, 2, 8, 3, 1] sorted_arr = quicksort(arr) print(sorted_arr) ``` 这段代码使用了快速排序算法来对给定的数组进行排序。首先,它会判断数组的长度,若长度小于等于1,则直接返回该数组(递归的终止条件)。然后,选择数组中间的元素作为基准元素(pivot),将数组分成小于基准的左部分、等于基准的中间部分和大于基准的右部分。接下来,通过递归调用对左右两部分再进行快速排序,并将排序好的左部分、中间部分和右部分依次连接起来,得到最终的排序结果。 在示例用法中,输入的数组为 [5, 2, 8, 3, 1],经过快速排序后,输出的排序结果为 [1, 2, 3, 5, 8]。 这段代码的时间复杂度为O(n log n),其中 n 表示数组的长度。它是一种常用且高效的排序算法。 ### 回答3: 当然,我很乐意与您分享我的快速排序代码。 以下是使用Python编写的快速排序算法示例: ```python def quick_sort(arr): if len(arr) <= 1: return arr else: pivot = arr[0] less = [x for x in arr[1:] if x <= pivot] greater = [x for x in arr[1:] if x > pivot] return quick_sort(less) + [pivot] + quick_sort(greater) # 测试代码 arr = [5, 2, 9, 1, 6, 8, 3] print("排序前:", arr) sorted_arr = quick_sort(arr) print("排序后:", sorted_arr) ``` 快速排序是一种高效的排序算法,通过选择一个基准元素(通常选取第一个元素),将序列分成两部分,一部分小于基准元素,一部分大于基准元素。然后再对这两部分进行递归排序,最后将它们合并在一起。 在我的代码中,我使用了递归方法来实现快速排序。首先,我选取列表的第一个元素作为基准元素,然后将比基准元素小的元素存储在一个新列表`less`中,将比基准元素大的元素存储在另一个新列表`greater`中。接着,递归地对`less`和`greater`进行快速排序,并将结果与基准元素合并起来,得到最终排序好的列表。 在我的示例中,我使用了一个简单的整数列表作为输入,并输出了排序前和排序后的结果。 希望这个代码示例可以帮助您理解快速排序算法的实现。如果您还有任何问题,请随时告诉我!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值