README.md 7.6 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

### 使用文档
夏天飘过的风's avatar
夏天飘过的风 已提交
13
##### [部署文档](https://blog.roncoo.com/article/1103554925858197505)
夏天飘过的风's avatar
夏天飘过的风 已提交
14 15

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

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

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

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

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

夏天飘过的风's avatar
更新  
夏天飘过的风 已提交
45
### 技术选型
夏天飘过的风's avatar
夏天飘过的风 已提交
46
| 技术框架                                                | 说明                                       | 版本                      
夏天飘过的风's avatar
夏天飘过的风 已提交
47 48 49 50 51 52 53 54
| ---------------------- | ---------------- | ----------------- |
| 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
夏天飘过的风 已提交
55
| Swagger                | 接口文档                                | 1.5.20
夏天飘过的风's avatar
夏天飘过的风 已提交
56
| Freemarker             | 模板引擎                                | 2.3.28
夏天飘过的风's avatar
夏天飘过的风 已提交
57 58 59
| Shiro                  | 权限框架                                | 1.4.0
| POI                    | 文档处理                                | 3.17
| Hutool                 | 通用工具类                             | 2.16.2
夏天飘过的风's avatar
夏天飘过的风 已提交
60 61 62 63 64 65

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

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

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

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

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

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

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

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

```
├─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
说明  
夏天飘过的风 已提交
105 106
│  ├─roncoo-education-server-admin -------------监控中心
│  │
夏天飘过的风's avatar
夏天飘过的风 已提交
107 108 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
│  ├─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
说明  
夏天飘过的风 已提交
135
└──└──└─*.sql----------------------------------项目SQL脚本:带有demo数据
夏天飘过的风's avatar
夏天飘过的风 已提交
136 137
```

夏天飘过的风's avatar
夏天飘过的风 已提交
138 139 140 141 142 143 144 145 146 147 148 149 150
### 加速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
更新  
夏天飘过的风 已提交
151
[官方地址:https://projectlombok.org/](https://projectlombok.org/)
夏天飘过的风's avatar
夏天飘过的风 已提交
152 153 154 155 156 157 158 159 160 161

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

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

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

夏天飘过的风's avatar
夏天飘过的风 已提交
164
### 官方QQ群(加群免费获取sql脚本)
夏天飘过的风's avatar
更新  
夏天飘过的风 已提交
165
<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
夏天飘过的风 已提交
166

夏天飘过的风's avatar
夏天飘过的风 已提交
167
## 项目推荐
夏天飘过的风's avatar
更新  
夏天飘过的风 已提交
168 169
##### 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)