a. 跑目录模块,服务调用采用的websocket连接方式,websocket配置在cn.boxfishedu.local.
pub.config里.
b. 跑目录以书为单位,用户可选择跑一本书也可选择批量跑
c. 输入相关书名,程序会去book_has_config_wudaokou表搜索到书对应的INI文件的路径并展示的前端界面.
d. 用户勾选要跑的书,确定后会将对应的INI文件路径传到服务端,后台会根据这些路径找到对应的INI文件并解析为指定的Map结构
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类里执行
f. 每跑一次目录,书不会被删除,但是书下面的课程对应的数据库记录,也就是book_section中的记录会被全部删掉,重新写入
a. 用户输入搜搜索关键字,服务器端会根据关键字到本地100数据库的book_has_config_wudaokou表里找匹配的记录并返回给前端
b. 勾选要打标签的书、要打到mongo的哪个collection里,确认后,服务端会去100机器上的路径/share/tagWuDaoKou下去找INI文件并解析为Map结构
c. 接着,服务器会将Map结构中的书、课与目录的关系写入到云端mysql数据库的course_catalog表、book_has_course_catalog表、course_relation_catalog表。写之前程序会先将书对应的目录记录从book_has_course_catalog表中删除,然后写入;会将课对应的目录记录从course_relation_catalog表中删除,然后写入
d. 继而,程序会将课程所拥有的属性关系(包括课程类型、难度等)写入到云端mongo数据库的相应collection内:如果用户选择智能推荐,则写入到new_version_tag_v2;如果用户选择智能作业,则写入到course_tag_homework_wudaokou。但是不论选择哪一个,都会将记录往course_new里面写一份