提交调整

This commit is contained in:
daihh
2022-12-18 21:09:14 +08:00
parent e917388127
commit 2fdecee02d
6 changed files with 84 additions and 24 deletions

View File

@@ -10,8 +10,8 @@ public interface IScormFileHandle {
/**
* 根据传入的id获到scorm文件的目录信息
* @param id
* @param scormId
* @return
*/
ScormFile getById(String id);
ScormFile getById(String scormId)throws Exception;
}

View File

@@ -0,0 +1,27 @@
package com.xboe.module.scorm;
/**
* 课程学习回调。
* 开始学习时触发回调事件学习sco完成的回调事件
*
*/
public interface IScormStudyCallback {
/**
* 学习完成回调
* @param studyId
* @param studyId
* @param studyId
*/
/**
* 学习完成回调
* @param studyId 初始化时传入的学习id
* @param courseId 初始化时传入的课程id
* @param contentId 初始化时传入的课程内容id
* @param studentId 学生id
* @param studentName 学习姓名
* @param scormId scorm课程的id
* @param scoId sco的id
*/
void finishCallback(String studyId,String courseId,String contentId,String studentId,String studentName,String scormId,String scoId);
}

View File

@@ -1,9 +1,7 @@
package com.xboe.module.scorm;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
@@ -16,6 +14,7 @@ import com.xboe.module.scorm.cam.model.Organization;
import com.xboe.module.scorm.cam.model.Resource;
import com.xboe.module.scorm.cam.model.datatype.IDRef;
import com.xboe.module.scorm.data.ScoItem;
import com.xboe.module.scorm.data.ScormData;
/**
* 解析程序,转化为课程存储的json
@@ -24,12 +23,12 @@ public class SCORMParser {
public String parserToJson(String path) throws Exception {
// System.out.println("test");
Map<String,Object> jsonMap=new HashMap<String,Object>();
ContentPackage cp=SCORMPackageManager.getInstance().loadSCORMContentPackageFromZipFile("1", path);
ContentPackage cp=SCORMPackageManager.getInstance().loadSCORMContentPackageFromZipFile("1", path);
Manifest manifest= cp.getManifest();
// System.out.println(cp.getManifest().getIdentifier());
// System.out.println(cp.getContent());
ScormData data=new ScormData();
List<ScoItem> scoItems=new ArrayList<ScoItem>();
// System.out.println("title="+cp.getManifest().getOrganizations().getOrganizationList().get(0).getTitle());
@@ -39,7 +38,7 @@ public class SCORMParser {
//提取组织菜单
IDRef ref = manifest.getOrganizations().getDefaultOrganizationID();
if(ref!=null){
jsonMap.put("defaultId", ref.getValue());//如果有多个组织目录,默认是的哪个
data.setDefaultId(ref.getValue());
}
List<Organization> orgList = manifest.getOrganizations().getOrganizationList();
@@ -52,7 +51,7 @@ public class SCORMParser {
ScoItem sco=new ScoItem();
sco.setId(item.getIdentifier().getValue());
sco.setTitle(item.getTitle());
sco.setScoId(res.getIdentifier().getValue());
//sco.setScoId(res.getIdentifier().getValue());
sco.setScoUrl(res.getHref());
sco.setScoType(res.getScormType());
scoItems.add(sco);
@@ -67,7 +66,7 @@ public class SCORMParser {
ScoItem sco=new ScoItem();
sco.setId(item.getIdentifier().getValue());
sco.setTitle(item.getTitle());
sco.setScoId(res.getIdentifier().getValue());
//sco.setScoId(res.getIdentifier().getValue());
sco.setScoUrl(res.getHref());
sco.setScoType(res.getScormType());
scoItems.add(sco);
@@ -82,18 +81,18 @@ public class SCORMParser {
}
//scorm的版本
jsonMap.put("schema",manifest.getMetadata().getSchema());
jsonMap.put("version",manifest.getMetadata().getSchemaVersion());
jsonMap.put("items", scoItems);//sco共有多少个
data.setSchema(manifest.getMetadata().getSchema());
data.setVersion(manifest.getMetadata().getSchemaVersion());
data.setScoItems(scoItems);//sco共有多少个
if(scoItems.size()>0 && scoItems.get(0).getScoUrl()!=null) {
jsonMap.put("index",scoItems.get(0).getScoUrl());//打开播放时进入的第一个sco
data.setIndex(scoItems.get(0).getScoUrl());//打开播放时进入的第一个sco
}else {
jsonMap.put("index","");//无首页地址
data.setIndex("");//无首页地址
}
ObjectMapper om=new ObjectMapper();
String json=om.writeValueAsString(jsonMap);
String json=om.writeValueAsString(data);
return json;
}

View File

@@ -12,8 +12,6 @@ public class ScoItem {
private String title;
private String scoId;
private String scoType;
private String scoUrl;
@@ -36,13 +34,6 @@ public class ScoItem {
this.title = title;
}
public String getScoId() {
return scoId;
}
public void setScoId(String scoId) {
this.scoId = scoId;
}
public String getScoType() {
return scoType;

View File

@@ -0,0 +1,39 @@
package com.xboe.module.scorm.data;
import java.util.List;
import lombok.Data;
/**
* scorm数据信息简化后的只是记录需要的其它的不需要
* @author seastar
*
*/
@Data
public class ScormData {
/**
* 默认就是 “ADL SCORM”
*/
private String schema="ADL SCORM";
/**
* 对应的 schema version
*/
private String version;
private String defaultId;//默认的组织id
/**
* 默认的页面
*/
private String index;
/**
* 对应的学习内容的页面数据
*/
private List<ScoItem> scoItems;
}

View File

@@ -20,5 +20,9 @@ public class ScormFile {
*/
private String zipName;
/**
* scorm的数据
*/
private ScormData data;
}