Commit 7dfdebe7 by “Kongxiangkun”

增加积分商城相关代码

parent 3aea8ea3
package com.yizhi.application.controller;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.plugins.pagination.PageHelper;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.yizhi.application.domain.TrExamOnlineReadOver;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.application.export.ReadOnLineExamsExport;
import com.yizhi.application.mapper.TrExamOnlineReadOverMapper;
import com.yizhi.application.service.IExamService;
import com.yizhi.application.service.ITrExamAnswerService;
import com.yizhi.application.service.ITrExamAuthorizeService;
import com.yizhi.application.service.ITrExamOnlineReadOverService;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.exam.application.vo.*;
import com.yizhi.exam.application.vo.domain.Exam;
import com.yizhi.point.application.feign.PointApiFeignClients;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
......@@ -33,6 +36,7 @@ import java.util.Map;
* @author yizhi123
* @since 2018-03-13
*/
@Slf4j
@RestController
@RequestMapping("/manage/exam")
public class TrExamOnlineReadOverController {
......@@ -56,6 +60,8 @@ public class TrExamOnlineReadOverController {
@Autowired
private ReadOnLineExamsExport readOnLineExamsExport;
@Autowired
private PointApiFeignClients pointApiFeignClients;
/**
* 阅卷列表
......@@ -212,13 +218,21 @@ public class TrExamOnlineReadOverController {
}*/
@PostMapping(value = "/marking/student/save")
public Integer insertByFile(@RequestBody MarkStudentVO markStudentVO) {
Integer result = null;
Map<String, Object> resultMap = new HashMap<>();
try {
result = iTrExamOnlineReadOverService.insertMarkStudent(markStudentVO);
return result;
resultMap = iTrExamOnlineReadOverService.insertMarkStudent(markStudentVO);
Integer score = (Integer) resultMap.get("score");
Integer qualifiedScore = (Integer) resultMap.get("qualifiedScore");
String examId = (String) resultMap.get("examId");
//考试交卷后根据分数增加积分
if(score.intValue() >= qualifiedScore.intValue()) {
log.info("考试合格发放积分:{}", JSONUtil.toJsonStr(resultMap));
pointApiFeignClients.addPoint(markStudentVO.getAccountId(), "point_exam", examId + "|" + score);
}
return score;
} catch (Exception e) {
Log.error("", e);
return result;
return 0;
}
}
......
......@@ -81,7 +81,7 @@ public interface ITrExamOnlineReadOverService extends IService<TrExamOnlineReadO
MarkStudentVO markStudent(Long id);
Integer insertMarkStudent(MarkStudentVO markStudentVO);
Map<String, Object> insertMarkStudent(MarkStudentVO markStudentVO);
/**
* 根据考试ID查询已阅卷人数
......
package com.yizhi.application.service.impl;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.application.domain.*;
......@@ -299,7 +300,8 @@ public class TrExamOnlineReadOverServiceImpl extends ServiceImpl<TrExamOnlineRea
@Transactional(propagation = Propagation.REQUIRED)
@Override
public Integer insertMarkStudent(MarkStudentVO markStudentVO) {
public Map<String, Object> insertMarkStudent(MarkStudentVO markStudentVO) {
Map<String, Object> result = new HashMap<>();
Date createTime = new Date();
BigDecimal score = new BigDecimal(0);
TrExamAnswerQuestion trExamAnswerQuestion;
......@@ -359,19 +361,21 @@ public class TrExamOnlineReadOverServiceImpl extends ServiceImpl<TrExamOnlineRea
type = type == null ? 0 : type;
if (overResult && type == 1) {
BigDecimal totalScore = trExamOnlineReadOver.getSumScore();
point = totalScore.intValue();
result.put("score", totalScore);
//计算考试积分
List<TrExamPointVO> trExamPointVOS = iTrExamPointService.listTrExamPoint(trExamOnlineReadOver.getExamId());
for (TrExamPointVO trExamPointVO : trExamPointVOS) {
BigDecimal minScore = new BigDecimal(trExamPointVO.getMinScore());
BigDecimal maxScore = new BigDecimal(trExamPointVO.getMaxScore());
//a = -1,表示bigdemical小于bigdemical2;a = 0 表示bigdemical等于bigdemical2;a = 1表示bigdemical大于bigdemical2;
Integer a = totalScore.compareTo(minScore);
Integer b = totalScore.compareTo(maxScore);
if (a >= 0 && b < 1) {
point = trExamPointVO.getPoint();
break;
}
}
// List<TrExamPointVO> trExamPointVOS = iTrExamPointService.listTrExamPoint(trExamOnlineReadOver.getExamId());
// for (TrExamPointVO trExamPointVO : trExamPointVOS) {
// BigDecimal minScore = new BigDecimal(trExamPointVO.getMinScore());
// BigDecimal maxScore = new BigDecimal(trExamPointVO.getMaxScore());
// //a = -1,表示bigdemical小于bigdemical2;a = 0 表示bigdemical等于bigdemical2;a = 1表示bigdemical大于bigdemical2;
// Integer a = totalScore.compareTo(minScore);
// Integer b = totalScore.compareTo(maxScore);
// if (a >= 0 && b < 1) {
// point = trExamPointVO.getPoint();
// break;
// }
// }
//完成阅卷了,更新答卷状态
TrExamAnswer trExamAnswer = new TrExamAnswer();
......@@ -387,10 +391,14 @@ public class TrExamOnlineReadOverServiceImpl extends ServiceImpl<TrExamOnlineRea
try {
TrExamAnswer trExamAnswer1 = trExamAnswerMapper.selectById(markStudentVO.getExamAnswerId());
if (trExamAnswer1 == null) {
return point;
return result;
}
Exam exam = examService.selectById(trExamAnswer1.getExamId());
if (exam != null) {
result.put("examId", exam.getId());
result.put("qualifiedScore", exam.getQualifiedScore());
if (trExamAnswer1.getAccountId() != null) {
taskExecutor.asynExecute(new AbstractTaskHandler() {
@Override
......@@ -407,12 +415,12 @@ public class TrExamOnlineReadOverServiceImpl extends ServiceImpl<TrExamOnlineRea
} catch (Exception e) {
e.printStackTrace();
}
return point;
Log.info("手动阅卷完成,考试得分返回结果result:{}", JSONUtil.toJsonStr(result));
return result;
} else {
Log.info("考试:" + trExamOnlineReadOver.getExamId() + "无积分发放");
Log.info("考试:{} 无积分发放", trExamOnlineReadOver.getExamId());
}
return point;
return result;
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment