Showing
1 changed file
with
363 additions
and
0 deletions
课程内容平台/课程内容平台介绍.md
0 → 100644
| 1 | +#service_wudaokou | ||
| 2 | + | ||
| 3 | +**模块功能划分** | ||
| 4 | + | ||
| 5 | +* 配置文件管理 | ||
| 6 | +* 跑目录 | ||
| 7 | +* 上传书 | ||
| 8 | +* 打标签 | ||
| 9 | +* 标签展示 | ||
| 10 | +* 封面优化 | ||
| 11 | +* 开放书 | ||
| 12 | +* 内容标注 | ||
| 13 | + | ||
| 14 | +**简单介绍** | ||
| 15 | + | ||
| 16 | +1. 配置文件管理、跑目录、上传书对应的包为cn.boxfishedu.local,对应的数据源为本地100数据源; | ||
| 17 | +2. 打标签、标签展示、开放书、内容标注对应的包为cn.boxfishedu.cloud.*,对应的数据源为cloud数据源; | ||
| 18 | +3. 数据源的配置在包cn.boxfishedu.datasource.*下; | ||
| 19 | +4. 封面优化为一个简单的springMVC,不牵扯数据库。 | ||
| 20 | + | ||
| 21 | +**详细说明** | ||
| 22 | + | ||
| 23 | +__配置文件管理__ | ||
| 24 | + | ||
| 25 | + 包cn.boxfishedu.local.tagmodel | ||
| 26 | + >流程介绍 | ||
| 27 | + 界面第一次加载较慢,是因为会去加载左边罗列的属性标签信息,初次是会去github里download并缓存起来,与属性加载相关的类有cn.boxfishedu.config.JsonAddress和cn.boxfishedu.config.JsonController | ||
| 28 | + a. 新增配置文件 | ||
| 29 | + a1.程序首先去扫描100服务器上的/share/svn路径下的所有书,然后展示在前端的弹出层里供用户选择 | ||
| 30 | + a2.选择要为哪个书创建配置文件并确认后,程序会去100服务器上的/share/tagWuDaoKou看有没有以书名为配置文件名的文件,有则删除,然后重建. | ||
| 31 | + a3. 然后扫描对应书下的所有课,并将其部分信息写入到ini文件里,文件创建完成 | ||
| 32 | + b. 查看配置文件 | ||
| 33 | + b1. 程序首先去查询100数据库上的book_has_config_wudaokou表,并将其信息展示在前端的弹出层 | ||
| 34 | + b2. 用户选择要看的配置文件传给后台,后台会去指定路径下找到文件并解析返回给前端展示 | ||
| 35 | + c. 保存 | ||
| 36 | + c1.用户添加到界面的属性通过保存会写入到ini文件里 | ||
| 37 | + d. 更新配置文件 | ||
| 38 | + d1. 首先需要通过查看配置文件找到对应的文件并展示在界面上 | ||
| 39 | + d2. 然后传入当前的ini文件路径到服务器,服务器会去解析当前的ini文件并将属性保存在内存里,然后将文件清空,接着扫描改配置文件对应的书下的所有课并将其写入到对应的ini文件,继而将前面内存保存的属性填充到文件对应的课下面,这样便完成了配置文件的更新 | ||
| 40 | + | ||
| 41 | + 类cn.boxfishedu.local.tagmodel.FileController | ||
| 42 | + | ||
| 43 | + * _接口_:新增配置文件_接口_ . | ||
| 44 | + _url_:/file/creation post请求. | ||
| 45 | + _参数_: **fileName** 要创建的ini文件名,一般为书名. | ||
| 46 | + _返回值_:状态码 200,ini文件的路径 | ||
| 47 | + | ||
| 48 | + * _接口_:获取100服务器上指定路径下所有的文件夹列表. | ||
| 49 | + _url_:/file/config/list get请求. | ||
| 50 | + _参数_: **root_path** 默认为/share/svn. | ||
| 51 | + _返回值_:{"folder":["/share/svn/人教2012版七下","人教2012版七下"]} | ||
| 52 | + | ||
| 53 | + * _接口_:查看配置文件. | ||
| 54 | + _url_:/file/config/analyse get请求. | ||
| 55 | + _参数_: **config_path** 100服务器上ini文件路径. | ||
| 56 | + _返回值_:bookName:人教PEP三上 U1|cover:cover/人教PEP三上 U1.jpg|catalogName:TEXTBOOK|difficulty:1|src:/share/svn/人教PEP三上 U1|relationMaterial:PEP版-三上-U1|fitAge:成人|catalogs:!小学英语|bundleName:PEP版|bundleOrder:1|\^\^courseName:Function_如何询问名字?|cover:cover/304.Function_如何询问名字?.jpg|courseType:Function|src:/share/svn/人教PEP三上 U1/304.Function_如何询问名字?.xlsx| | ||
| 57 | + | ||
| 58 | + * _接口_:保存ini文件属性. | ||
| 59 | + _url_:/file/write post请求. | ||
| 60 | + _参数_: **properties** 属性字符串, **filename** ini文件名, **old_book_name** 旧ini文件(非必须). | ||
| 61 | + _返回值_:success 成功 failed 失败 | ||
| 62 | + | ||
| 63 | + * _接口_:更新配置文件 . | ||
| 64 | + _url_:/file/update post请求. | ||
| 65 | + _参数_: **path** ini文件路径. | ||
| 66 | + _返回值_:状态码200 | ||
| 67 | + | ||
| 68 | + 类cn.boxfishedu.local.tagmodel.BookHasConfigController | ||
| 69 | + | ||
| 70 | + * _接口_:获取ini配置文件列表. | ||
| 71 | + _url_:/bookHasConfig get请求. | ||
| 72 | + _参数_:无. | ||
| 73 | + _返回值_:[ | ||
| 74 | + ["/share/newTag/人教PEP三上 U1.ini","人教PEP三上 U1"],["/share/newTag/人教PEP三上 U2.ini","人教PEP三上 U2"] | ||
| 75 | + ] | ||
| 76 | + * _接口_:获取所有bundleName. | ||
| 77 | + _url_:/bookHasConfig/bundleName get请求. | ||
| 78 | + _参数_:无. | ||
| 79 | + _返回值_:[ | ||
| 80 | + [298,"牛津上海版"], | ||
| 81 | + [98,"牛津粤教版"] | ||
| 82 | + ] | ||
| 83 | + | ||
| 84 | + * _接口_:根据bundleName获取列表. | ||
| 85 | + _url_:/bookHasConfig/bundle/list get请求. | ||
| 86 | + _参数_: **bundleName** 强序名称 | ||
| 87 | + _返回值_:[{ | ||
| 88 | +"id":615, | ||
| 89 | +"name":"Level 4_Examination1", | ||
| 90 | +"config":"/share/tagWuDaoKou/Level 4_Examination1.ini", | ||
| 91 | +"bundleName":"examination", | ||
| 92 | +"bundleOrder":1, | ||
| 93 | +"courseSum":3, | ||
| 94 | +"maxBundleOrder":0, | ||
| 95 | +"createTime":1476438562000, | ||
| 96 | +"updateTime":1476439503000 | ||
| 97 | +}] | ||
| 98 | + | ||
| 99 | + 类cn.boxfishedu.local.tagmodel.BookHasConfigController | ||
| 100 | + * _接口_:获取带叹号的分类列表. | ||
| 101 | + _url_:/bookhascatalogs. | ||
| 102 | + _参数_:无. | ||
| 103 | + _返回值_:{ | ||
| 104 | + "one": | ||
| 105 | + ["!初中英语","!小学英语","!成人英语"], | ||
| 106 | + "two": | ||
| 107 | + ["!!PEP版","!!TOEFL","!!一句话英语新闻","!!人教版","!!人教版定制","!!仁爱版","!!八年级下","!!北京版","!!北京版一起","!!北师版"], | ||
| 108 | + "three": | ||
| 109 | + ["!!!长难句突破","!!!阅读","!!!高一上","!!!高三上","!!!高中","!!!高二上","!!!高级听读","!!!高考词汇","!!!高考阅读"]} | ||
| 110 | + | ||
| 111 | +__跑目录__ | ||
| 112 | + | ||
| 113 | + 包cn.boxfishedu.local.rundirectory | ||
| 114 | + 流程介绍 | ||
| 115 | + a. 跑目录模块,服务调用采用的websocket连接方式,websocket配置在cn.boxfishedu.local. | ||
| 116 | + pub.config里. | ||
| 117 | + b. 跑目录以书为单位,用户可选择跑一本书也可选择批量跑 | ||
| 118 | + c. 输入相关书名,程序会去book_has_config_wudaokou表搜索到书对应的INI文件的路径并展示的前端界面. | ||
| 119 | + d. 用户勾选要跑的书,确定后会将对应的INI文件路径传到服务端,后台会根据这些路径找到对应的INI文件并解析为指定的Map结构 | ||
| 120 | + e. 进一步,程序会将Map结构按照相应的逻辑写入book表、book_section表、namespace_has_book表、book_has_course_catalog表和book_has_catalogs表,同时会将课程对应的封面重命名该封面的MD5值的名字并写入100服务器的/share/data/picture文件下的对应路径中,课程封面的原始位置在对应的INI文件里有写。这一步的操作在cn.boxfishedu.local.rundirectory.service.SourceManager类里执行 | ||
| 121 | + f. 每跑一次目录,书不会被删除,但是书下面的课程对应的数据库记录,也就是book_section中的记录会被全部删掉,重新写入 | ||
| 122 | + d. 单课封面的大小不能超过1M | ||
| 123 | + | ||
| 124 | +__核心类详情__ | ||
| 125 | + cn.boxfishedu.local.pub.utils.AnalyseIniFileUtil | ||
| 126 | + 功能:解析INI文件为map结构 | ||
| 127 | + cn.boxfishedu.local.rundirectory.service.SourceManager | ||
| 128 | + 方法: | ||
| 129 | + addBook() persist书到本地数据库 | ||
| 130 | + addNamespaceHasBook()将书加入到本地数据库渠道 1 中 | ||
| 131 | + addBookHasCourseCatalog() 保存书和目录关系 | ||
| 132 | + addBookSection() persist课到本地数据库 | ||
| 133 | + checkSum()获取课程封面的md5值 | ||
| 134 | + storeCover() 保存课程封面到/share/data/picture路径下并修改名为md5的封面 | ||
| 135 | + | ||
| 136 | + __上传书__ | ||
| 137 | + 包cn.boxfishedu.local.upload | ||
| 138 | + > 流程介绍 | ||
| 139 | + a. 上传书包括上传书下面的课程对应的json文件到多台服务器、课程所需的音频、视频、图片到OSS以及同步课程对应的本地数据库记录到正式数据库和测试数据库,相关表记录包括book、book_section、book_has_catalogs、namespace_has_book. | ||
| 140 | + b. 用户选择上传的种类:书或者单课,上传版:学生版或者老师版 | ||
| 141 | + c. 如果选择学生版,则程序只会去100服务器上的/share/json/student下找课程对应的json文件,并找出json文件里的视频音频图片并上传到OSS,然后同步该课程对应的本地数据库记录到正式数据库和测试数据库 | ||
| 142 | + d. 如果选择教师版,程序只会去100服务器上的/share/json/teacher下找json文件,后续操作相同. | ||
| 143 | + e. 两者都选则都上传. | ||
| 144 | + f. 上传完后,做了一次资源完整性检查,检查的方式是根据课程json里的MD5列表去批量执行下载看是否md5都能下载成功,检查只会检查中国节点 | ||
| 145 | + | ||
| 146 | + 类cn.boxfishedu.local.upload.web.UploadBookController | ||
| 147 | + * _接口_:查询要上传的书或课. | ||
| 148 | + _url_:/upload/resource get请求. | ||
| 149 | + _参数_: **type** 上传类型 **key** 查询关键字. | ||
| 150 | + _返回值_:[ | ||
| 151 | + { | ||
| 152 | + "id": 6581, | ||
| 153 | + "projectName": "广州口语考试1", | ||
| 154 | + "name": "广州口语考试1", | ||
| 155 | + "coverV2": "cover/广州口语考试1.jpg", | ||
| 156 | + "lastModified": 1482129270261, | ||
| 157 | + "type": "SYSTEM" | ||
| 158 | + }] | ||
| 159 | + | ||
| 160 | + * _接口_: 上传书或课到正式 | ||
| 161 | + _url_: /upload/resource post请求. | ||
| 162 | + _参数_: **id** 课程ID或书id, **version** 学生版或教师版. | ||
| 163 | + _返回值_:状态码200或400 | ||
| 164 | + | ||
| 165 | + * __打标签__ | ||
| 166 | + 包cn.boxfishedu.cloud.tagservice | ||
| 167 | + > 流程介绍 | ||
| 168 | + 打标签模块,采用的websocket连接方式,websocket配置在cn.boxfishedu.cloud.pub. | ||
| 169 | + config里 | ||
| 170 | + a. 用户输入搜搜索关键字,服务器端会根据关键字到本地100数据库的book_has_config_wudaokou表里找匹配的记录并返回给前端 | ||
| 171 | + b. 勾选要打标签的书、要打到mongo的哪个collection里,确认后,服务端会去100机器上的路径/share/tagWuDaoKou下去找INI文件并解析为Map结构 | ||
| 172 | + c. 接着,服务器会将Map结构中的书、课与目录的关系写入到云端mysql数据库的course_catalog表、book_has_course_catalog表、course_relation_catalog表。写之前程序会先将书对应的目录记录从book_has_course_catalog表中删除,然后写入;会将课对应的目录记录从course_relation_catalog表中删除,然后写入 | ||
| 173 | + d. 继而,程序会将课程所拥有的属性关系(包括课程类型、难度等)写入到云端mongo数据库的相应collection内:如果用户选择智能推荐,则写入到new_version_tag_v2;如果用户选择智能作业,则写入到course_tag_homework_wudaokou。但是不论选择哪一个,都会将记录往course_new里面写一份 | ||
| 174 | + e. 录入mongo的操作不会删除记录,只会覆盖或新增属性 | ||
| 175 | + | ||
| 176 | + __核心类详情__ | ||
| 177 | + 1. 类cn.boxfishedu.cloud.tagservice.service.AnalyseIniServce | ||
| 178 | + 功能:解析INI文件为Map结构,并将INI文件模块里的book模块的公共属性写到每一个课程模块的属性里。 | ||
| 179 | + | ||
| 180 | + 2. 类cn.boxfishedu.cloud.tagservice.service.TagService | ||
| 181 | + _成员变量_: | ||
| 182 | + * courseTypeListForBundle:代表此类型的课程必须有bundle | ||
| 183 | + * courseTypeListForUltimate:代表此类型的课程必须有英文名称 | ||
| 184 | + | ||
| 185 | + _方法_: | ||
| 186 | + | ||
| 187 | + * saveHomeworkTag()保存智能作业标签到mongo数据库course_tag_homework_wudaokou | ||
| 188 | + * saveRecommendTag()保存智能推荐和在线授课标签到mongo数据库new_version_tag_v2 | ||
| 189 | + * saveCourseNew()保存智能作业、智能推荐、在线授课标签到mongo数据库course_new | ||
| 190 | + 3. 类cn.boxfishedu.cloud.tagservice.service.BookHasCourseCatalogService | ||
| 191 | + * saveBookHasCourseCatalog()保存书和目录的关系 | ||
| 192 | + 4. 类cn.boxfishedu.cloud.tagservice.service.CourseCatalogService | ||
| 193 | + * saveCourseCatalog() 生成CourseCatalog | ||
| 194 | + 5. 类cn.boxfishedu.cloud.catalog.CatalogService | ||
| 195 | + * save()保存书和目录的关系以及课程和目录的关系 | ||
| 196 | + | ||
| 197 | +* **标签展示** | ||
| 198 | + | ||
| 199 | + 包cn.boxfishedu.cloud.tagshow | ||
| 200 | + > 流程介绍 | ||
| 201 | + a. 用户输入书名执行模糊查询,服务端依据书名去云端的mysql数据库的book表查询 | ||
| 202 | + b. 选择需要看哪里的标签,是智能作业还是智能推荐,点击相应的书,服务端会去mysql的book_has_course_catalog、course_catalog表找到书和目录的关系,到course_relation_catalog表找到课和目录的关系。 | ||
| 203 | + c. 同时程序也会去mongo里通过课程ID,到相应的collection里找到对应的标签 | ||
| 204 | + d. 程序会将目录、标签相关信息整合在一起返回给前端展示 | ||
| 205 | + e. 同时,用户也可以在查看的过程中修改相应的标签属性 | ||
| 206 | + 类cn.boxfishedu.cloud.tagshow.web.TagShowController | ||
| 207 | + * _接口_:根据关键字查询书 | ||
| 208 | + _url_:/tag-show/book get请求 | ||
| 209 | + _参数_: **key** 查询关键字 **type** 忽略此参数 | ||
| 210 | + _返回值_:[ | ||
| 211 | + { | ||
| 212 | + "id": 2805, | ||
| 213 | + "projectName": "人教七下 综合", | ||
| 214 | + "name": "人教七下 综合", | ||
| 215 | + "lastModified": 1445595498439 | ||
| 216 | + } | ||
| 217 | + ] | ||
| 218 | + | ||
| 219 | + * _接口_:查看课程标签详情 | ||
| 220 | + _url_:/tag-show/tag/detail get请求 | ||
| 221 | + _参数_: **bookId** 书ID **type** homework、recommend或spoken | ||
| 222 | + _返回值_:略 | ||
| 223 | + | ||
| 224 | + * _接口_:修改课程的标签信息 | ||
| 225 | + _url_:/tag-show/tag post请求 | ||
| 226 | + _参数_: **courseId** 课程ID **key** 标签key **value** 标签值 **tagType** 操作哪个mongoDB,枚举值 | ||
| 227 | + _返回值_:成功状态码 200 | ||
| 228 | + | ||
| 229 | +* **开放书** | ||
| 230 | + 包cn.boxfishedu.cloud.namespace | ||
| 231 | + > 流程介绍 | ||
| 232 | + 主要修改远端数据库的namespace、namespace_has_book两个表。将书和渠道1、13273两个关联,其中1是对外开放渠道,所有人多能看到;13273渠道为vip渠道,申请了vip认识的老师才能看到。 | ||
| 233 | + 另外namespace_has_book表中有两个字段student、teacher,代表是否学生或教师能看到这本书 | ||
| 234 | + | ||
| 235 | + 类cn.boxfishedu.cloud.namespace.web.NamespaceController | ||
| 236 | + | ||
| 237 | + * _接口_:根据关键字查询书 | ||
| 238 | + _url_:/namespace/book get请求 | ||
| 239 | + _参数_: **key** 关键字 | ||
| 240 | + _返回值_:[ | ||
| 241 | + { | ||
| 242 | + "id": 2805, | ||
| 243 | + "projectName": "人教七下 综合", | ||
| 244 | + "name": "人教七下 综合", | ||
| 245 | + "lastModified": 1445595498439 | ||
| 246 | + } | ||
| 247 | + ] | ||
| 248 | + | ||
| 249 | + * _接口_:开放书,开放渠道为1和13273 | ||
| 250 | + _url_:/namespace/all/open put请求 | ||
| 251 | + _参数_: **bookIds** 书ID数组 | ||
| 252 | + _返回值_:成功 状态码200 | ||
| 253 | + | ||
| 254 | +* **修改目录** | ||
| 255 | + 包cn.boxfishedu.cloud.catalog | ||
| 256 | + > 流程介绍 | ||
| 257 | + 修改目录主要修改表book_has_course_catalog和course_relation_catalog | ||
| 258 | + 类cn.boxfishedu.cloud.catalog.CatalogModifyController | ||
| 259 | + | ||
| 260 | + * _接口_:根据书名查询与该书相关联的目录分类 | ||
| 261 | + _url_:/catalog/detail | ||
| 262 | + _参数_: **book_name** 书名 | ||
| 263 | + _返回值_:[ | ||
| 264 | + { | ||
| 265 | + "book": { | ||
| 266 | + "id": 5592, | ||
| 267 | + "projectName": "Function 关切", | ||
| 268 | + "name": "Function 关切", | ||
| 269 | + "lastModified": 1476000233025 | ||
| 270 | + }, | ||
| 271 | + "courseCatalog": { | ||
| 272 | + "wholeName": "FUNCTION" | ||
| 273 | + } | ||
| 274 | + } | ||
| 275 | +] | ||
| 276 | + | ||
| 277 | + * _接口_:根据书ID修改书的目录分类 | ||
| 278 | + _url_:/catalog/modify post请求 | ||
| 279 | + _参数_: **book_id** 书ID **catalog** 目录(可能为多个,中间用,隔开) | ||
| 280 | + _返回值_:成功 状态码200 其他 状态码 400 | ||
| 281 | + | ||
| 282 | +* **优化封面** | ||
| 283 | + 类cn.boxfishedu.local.localcatalog.web.ImproveImageController | ||
| 284 | + | ||
| 285 | + * _接口_:优化封面 | ||
| 286 | + _url_:/improve/image get请求 | ||
| 287 | + _参数_: **fileselect[]** 待优化文件数组 | ||
| 288 | + _返回值_:浏览器会自动打包下载优化后的文件 | ||
| 289 | + | ||
| 290 | +###以上为tag项目的接口详细介绍,下面介绍其他的包下的类的作用 | ||
| 291 | + | ||
| 292 | +> ###包cn.boxfishedu.local.security | ||
| 293 | + * 主要是做用户登录验证相关 | ||
| 294 | + * 用户的用户名和密码保存在本地100数据库bebase的user_info_authentication表下 | ||
| 295 | + | ||
| 296 | +> ###包cn.boxfishedu.local.pub | ||
| 297 | + * 此包下的类只针对本地数据库做相应操作 | ||
| 298 | + * 类cn.boxfishedu.local.pub.utils.AnalyseIniFileUtil 作用是解析INI文件为Map结构以用来跑目录使用 | ||
| 299 | + * 类cn.boxfishedu.local.pub.wen.BookNameController 中的接口是根据书名查询书对应的INI配置文件,用于跑目录时输入关键字查询INI文件使用 | ||
| 300 | + | ||
| 301 | +> ###包cn.boxfishedu.datasource | ||
| 302 | + * 主要是双数据源的配置 | ||
| 303 | + * CloudPoolProperties是正式数据库属性,LocalPoolProperties是本地数据库属性 | ||
| 304 | + * GlobalDatasourceConfiguration 为初始化本地和正式数据源 | ||
| 305 | + * RepositoryCloudConfig为正式JPA数据仓库配置,RepositoryLocalConfig为本地JPA数据仓库配置 | ||
| 306 | + | ||
| 307 | +> ###包cn.boxfishedu.config | ||
| 308 | + * http包为http请求工具 | ||
| 309 | + * 类cn.boxfishedu.config.HomeController为页面切换以及登录接口相关 | ||
| 310 | + * 类cn.boxfishedu.config.JsonAddress 作用缓存新版配置文件页面左边展示的所有待选属性 | ||
| 311 | + * 类cn.boxfishedu.config.JsonController中的接口作用是根据关键字从JsonAddress中获取对应的属性集合 | ||
| 312 | + * 类cn.boxfishedu.config.SvnUpdate 作用的更新远端svn服务器的/share/svn下的文件到100机器的/share/svn下 | ||
| 313 | + * 类cn.boxfishedu.config.UserInfoFilter 作用记录每个用户请求行为 | ||
| 314 | + | ||
| 315 | +#service_delete_book | ||
| 316 | +> **功能介绍** | ||
| 317 | +> 1. 主要是删除云端mysql数据库的书、课以及云端mongo数据库的相关记录 | ||
| 318 | +> 2. 涉及的mysql表为book、book_section、namespace_has_book、book_has_catalogs、book_has_course_catalog、course_relation_catalog、user_has_book_node。 | ||
| 319 | +> 3. 涉及的mongo表为course_new、new_version_tag、new_version_tag_v2、course_tag_homework_wudaokou、spoken_quiz_attribute | ||
| 320 | +> 4. 删除界面有个用户名和密码,临时写死在js里了 | ||
| 321 | +> | ||
| 322 | +> **注意事项** | ||
| 323 | +> 1. 删除前首先和内容研发人员确认该书是否已经对外开放了,最好自己确认下!!确认的方式是通过书名去云端的mysql的book表找到书ID,然后去namespace_has_book表找对应的书ID是否存在namespace_id为1或者是13273的记录,1为对外开放,13273为vip渠道,如果没有,说明没有对外开放,可以删除。 | ||
| 324 | +> 2. 删除书或课的操作为直接操作云端,首先需要和内容研发确认好是否必须删除,同时删除的操作需要让 **邓倩或者切尔西** 知道这件事,不要删错。删完后务必自己通过mysql客户端查询一遍是否删除掉,是否删多了,同时通过mongo客户端查询对应的课程标签记录是否在mongo里已经删除。查询的方式是通过idea控制台有课程ID输出,通过ID来查询。确认好后告知内容研发。 | ||
| 325 | +> 3. 可能有些书我们不会对外开放,而是只是通过智能推荐或者在线授课或者智能作业的方式面向用户。这种情况下一般会看是否必须删除。如果必须删除,那么需要查询这些课有多少人学,查询的方式通过逯老师那边查询(回头你再问),之后再和逯老师商量是否要删除。 | ||
| 326 | +> 4. 如果一些课开放给了 **智能作业**,并且已经安排给了学生(是否已经安排通过逯老师那边能查到),那么在删除相关课的同时还需要通知逯老师你删除了哪些课, **务必记住你删除的这些课程ID** | ||
| 327 | + | ||
| 328 | +#service_classify_course | ||
| 329 | +>**功能介绍** | ||
| 330 | +>1. 模块为新旧课程对照 | ||
| 331 | +>2. 由于我们的课程每年会做一次更新,用户可能在上一年学过一次,为避免用户今年学到去年的翻新课程,增加了对照功能。 | ||
| 332 | +>3. 涉及的表为云端数据库的course_mapping_v2 | ||
| 333 | + | ||
| 334 | +#service_schedule_task | ||
| 335 | +>**功能介绍** | ||
| 336 | +>1. 模块为定时任务 | ||
| 337 | +>2. 定时备份今天100机器上的/share/backup/data下的文件到阿里云oss上,oss上的文件有效期为3天 | ||
| 338 | +>3. 定时检查云端mongo数据库的course_new、new_version_tag、new_version_tag_v2的标签完整性,如果不完整会发送邮件给切尔西和邓倩他们,邮件的配置在application.yml里 | ||
| 339 | +>4. **改进**:new_version_tag 已经不再使用,你可以将它改为course_tag_homework_wudaokou库并定时检查 | ||
| 340 | + | ||
| 341 | +#service_utils | ||
| 342 | +> **功能介绍** | ||
| 343 | +> 1. 模块为自己随手写的一些小功能,可能有些还可以用,下面是整理的一些还在使用的类并简单的说明了下。使用前建议先过一遍代码 | ||
| 344 | +> 2. 类com.boxfishedu.myUtils.AddTagProperty; | ||
| 345 | + | ||
| 346 | +>>这个类中的方法checkB()是检查云端mongo里存在记录,但是该记录的课程ID在云端mysql数据库已经不存在的所有课程。出现这个原因一般是由于删除课程的时候只删除了mysql没有删除mongo里的记录。此方法可以用来检查mongo和mysql的数据一致性, **此方法会将mongo里冗余的记录删除**,可以考虑先打印,确认后再删除 | ||
| 347 | + | ||
| 348 | +> 3.类com.boxfishedu.myUtils.CourseSizeTool | ||
| 349 | +>>这个类的作用是计算云端在线授课的课程大小并导出到文件中 | ||
| 350 | + | ||
| 351 | +> 4.类com.boxfishedu.myUtils.CourseStatistics | ||
| 352 | +>>这个类的作用是统计云端mongo里在线授课或智能推荐的课程数量,可以统计不同collection、不同课程类型、不同难度、不同渠道,需要修改参数 | ||
| 353 | + | ||
| 354 | +> 5.类com.boxfishedu.myUtils.CreateHomeWorkCollection | ||
| 355 | +>>这个类的作用是将云端mongo的course_tag_homework_wudaokou里的强序bundle全部按照本地mysql数据库的book_has_config_wudaokou表里的书顺序全部更新一遍。这个类可以指定只更新某一个bundleName下的所有课。一般用于内容研发说某个bundleName下的课程顺序不对,然后重新打标签了也还是不对的情况。 | ||
| 356 | + | ||
| 357 | +>6.类com.boxfishedu.myUtils.NamespaceHasBook | ||
| 358 | +>>作用是将某本书指定开放给某些人,一般内容研发有这个需求 | ||
| 359 | + | ||
| 360 | +>7.类com.boxfishedu.myUtils.NamespaceHasUser | ||
| 361 | +>>方法openInner是给指定用户开放内部权限; | ||
| 362 | +>>方法openVip是给指定用户开放vip权限; | ||
| 363 | +>>开放前只需要将用户名粘贴到“开通权限.txt”文本下,每行一条记录执行就可以了 |
-
Please register or login to post a comment