|
|
@@ -1,11 +1,15 @@
|
|
|
package com.seecoder.dataanalysis.logic.parser.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONException;
|
|
|
+import com.seecoder.dataanalysis.data.entity.eval.EvalExamInfo;
|
|
|
+import com.seecoder.dataanalysis.data.entity.eval.EvalExamRecord;
|
|
|
import com.seecoder.dataanalysis.logic.parser.LogParsingService;
|
|
|
import com.seecoder.dataanalysis.util.JsonUtil;
|
|
|
import com.seecoder.dataanalysis.vo.SimpleLog;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.PostConstruct;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
@@ -31,17 +35,32 @@ public class LogParsingServiceImpl implements LogParsingService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
public <T> T parseLogData(SimpleLog simpleLog, boolean save) {
|
|
|
- return null;
|
|
|
+ try {
|
|
|
+ String className = parseOpType(simpleLog.getOpType());
|
|
|
+ Class clazz = Class.forName(className);
|
|
|
+ Object data = JsonUtil.toObject(simpleLog.getData(), clazz);
|
|
|
+
|
|
|
+ //TODO save into the database
|
|
|
+ return (T) data;
|
|
|
+ } catch (ClassNotFoundException e){
|
|
|
+ e.printStackTrace();
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public String parseOpType(int opType) {
|
|
|
- return null;
|
|
|
+ return opTypesTable.get(opType);
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void buildOpTypesTable(){
|
|
|
-
|
|
|
+ @PostConstruct
|
|
|
+ protected void buildOpTypesTable(){
|
|
|
+ opTypesTable = new HashMap<>();
|
|
|
+ opTypesTable.put(0, EvalExamInfo.class.getName()); //试卷数据
|
|
|
+ opTypesTable.put(1, EvalExamInfo.class.getName()); //诗句更新数据
|
|
|
+ opTypesTable.put(2, EvalExamRecord.class.getName()); //学生提交试卷
|
|
|
}
|
|
|
}
|