# csc管理系统开发框架 **Repository Path**: xyy010/csc-dev-framework ## Basic Information - **Project Name**: csc管理系统开发框架 - **Description**: 一款简单易用的后台管理系统开发框架。基于spring cloud微服务体系,整合了csc开发脚手架及RuoYi开源框架。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-08-10 - **Last Updated**: 2025-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CSC后台管理系统开发框架 ### 介绍 一款简单易用的后台管理系统开发框架。基于spring cloud微服务体系,以csc开发脚手架为基础,整合RuoYi开源框架的用户管理体系,作为后续业务开发的基础。 ### 框架参考 此框架整合了如下开源框架: 1. csc开发脚手架,参看:https://gitee.com/xyy010/csc.git 2. RuoYi开源框架,参看:https://gitee.com/y_project/RuoYi-Cloud.git 3. RuoYi-Flowable-Plus开源框架,参看:https://gitee.com/KonBAI-Q/ruoyi-flowable-plus.git ### 基础软件依赖 基础软件版本如下: - jdk 1.8.342 - redis 3.0.503 - mysql 8.0.23 - kafka 2.12-2.3.0 - docker 19.03.12 - maven 3.3.9 - nacos 2.0.0 使用过程中可根据需要自行调整版本。其中: - maven、jdk、redis、mysql、kafka **必须使用** - docker 根据需要 **选用** - nacos 作为微服务的注册与配置中心使用,可**根据需要**自行替换。 ### 工程重要目录简要说明 >正式使用之前请先对照说明,对工程有大致了解 1. sql  mysql的建表脚本目录。数据库创建完毕之后需要执行此目录下的脚本,否则应用包无法正常启动。 2. docker  jdk基础镜像制作脚本目录。使用提供的脚本制作jdk基础镜像,或者使用您已有的jdk镜像作为基础镜像。 3. build.bat  windows环境全工程编译打包文件。可根据需要修改或者增加linux环境需要的脚本文件。 4. build_image.bat  windows环境全工程构建docker镜像文件。可根据需要修改或者增加linux环境需要的脚本文件。 5. clean.bat  windows环境全工程清理文件。可根据需要修改或者增加linux环境需要的脚本文件。 6. pom.xml  maven构建定义文件。 7. xy-boot-util  基础依赖包,本工程下所有其它模块均需要引入。提供了公共常量、枚举、异常、常用工具类及公共代码。 8. xy-boot-web  web开发依赖包,所有需要提供http服务的子模块均需要引入。提供了web开发中的过程中的常用内容的抽象与封装。 - 提供了http请求全局异常捕获 - 提供了spring mvc全局配置 - 提供了全局的请求拦截器,用于添加traceId,方便后期的日志追踪 - 提供了全局feign client的全局拦截器,用于添加traceId,方便后期的日志追踪 - 提供了分页对分页查询的封装 - 提供了对http response响应结果的封装 - 提供了常用的http请求工具类 - 引入了swagger的依赖,可以对controller接口编写swagger文档 - 提供了http请求日志记录用的公共注解 - 应用接入kafka时,请求日志可以通过kafka保存到数据库 - 应用不接入kafka时,请求日志仅输出到日志文件 - 提供了service层日志记录用的公共方法 - 应用接入kafka时,请求日志可以通过kafka保存到数据库 - 应用不接入kafka时,请求日志仅输出到日志文件 9. xy-boot-db  数据库依赖包,所有需要连接数据库的模块均需要引入。 - 提供了mybatis plus的基础依赖,应用可以使用mybatis/mybatis plus进行开发 - 提供了对JdbcTemplete的封装,应用可以使用封装的数据库操作工具类进行开发 - 提供了对多数据源的封装,应用可以根据配置指定需要初始化的数据源 - 使用mybatis/mybatis plus进行开发时可以通过注解的方式切换数据源 - 使用封装的工具类开发时可以通过指定数据源id的方式切换数据源 - 源码方式集成了百度开源的UidGenerator,用于分布式id的生成 10. xy-boot-redis  redis依赖包,所有需要连接redis的模块均需要引入。 - 封装了常用的redis操作方法,并提供了redis操作工具类 - 支持多redis同时使用,应用可以根据配置指定需要初始化的redis - 使用redis操作工具类开发时,可以通过指定redis id的方式切换redis 11. xy-boot-kafka  kafka依赖包,所有需要连接kafka的模块均需要引入。 - 提供了kafka生产者及消费者的初始化连接方法 - 提供了kafka生产者的操作工具类,可以通过指定kafka id的方式切换kafka - 提供了kafka消费者业务处理service需要实现的公共接口 12. dynamic-gateway  基于Spring Cloud Gateway的微服务网关。 - 增加了请求过滤器,用于记录请求基本信息 - 增加了响应过滤器,用于记录响应结果 - 增加了异常过滤器,用于基于请求异常信息 - 开启了微服务自动发现,用于在微服务增加过程中不需要修改网关配置 13. exinterface-service  对外接口模块,用于系统统一提供给第三方系统调用接口的业务编码实现。 14. job-service  自动任务模块,基于quartz封装了自动任务服务,可满足中小系统的定时任务的需求。  后续将解决大型系统的定时任务调度需求。 15. logs-kfkconsumer  基于kafka的日志记录模块,用于把应用投递到kafka的日志信息记录到数据库。 - 支持通过@ServiceLog注解投递的controller层的日志消费 - 支持通过ServiceDetails类投递的service层的日志消费 16. ruoyi  Ruoyi后端管理系统,提供了系统的权限管理、系统参数配置、监控、代码生成工具等功能。 17. csc-ruoyi-ui  系统的前端页面。 18. flowable-service  flowable-service基于flowable引擎的工作流管理系统,提供了:流程在线设计、部署,提供了工作流中常用的会签、或签 委托、转办、退回、驳回、抄送、签收等功能。其中./bpmn/leave.BPMN,为简单的请假流程样例,可以直接导入流程设计,初步体验流工作流。 19. report-service  report-service为报表模块,以luckysheet@2.1.13为基准,改造后实现了报表数据填报采集功能。后续将完善采集数据的权限管理、查询、分析等相关内容。 ### 安装教程 1. 启动redis 2. 启动kafka并创建logs队列 3. 启动mysql创建ry-cloud(用于人员权限管理及公共配置,必须)、nacos(用于nacos,可与ry-cloud合并)、workflow(用于工作流,需要工作流时创建)、csc(公共业务库,必须)用户,分别执行对应的建表脚本。根据实际环境修改表配置: gg_pz_kafka、gg_pz_redis 4. 启动nacos,nacos需要连接mysql下创建的nacos用户,参看官网说明 5. 登录nacos根据实际环境修改服务配置 6. 按顺序启动服务端:logs-kfkconsumer--》exinterface-service--》job-service--》flowable-service--》report-service--》ruoyi-system--》dynamic-gateway 7. 启动前端:csc-ruoyi-ui,启动前修改vue.config.js文件中的服务端连接地址(对应dynamic-gateway的访问地址),否则无法访问服务端 ### 其它说明 1. 基于此脚手架开发的系统可以使用jar包的方式部署,也可以通过docker镜像的方式部署 2. 工程内提供的Dockerfile均经过验证,可根据需要自行调整 3. docker部署环境的安装及docker镜像构建环境的安装,需要根据实际情况自行解决,不同的项目、不同的组织要求不同,无法统一 4. 此框架以csc脚手架为基础整合RuoYi开源框架,整合过程中只保留了RuoYi的必要功能及代码 5. 特别感谢RuoYi对开源社区的贡献 ### 参与贡献 1. Fork 本仓库 develop 分支 2. 基于 develop 分支新建 develop_xxx 分支 3. 提交代码到 develop_xxx 分支 4. 新建 develop_xxx 分支到 develop 分支的 Pull Request