Browse Source

训练计划详情

master
zhizhi wu 4 years ago
parent
commit
ae828dcd76
  1. 70
      src/main/java/com/ccsens/yanyuan/bean/vo/TaskVo.java
  2. 25
      src/main/java/com/ccsens/yanyuan/bean/vo/TrainContentVo.java
  3. 9
      src/main/java/com/ccsens/yanyuan/service/QuestionService.java
  4. 2
      src/main/java/com/ccsens/yanyuan/service/TrainPlanService.java
  5. 4
      src/main/resources/application-dev.yml
  6. 4
      src/main/resources/application-prod.yml
  7. 4
      src/main/resources/application.yml
  8. 14
      src/main/resources/mapper_dao/TrainContentDao.xml
  9. 2
      src/main/resources/mapper_dao/TrainResultDao.xml

70
src/main/java/com/ccsens/yanyuan/bean/vo/TaskVo.java

@ -115,50 +115,50 @@ public class TaskVo {
private Long contentId;
@ApiModelProperty("训练题目")
private String content;
@ApiModelProperty("训练等级")
@ApiModelProperty("训练等级 训练内容是几星级")
private byte level;
@ApiModelProperty("开始时间")
private Long startTime;
@ApiModelProperty("完成状态")
@ApiModelProperty("完成状态: 3轻松完成 2略有困难 1非常困难")
private BigDecimal finishResult;
@ApiModelProperty("补充图片")
private List<TrainContentVo.Supplementary> supplementaries;
@ApiModelProperty("训练目标")
private List<TrainContentVo.TrainDetail> purposes;
@ApiModelProperty("训练元素")
private List<TrainContentVo.TrainDetail> elements;
@ApiModelProperty("训练步骤")
private List<TrainContentVo.TrainDetail> steps;
@ApiModelProperty("训练原理")
private List<TrainContentVo.TrainDetail> principles;
@ApiModelProperty("其他详情")
private List<TrainContentVo.TrainDetail> contentDetails;
// @ApiModelProperty("训练元素")
// private List<TrainContentVo.TrainDetail> elements;
// @ApiModelProperty("训练步骤")
// private List<TrainContentVo.TrainDetail> steps;
// @ApiModelProperty("训练原理")
// private List<TrainContentVo.TrainDetail> principles;
@ApiModelProperty("训练情况")
private List<TrainContentVo.TrainRecord> trains;
public void transTrainDetail(List<TrainContentVo.TrainDetail> trainDetails){
if (CollectionUtil.isEmpty(trainDetails)) {
return;
}
trainDetails.forEach(detail -> {
switch (detail.getType()) {
case YanYuanConstant.Train.CONTENT_TYPE_PURPOSE:
purposes = purposes == null ? new ArrayList<>() : purposes;
purposes.add(detail);
break;
case YanYuanConstant.Train.CONTENT_TYPE_ELEMENT:
elements = elements == null ? new ArrayList<>() : elements;
elements.add(detail);
break;
case YanYuanConstant.Train.CONTENT_TYPE_PRINCIPLE:
principles = principles == null ? new ArrayList<>() : principles;
principles.add(detail);
break;
case YanYuanConstant.Train.CONTENT_TYPE_STEP:
steps = steps == null ? new ArrayList<>() : steps;
steps.add(detail);
break;
}
});
}
// public void transTrainDetail(List<TrainContentVo.TrainDetail> trainDetails){
// if (CollectionUtil.isEmpty(trainDetails)) {
// return;
// }
// trainDetails.forEach(detail -> {
// switch (detail.getType()) {
// case YanYuanConstant.Train.CONTENT_TYPE_PURPOSE:
// purposes = purposes == null ? new ArrayList<>() : purposes;
// purposes.add(detail);
// break;
// case YanYuanConstant.Train.CONTENT_TYPE_ELEMENT:
// elements = elements == null ? new ArrayList<>() : elements;
// elements.add(detail);
// break;
// case YanYuanConstant.Train.CONTENT_TYPE_PRINCIPLE:
// principles = principles == null ? new ArrayList<>() : principles;
// principles.add(detail);
// break;
// case YanYuanConstant.Train.CONTENT_TYPE_STEP:
// steps = steps == null ? new ArrayList<>() : steps;
// steps.add(detail);
// break;
// }
// });
// }
}

