README.md 7.7 KB
Newer Older
夏天飘过的风's avatar
夏天飘过的风 已提交
1
# 领课教育-领课网络在线教育系统
夏天飘过的风's avatar
夏天飘过的风 已提交
2 3

### 项目介绍
夏天飘过的风's avatar
夏天飘过的风 已提交
4
> 领课教育是基于领课团队多年的在线教育开发和运营经验打造出来的产品,致力于打造一个全行业都适用的分布式在线教育系统。系统采用Spring Cloud为核心框架,Eureka为注册中心,Config为配置中心,SBA为应用监控,Zipkin为链路监控。
夏天飘过的风's avatar
夏天飘过的风 已提交
5

夏天飘过的风's avatar
夏天飘过的风 已提交
6 7
##### 如果对你有用,请给个star!

夏天飘过的风's avatar
夏天飘过的风 已提交
8
### 其他工程
夏天飘过的风's avatar
夏天飘过的风 已提交
9 10
##### 前端工程(roncoo-education-web):[码云地址](https://gitee.com/roncoocom/roncoo-education-web) | [Github地址](https://github.com/roncoo/roncoo-education-web)
##### 配置工程(roncoo-education-config):[码云地址](https://gitee.com/roncoocom/roncoo-education-config) | [Github地址](https://github.com/roncoo/roncoo-education-config)
夏天飘过的风's avatar
夏天飘过的风 已提交
11 12

### 使用文档
L
liaoh 已提交
13
##### [项目介绍](https://blog.roncoo.com/article/1105321762337357826)
夏天飘过的风's avatar
夏天飘过的风 已提交
14
##### [部署文档](https://blog.roncoo.com/article/1103554925858197505)
L
liaoh 已提交
15
##### [常见问题](https://blog.roncoo.com/article/1105309620724858882)
夏天飘过的风's avatar
夏天飘过的风 已提交
16 17

### 演示地址
夏天飘过的风's avatar
修改  
夏天飘过的风 已提交
18 19
##### 前端演示地址:[领课教育](http://edu.os.roncoo.com/)
##### 后台演示地址:[管理后台](http://roncoo.vicp.net/boss/login)
夏天飘过的风's avatar
修改  
夏天飘过的风 已提交
20

