{"id":14973005,"url":"https://github.com/u014427391/jeeplatform","last_synced_at":"2025-05-15T12:05:18.216Z","repository":{"id":38355649,"uuid":"89654412","full_name":"u014427391/jeeplatform","owner":"u014427391","description":"一款企业信息化开发基础平台，拟集成OA(办公自动化)、CMS(内容管理系统)等企业系统的通用业务功能  JeePlatform项目是一款以SpringBoot为核心框架，集ORM框架Mybatis，Web层框架SpringMVC和多种开源组件框架而成的一款通用基础平台，代码已经捐赠给开源中国社区","archived":false,"fork":false,"pushed_at":"2024-08-26T15:54:51.000Z","size":6191,"stargazers_count":1427,"open_issues_count":16,"forks_count":572,"subscribers_count":115,"default_branch":"master","last_synced_at":"2025-04-11T21:48:50.911Z","etag":null,"topics":["activiti","ajax","aop","druid","dubbo","freemarker","javaee","jquery","lucene","mybatis","poi","redis","restful","shiro","solr","springboot","springmvc","ssi","thymeleaf","zookeeper"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/u014427391.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-28T01:17:07.000Z","updated_at":"2025-04-07T03:56:50.000Z","dependencies_parsed_at":"2025-01-16T10:05:39.610Z","dependency_job_id":"c3f1cedf-5c94-43a5-bf16-5062a89ae9b7","html_url":"https://github.com/u014427391/jeeplatform","commit_stats":{"total_commits":313,"total_committers":6,"mean_commits":"52.166666666666664","dds":0.5686900958466454,"last_synced_commit":"89704a66dfd4da4769dd9cc2635d2871acb62e80"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/u014427391%2Fjeeplatform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/u014427391%2Fjeeplatform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/u014427391%2Fjeeplatform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/u014427391%2Fjeeplatform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/u014427391","download_url":"https://codeload.github.com/u014427391/jeeplatform/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254337612,"owners_count":22054253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["activiti","ajax","aop","druid","dubbo","freemarker","javaee","jquery","lucene","mybatis","poi","redis","restful","shiro","solr","springboot","springmvc","ssi","thymeleaf","zookeeper"],"created_at":"2024-09-24T13:47:55.708Z","updated_at":"2025-05-15T12:05:13.201Z","avatar_url":"https://github.com/u014427391.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/crossoverJie/JCSprout.svg?branch=master)](https://travis-ci.org/crossoverJie/jeeplatform) [![Join the chat at https://gitter.im/jeeplatform/community](https://badges.gitter.im/jeeplatform/community.svg)](https://gitter.im/jeeplatform/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n## 一、项目简介 \nJeePlatform项目是一款以SpringBoot为核心框架，集ORM框架Mybatis，Web层框架SpringMVC和多种开源组件框架而成的一款通用基础平台，代码已经捐赠给开源中国社区：https://www.oschina.net/p/jeeplatform\n\n代码结构图：\n```\n├─jeeplatform----------------------------父项目，公共依赖\n│  │\n│  ├─jeeplatform-admin--------------------------基础管理系统\n│  │\n│  ├─jeeplatform-cms-----------------------内容管理系统\n│  │\n│  ├─jeeplatform-common--------------------------通用工程\n│  │\n│  ├─jeeplatform-oa--------------------------协调办公系统\n|  |\n|  |─jeeplatform-provider-----------------------平台服务中心\n│  │\n│  ├─jeeplatform-provider-api-----------------------平台服务API\n|  |\n│  ├─jeeplatform-sso-cas-----------------------CAS单点登录服务端\n│  │\n│  ├─jeeplatform--sso-oauth2---------------OAuth2.0单点登录服务端\n│  │ \n\n```\n\n## 二、系统设计 \n### 系统管理(模块名称jeeplatform-admin) \n管理系统登录页面\nps:登录链接一般为：http://127.0.0.1:8080/jeeplatform/login\n![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/管理系统登录页面.png)\n\n管理系统主页前端，可以适配移动端页面\n![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/适配移动端.png)\n\n管理系统主页采用开源前端模板，具有换肤功能\n![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/系统主页墨绿主题.png)\n\n![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/系统主页清新主题.png)\n\n管理系统主页，获取用户具有的权限，显示菜单\n![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/管理系统主页.png)\n\n角色进行授权，只有超级管理员才具有权限\n![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/角色授权.png)\n\n角色进行配置，可以学习一下RBAC(基于角色的权限控制)\n![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/角色配置.png)\n\n使用JavaEmail插件实现邮件发送，记得需要开启SSl验证\n![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/发送邮件.png)\n\n### OA管理系统(待开发)\n接入CAS Server实现单点登录\n### CMS管理系统(待开发)\n暂时接入Oauth2.0实现的单点登录系统\n\n## 三、关键技术\n### CAS单点登录基础(模块名称jeeplatform-sso-cas)(功能修整中)\n\u003e 项目采用CAS实现单点登录，单点登录集群搭建可以参考博客：\n\u003e http://blog.csdn.net/u014427391/article/details/78653482\n\u003e 项目单点登录：使用nginx作为负载均衡，使用redis存储tomcat session，来实现集群中tomcat session的共享，使用redis作为cas ticket的仓库，来实现集群中cas ticket的一致性。OA已经对接CAS，admin工程暂时不对接CAS\n\n\n图来自官网，这里简单介绍一下，从图可以看出，CAS支持多种方式的认证，一种是LDAP的、比较常见的数据库Database的JDBC，还有Active Directory等等；支持的协议有Custom Protocol 、 CAS 、 OAuth 、 OpenID 、 RESTful API 、 SAML1.1 、 SAML2.0 等\n\n![这里写图片描述](https://images.gitee.com/uploads/images/2020/0517/212349_a195821a_355133.png)\n\n![这里写图片描述](https://images.gitee.com/uploads/images/2020/0517/212349_384ef37d_355133.png)\n\n单点登录集群方案如图\n![Image text](https://gitee.com/362330721/jeeplatform/raw/master/screenshot/单点登录集群.png)\n\n### OAuth2.0单点登录基础(模块名称jeeplatform-sso-oauth2)(功能修整中)\n\n![在这里插入图片描述](https://images.gitee.com/uploads/images/2020/0517/212350_327aefca_355133.png)\n\n### SpringBoot集成Redis缓存处理(Spring AOP实现)\n先从Redis里获取缓存,查询不到，就查询MySQL数据库，然后再保存到Redis缓存里，下次查询时直接调用Redis缓存，详情参考博客：[链接](https://blog.csdn.net/u014427391/article/details/78799623)\n\n![这里写图片描述](http://img.blog.csdn.net/20171214104250995?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDQyNzM5MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)\n\n可以看到Redis里保存到了缓存\n\n![这里写图片描述](http://img.blog.csdn.net/20171214104303308?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDQyNzM5MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)\n\n## 四、业务方案 \n### 系统管理通用功能 \n- [ ] 单点登录: OAuth2.0+JWT单点登录/CAS单点登录\n- [x] 用户管理: 系统用户\t\n- [x] 角色管理: 按照企业系统职能进行角色分配，每个角色具有不同的系统操作权限\t\n- [x] 权限管理: 权限管理细分到系统菜单权限\n- [ ] 在线管理：管理在线用户，可以强制下线\n- [x] 菜单管理：系统可以配置系统菜单，并分配不同的权限\t\n- [ ] 报表统计：数据报表、用户分析\n- [x] 系统监控：数据库等方面监控(采用Druid提供的)\n- [x] 在线文档：SwaggerUI API在线文档管理\n- [x] 通用接口：系统邮件发送功能、Excel报表功能\n### OA系统通用功能(待开发) \n- [x] 单点登录: CAS单点登录\n- [ ] 考勤管理：请假流程\n- [ ] 人事管理：机构管理、部门管理、员工管理\n\n### CMS系统通用功能(待开发) \n- [x] 单点登录: OAuth2.0+JWT单点登录\n- [ ] 信息管理：文章管理、文章审核\n...\n\n## 五、技术方案\n### 后台技术 \n* 工作流引擎：Activiti5(待定)\n* ORM框架：Mybatis\n* Web框架：SpringMVC\n* 核心框架：SpringBoot\n* 任务调度：Spring Task(待定)\n* 权限安全：Apache Shiro、Spring Security\n* 全文搜索引擎：Lucene(待定)\n* 模板引擎：JSP(还没使用Thymeleaf，前端需要重构)\n* 服务器页面包含技术：SSI(待定)\n* 网页即时通讯：websocket\n* 连接池：Druid（阿里开源）\n* 日志处理：SLF4J(日志门面框架)、logback\n* 缓存处理：Redis\n* Excel表处理：POI\n\n### 前端技术 \n* 文件上传：JQuery uploadify\n* 树形结构：EasyUI Tree\n* 日期插件：JQuery Date\n* 弹窗框架：zDialog\n* Cookie保存：JQuery Cookie\n* 富文本编辑器：Baidu UEDitor\n* 前端框架：Twitter Bootstrap\n\n## 六、常见问题\n运行jeeplatform打开页面404，如果是用idea的，就可以edit configurations-\u003econfiguration-\u003eedit working directory设置为：$MODULE_DIR$\n\n## 七、版本说明\n* master版本\n主干版本，实现简单的权限管理，单点登录方案有CAS和OAuth2.0+JWT两种方案，admin暂时没接单点，oa工程对接cas，cms对接OAuth2.0实现单点登录，微服务只是做了个demo，还没进行项目服务处理，所以并没有merge代码\n* dev版本\ndev版本代码和master分支基本一致\n* 1.0.0版本\n基础版，基本实现简单的权限管理，功能还需改善，权限控制还需要进行细粒度控制\n\n* 1.1.0版本\n进行单点登录对接实验的版本，拟采用两种方案，CAS实现的单点登录和OAuth2.0+JWT单点登录，admin工程暂时还没对接，oa工程对接CAS，cms工程对接OAuth2.0\n\n## 八、项目技术博客介绍 \n为了帮助学习者更好地理解代码，下面给出自己写的一些博客链接\n\n### Java框架\n* [基于RBAC模型的权限系统设计](http://blog.csdn.net/u014427391/article/details/78889378)\n* [Spring Data Jpa实现分页](http://blog.csdn.net/u014427391/article/details/77434664)\n* [SpringMVC+ZTree实现树形菜单权限配置](https://blog.csdn.net/u014427391/article/details/78889378)\n* [企业信息化基础平台项目介绍](https://blog.csdn.net/u014427391/article/details/78867439)\n* [基于Shiro的登录验证功能实现](http://blog.csdn.net/u014427391/article/details/78307766)\n\n### SpringBoot\n我的Springboot系列博客可以参考我的专栏：[SpringBoot系列博客](https://blog.csdn.net/u014427391/category_9195353.html)\n* [SpringBoot热部署配置](https://smilenicky.blog.csdn.net/article/details/89765909)\n* [SpringBoot集成Redis实现缓存处理](http://blog.csdn.net/u014427391/article/details/78799623)\n* [SpringBoot profles配置多环境](https://smilenicky.blog.csdn.net/article/details/89792248)\n* [SpringBoot集成Swagger2](https://smilenicky.blog.csdn.net/article/details/90706219)\n\n### RPC框架\n* [Dubbo服务注册与发现](https://smilenicky.blog.csdn.net/article/details/96754952)\n\n### 单点登录\n* [ 单点登录集群安装教程](http://blog.csdn.net/u014427391/article/details/78653482)\n* [CAS单点登录系列之原理简单介绍](https://blog.csdn.net/u014427391/article/details/82083995)\n* [CAS系列之使用cas overlay搭建服务端（一）](https://blog.csdn.net/u014427391/article/details/105818468)\n* [CAS 5.3.1系列之支持JDBC认证登录（二）](https://blog.csdn.net/u014427391/article/details/105603895)\n* [CAS 5.3.1系列之自定义JDBC认证策略（三）](https://blog.csdn.net/u014427391/article/details/105820486)\n* [CAS 5.3.1系列之自定义Shiro认证策略（四）](https://blog.csdn.net/u014427391/article/details/105820586)\n\n### Docker笔记\n* [Docker简介和安装教程](https://smilenicky.blog.csdn.net/article/details/97613891)\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fu014427391%2Fjeeplatform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fu014427391%2Fjeeplatform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fu014427391%2Fjeeplatform/lists"}