25
src/main/java/com/ccsens/yanyuan/bean/vo/TrainContentVo.java

@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@ -30,14 +31,8 @@ public class TrainContentVo {
public static class Detail{
@ApiModelProperty("补充图片")
private List<TrainContentVo.Supplementary> supplementaries;
@ApiModelProperty("训练目标")
private List<TrainContentVo.TrainDetail> purposes;
@ApiModelProperty("训练元素")
private List<TrainContentVo.TrainDetail> elements;
@ApiModelProperty("训练步骤")
private List<TrainContentVo.TrainDetail> steps;
@ApiModelProperty("训练原理")
private List<TrainContentVo.TrainDetail> principles;
@ApiModelProperty("其他详情")
private List<TrainContentVo.TrainDetail> contentDetails;
@ApiModelProperty("训练情况")
private List<TrainContentVo.TrainRecord> trains;
}
@ -73,7 +68,7 @@ public class TrainContentVo {
@ApiModel("训练结果")
public static class TrainResult extends TrainRecord {
@ApiModelProperty("训练结果 0:非常困难 1:略有困难 2:轻松完成")
private byte finishResult;
private BigDecimal finishResult;
@ApiModelProperty("训练完成时间 单位:秒")
private Long finishTime;
}
@ -98,10 +93,18 @@ public class TrainContentVo {
@Data
@ApiModel("训练的详细内容")
public static class TrainDetail {
@ApiModelProperty("题目")
private String content;
@ApiModelProperty("类型 0:训练目标 1:训练元素 2:训练原理 3:训练步骤")
private byte type;
@ApiModelProperty("内容")
private List<TrainContentDetail> details;
}
@Data
@ApiModel("训练的详细内容")
public static class TrainContentDetail {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("题目")
private String content;
@ApiModelProperty("补充图片")
private List<Supplementary> supplementaries;
}

9
src/main/java/com/ccsens/yanyuan/service/QuestionService.java

@ -166,7 +166,7 @@ public class QuestionService implements IQuestionService {
prevNum = prevNum == null || num != -1 ? num : prevNum;
prevType = prevType == null || type != -1 ? type : prevType;
Long numId = getNumId(userId, prevCode, prevWhichSort, prevNum, numMap, nums, whichSort, num);
Long numId = getNumId(userId, prevCode, prevWhichSort, prevNum, numMap, nums);
initQuestionAndOption(userId, prevType, optionMap, questions, options, showType, content, score, page, position, sort, numId);
@ -205,6 +205,7 @@ public class QuestionService implements IQuestionService {
private void initQuestionAndOption(Long userId, Integer prevType, Map<String, EvaluationOption> optionMap, List<EvaluationQuestion> questions, List<EvaluationOption> options, Byte showType, String content, Byte score, Byte page, String position, Integer sort, Long numId) {
final int typeQuestion = 0;
content = showType == YanYuanConstant.Question.SHOW_TYPE_WORD ? content : content.startsWith("http") ? content : PropUtil.imgDomain + content;
log.info("正文:{}", content);
if (prevType == typeQuestion) {
// 题目
EvaluationQuestion question = new EvaluationQuestion();
@ -235,7 +236,7 @@ public class QuestionService implements IQuestionService {
}
}
private Long getNumId(Long userId, String prevCode, Integer prevWhichSort, Integer prevNum, Map<String, EvaluationNum> numMap, List<EvaluationNum> nums, Integer whichSort, Integer num) {
private Long getNumId(Long userId, String prevCode, Integer prevWhichSort, Integer prevNum, Map<String, EvaluationNum> numMap, List<EvaluationNum> nums) {
Long numId;
String numKey = prevWhichSort + "-" + prevNum;
if (numMap.containsKey(numKey)) {
@ -246,8 +247,8 @@ public class QuestionService implements IQuestionService {
EvaluationNum newNum = new EvaluationNum();
newNum.setId(snowflake.nextId());
newNum.setCode(prevCode);
newNum.setSort(whichSort);
newNum.setNum(num);
newNum.setSort(prevWhichSort);
newNum.setNum(prevNum);
newNum.setOperator(userId);
nums.add(newNum);
numMap.put(numKey, newNum);

2
src/main/java/com/ccsens/yanyuan/service/TrainPlanService.java

@ -49,7 +49,7 @@ public class TrainPlanService implements ITrainPlanService {
TrainContentVo.SupplementaryMessage supplementaryMessage = trainContentDao.querySupplementaries(train.getContentId());
if (supplementaryMessage != null) {
train.setSupplementaries(supplementaryMessage.getSupplementaries());
train.transTrainDetail(supplementaryMessage.getTrainDetails());
train.setContentDetails(supplementaryMessage.getTrainDetails());
}
// 查询训练记录
List<TrainContentVo.TrainResult> results = trainResultDao.queryByRecord(train.getRecordId());

4
src/main/resources/application-dev.yml

@ -46,5 +46,5 @@ mybatisCache:
file:
path: /home/cloud/yanyuan/uploads/
domain: https://test.tall.wiki/gateway/yanyuan
imgDomain: https://test.tall.wiki/gateway/yanyuan/uploads/
domain: https://test.tall.wiki/gateway/yanyuan/v2.0/
imgDomain: https://test.tall.wiki/gateway/yanyuan/v2.0/uploads/

4
src/main/resources/application-prod.yml

@ -36,5 +36,5 @@ notGatewayUrl: https://www.tall.wiki/
apiUrl: https://www.tall.wiki/
file:
path: /home/cloud/yanyuan/uploads/
domain: https://www.tall.wiki/gateway/yanyuan
imgDomain: https://www.tall.wiki/gateway/yanyuan/uploads/
domain: https://www.tall.wiki/gateway/yanyuan/v2.0/
imgDomain: https://www.tall.wiki/gateway/yanyuan/v2.0/uploads/

4
src/main/resources/application.yml

@ -1,4 +1,4 @@
spring:
profiles:
active: dev
include: common, util-dev
active: test
include: common, util-test

14
src/main/resources/mapper_dao/TrainContentDao.xml

@ -8,12 +8,16 @@
<result column="contentUrl" property="url"/>
</collection>
<collection property="trainDetails" ofType="com.ccsens.yanyuan.bean.vo.TrainContentVo$TrainDetail">
<id column="detailId"/>
<result column="content" property="content"/>
<collection property="supplementaries" ofType="com.ccsens.yanyuan.bean.vo.TrainContentVo$Supplementary">
<id column="imgId"/>
<result column="url" property="url"/>
<id column="type" property="type"/>
<collection property="details" ofType="com.ccsens.yanyuan.bean.vo.TrainContentVo$TrainContentDetail">
<id column="detailId" property="id"/>
<result column="content" property="content"/>
<collection property="supplementaries" ofType="com.ccsens.yanyuan.bean.vo.TrainContentVo$Supplementary">
<id column="imgId"/>
<result column="url" property="url"/>
</collection>
</collection>
</collection>
</resultMap>
<select id="queryRandomByLevel" resultType="com.ccsens.yanyuan.bean.vo.TrainContentVo$Simple">

2
src/main/resources/mapper_dao/TrainResultDao.xml

@ -11,7 +11,7 @@
FROM
u_train_result
WHERE
record_id = 1
record_id = #{recordId}
AND rec_status = 0
</select>
</mapper>
Loading…
Cancel
Save