夏天飘过的风's avatar
修改  
夏天飘过的风 已提交
21 22 23 24 25 26 27
### 商业合作
* 如果想定制开发,我们提供有偿服务支持
* 如果想运营平台,我们云平台提供平台入驻
* 商业合作联系QQ:297115770 
* 商业合作联系QQ:513781560 
* 官网地址:[http://www.roncoo.net](http://www.roncoo.net/index.html)

夏天飘过的风's avatar
夏天飘过的风 已提交
28 29 30 31 32 33
### 升级说明:2.0.0 版本
* 集成了链路监控:roncoo-education-server-zipkin
* 新增站内信功能,推荐课程功能,发送验证码功能,密码修改功能
* 升级swagger-models版本,因为1.5.20有个bug
* 更换Swagger的UI为swagger-bootstrap-ui

夏天飘过的风's avatar
夏天飘过的风 已提交
34
### 功能介绍
夏天飘过的风's avatar
更新  
夏天飘过的风 已提交
35 36 37 38 39 40 41 42
* 权限管理功能,多角色多用户自定义配置
* 系统配置功能,自定义进行站点配置及第三方参数配置
* 讲师管理功能,讲师申请入驻,后台具有审核功能
* 课程管理功能,讲师管理自有课程,后台具有审核功能
* 用户登录功能,同一时间只允许同一个账号在同一个地方登录,防止账号共享
* 广告管理功能,后台自定义广告设置,增加营销效果
* 支付功能,系统无缝集成了龙果支付

夏天飘过的风's avatar
夏天飘过的风 已提交
43 44 45 46
### TODO
* 动态更新配置(spring cloud bus + kafka + spring cloud config)
* 日志收集统计(kafka + Elasticsearch + Logstash + Kibana)

夏天飘过的风's avatar
更新  
夏天飘过的风 已提交
47
### 技术选型
夏天飘过的风's avatar
夏天飘过的风 已提交
48
| 技术框架                                                | 说明                                       | 版本                      
夏天飘过的风's avatar
夏天飘过的风 已提交
49 50 51 52 53 54 55 56
| ---------------------- | ---------------- | ----------------- |
| Spring IO Platform     | 版本维护                                | Cairo-SR7
| Spring Boot            | 核心技术框架                        | 2.0.8.RELEASE
| spring-cloud-netflix   | 微服务框架                            | 2.0.2.RELEASE
| spring-cloud-config    | 配置中心                                | 2.0.2.RELEASE
| spring-cloud-sleuth    | 服务跟踪                                | 2.0.2.RELEASE
| Mybatis                | 持久层框架                             | 3.4.5
| Druid                  | 数据连接池                            | 1.1.12
夏天飘过的风's avatar
夏天飘过的风 已提交
57
| Swagger                | 接口文档                                | 1.5.20
夏天飘过的风's avatar
夏天飘过的风 已提交
58
| Freemarker             | 模板引擎                                | 2.3.28
夏天飘过的风's avatar
夏天飘过的风 已提交
59 60 61
| Shiro                  | 权限框架                                | 1.4.0
| POI                    | 文档处理                                | 3.17
| Hutool                 | 通用工具类                             | 2.16.2
夏天飘过的风's avatar
夏天飘过的风 已提交
62 63 64 65 66 67

### 软件需求
* JDK 1.8+
* MySQL 5.6+
* Redis 3.0+
* Maven 3.0+
68
* ElasticSearch 6.5.0+
夏天飘过的风's avatar
夏天飘过的风 已提交
69

夏天飘过的风's avatar
夏天飘过的风 已提交
70
### 项目截图
夏天飘过的风's avatar
夏天飘过的风 已提交
71 72
![SBA](/doc/images/img_01.png)
![zipkin](/doc/images/img_02.png)
夏天飘过的风's avatar
夏天飘过的风 已提交
73

夏天飘过的风's avatar
夏天飘过的风 已提交
74
### 流程图说明
夏天飘过的风's avatar
夏天飘过的风 已提交
75 76 77
* 系统架构图
![系统架构图](/doc/images/01.jpg)

夏天飘过的风's avatar
夏天飘过的风 已提交
78
* 课程播放流程
夏天飘过的风's avatar
夏天飘过的风 已提交
79
![课程播放流程](/doc/images/course.png)
夏天飘过的风's avatar
夏天飘过的风 已提交
80 81

* 播放鉴权流程
夏天飘过的风's avatar
夏天飘过的风 已提交
82
![播放鉴权流程](/doc/images/course_callback.png)
夏天飘过的风's avatar
夏天飘过的风 已提交
83 84

* 课程下单流程
夏天飘过的风's avatar
夏天飘过的风 已提交
85
![课程下单流程](/doc/images/pay.png)
夏天飘过的风's avatar
夏天飘过的风 已提交
86 87

* 下单回调流程
夏天飘过的风's avatar
夏天飘过的风 已提交
88 89
![下单回调流程](/doc/images/pay_callback.png)

夏天飘过的风's avatar
夏天飘过的风 已提交
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
### 项目结构

```
├─roncoo-education -----------------------------父项目,公共依赖
│  │
│  ├─roncoo-education-course -------------------课程模块,包括订单模块
│  │  │
│  │  ├─roncoo-education-course-common ---------共用工程
│  │  │
│  │  ├─roncoo-education-course-feign ----------接口工程,供其他工程模块使用
│  │  │
│  │  └─roncoo-education-course-service --------服务工程,其他接口服务
│  │
│  ├─roncoo-education-crontab-plan -------------定时任务,处理过期订单和统计等
│  │
│  ├─roncoo-education-gateway-api --------------网关工程
│  │
夏天飘过的风's avatar
说明  
夏天飘过的风 已提交
107 108
│  ├─roncoo-education-server-admin -------------监控中心
│  │
夏天飘过的风's avatar
夏天飘过的风 已提交
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
│  ├─roncoo-education-server-config ------------配置中心
│  │
│  ├─roncoo-education-server-eureka ------------注册中心
│  │
│  ├─roncoo-education-system -------------------系统基础工程
│  │  │
│  │  ├─roncoo-education-system-common ---------共用工程
│  │  │
│  │  ├─roncoo-education-system-feign ----------接口工程,供其他工程模块使用
│  │  │
│  │  └─roncoo-education-system-service --------服务工程,其他接口服务
│  │
│  ├─roncoo-education-user ---------------------用户工程
│  │  │
│  │  ├─roncoo-education-user-common -----------共用工程
│  │  │
│  │  ├─roncoo-education-user-feign ------------接口工程,供其他工程模块使用
│  │  │
│  │  └─roncoo-education-user-service ----------服务工程,其他接口服务
│  │
│  ├─roncoo-education-web-boss -----------------管理后台工程
│  │
│  ├─doc
│  │  │
│  │  ├─images --------------------------------项目演示截图
│  │  │
│  │  ├─lombok.jar ----------------------------Eclipse使用,放到Eclipse的根目录即可
│  │  │
夏天飘过的风's avatar
说明  
夏天飘过的风 已提交
137
└──└──└─*.sql----------------------------------项目SQL脚本:带有demo数据
夏天飘过的风's avatar
夏天飘过的风 已提交
138 139
```

夏天飘过的风's avatar
夏天飘过的风 已提交
140 141 142 143 144 145 146 147 148 149 150 151 152
### 加速maven构建
在maven的settings.xml 文件里配置mirrors的子节点,添加如下mirror
```
<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
```

### Lombok使用
Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。
夏天飘过的风's avatar
更新  
夏天飘过的风 已提交
153
[官方地址:https://projectlombok.org/](https://projectlombok.org/)
夏天飘过的风's avatar
夏天飘过的风 已提交
154 155 156 157 158 159 160 161 162 163

#### 1. Eclipse使用方法
把lombok.jar放入Eclipse的根目录,在eclipse.ini配置文件的最后加上
```
-javaagent:lombok.jar 
```

#### 2. IntelliJ IDEA使用方法
安装插件,如图所示

夏天飘过的风's avatar
夏天飘过的风 已提交
164
![](/doc/images/lombok1.png)
夏天飘过的风's avatar
夏天飘过的风 已提交
165

夏天飘过的风's avatar
夏天飘过的风 已提交
166
### 官方QQ群(加群免费获取sql脚本)
夏天飘过的风's avatar
更新  
夏天飘过的风 已提交
167
<a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=7d1b7f1a78715320d09ed841c66d6bf0fa7b9105964cc327e9483e459b46abd4"><img border="0" src="https://pub.idqqimg.com/wpa/images/group.png" alt="在线教育系统-领课" title="在线教育系统-领课"> 826617734</a>
夏天飘过的风's avatar
夏天飘过的风 已提交
168

夏天飘过的风's avatar
夏天飘过的风 已提交
169
## 项目推荐
夏天飘过的风's avatar
更新  
夏天飘过的风 已提交
170 171
##### roncoo-recharge:[码云地址](https://gitee.com/roncoocom/roncoo-recharge) | [Github地址](https://github.com/roncoo/roncoo-recharge)
##### roncoo-jui-springboot:[码云地址](https://gitee.com/roncoocom/roncoo-jui-springboot) | [Github地址](https://github.com/roncoo/roncoo-jui-springboot)