|
@@ -8,7 +8,6 @@ import cn.com.qmth.stmms.ms.core.domain.task.MarkTask;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.user.Role;
|
|
|
import cn.com.qmth.stmms.ms.core.repository.*;
|
|
|
-import cn.com.qmth.stmms.ms.core.vo.Subject;
|
|
|
import cn.com.qmth.stmms.ms.marking.config.MarkingConfig;
|
|
|
import cn.com.qmth.stmms.ms.marking.dto.MarkTaskDTO;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
@@ -26,7 +25,6 @@ import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpSession;
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -45,7 +43,6 @@ public class MarkLogAop {
|
|
|
|
|
|
private final String TOKEN = "token",
|
|
|
MARK_USER = "markUser",//登录用户
|
|
|
- COLLECTOR = "collector",//采集用户
|
|
|
PARAM_ARGS = "args",//方法参数
|
|
|
// PARAM_ARG_NAMES = "argNames",//方法参数名
|
|
|
ACTION = "action",//动作
|
|
@@ -63,7 +60,7 @@ public class MarkLogAop {
|
|
|
private MarkLogRepo markLogRepo;
|
|
|
|
|
|
@Autowired
|
|
|
- private StudentRepo studentRepo;
|
|
|
+ MarkUserRepo markUserRepo;
|
|
|
|
|
|
@Autowired
|
|
|
private PaperRepo paperRepo;
|
|
@@ -113,7 +110,7 @@ public class MarkLogAop {
|
|
|
*/
|
|
|
@AfterReturning(value = "paperAspect()", returning = RESULT)
|
|
|
public void afterReturnPaperPoint(JoinPoint joinPoint, Object result) throws Exception {
|
|
|
- Map<String, Object> map = getAspectCommon(joinPoint, 0);
|
|
|
+ Map<String, Object> map = getAspectCommon(joinPoint);
|
|
|
JSONArray jsonArgsArray = (JSONArray) map.get(PARAM_ARGS);
|
|
|
MarkUser markUser = (MarkUser) map.get(MARK_USER);
|
|
|
Paper paper = JSONObject.parseObject(((JSONObject) jsonArgsArray.get(0)).toJSONString(), Paper.class);
|
|
@@ -155,7 +152,7 @@ public class MarkLogAop {
|
|
|
*/
|
|
|
@AfterReturning(value = "markAspect()", returning = RESULT)
|
|
|
public void afterReturnMarkPoint(JoinPoint joinPoint, Object result) throws Exception {
|
|
|
- Map<String, Object> map = getAspectCommon(joinPoint, 0);
|
|
|
+ Map<String, Object> map = getAspectCommon(joinPoint);
|
|
|
JSONArray jsonArgsArray = (JSONArray) map.get(PARAM_ARGS);
|
|
|
MarkUser markUser = (MarkUser) map.get(MARK_USER);
|
|
|
JSONObject aopResult = JSONObject.parseObject(JSONObject.toJSONString(result));
|
|
@@ -255,67 +252,6 @@ public class MarkLogAop {
|
|
|
//20191107wangliang加入仲裁自动打回算法 end
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 采集切入(废弃)
|
|
|
- *
|
|
|
- * @param joinPoint
|
|
|
- * @param result
|
|
|
- * @throws Exception
|
|
|
- */
|
|
|
-// @AfterReturning(value = "collectAspect()", returning = RESULT)
|
|
|
- public void afterReturnCollectPoint(JoinPoint joinPoint, Object result) throws Exception {
|
|
|
- //参数
|
|
|
- Object[] paramValues = joinPoint.getArgs();
|
|
|
-
|
|
|
- // 参数 workdId, subjectId, examNumber
|
|
|
- Long workId = JSONObject.parseObject(String.valueOf(paramValues[0]), Long.class);
|
|
|
- int subjectId = JSONObject.parseObject(String.valueOf(paramValues[1]), int.class);
|
|
|
- Subject subject = Subject.values()[subjectId - 1];
|
|
|
- String examNumber = JSONObject.parseObject(String.valueOf(paramValues[2]), String.class);
|
|
|
-
|
|
|
- HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
|
- //取采集用户id
|
|
|
- Long clientUserId = Long.valueOf(request.getParameter("clientUserId"));
|
|
|
- //取采集用户名称
|
|
|
- String clientUsername = request.getParameter("clientUsername");
|
|
|
- //学生信息
|
|
|
- String name = request.getParameter("name");
|
|
|
- //试卷信息
|
|
|
- List<Paper> paperList = paperRepo.findByWorkIdAndExamNumber(workId, examNumber);
|
|
|
- Paper paper = paperList.get(0);
|
|
|
-
|
|
|
- Integer operType = MarkLogOperType.COLLECT.getId();
|
|
|
-
|
|
|
- Work work = workRepo.findOne(workId);
|
|
|
-
|
|
|
- MarkLog markLog = new MarkLog();
|
|
|
- markLog.setCreateUserId(clientUserId);
|
|
|
- markLog.setCreateUserName(clientUsername);
|
|
|
- markLog.setCreateRole(Role.COLLECTOR.getName());
|
|
|
- markLog.setSubject(subject.toString());
|
|
|
- markLog.setExamNumber(examNumber);
|
|
|
- markLog.setStudentName(name);
|
|
|
- markLog.setOperType(operType);
|
|
|
- markLog.setWorkId(workId);
|
|
|
- markLog.setWorkName(work.getName());
|
|
|
- markLog.setPaperId(paper.getId());
|
|
|
- markLog.setStage(MarkStage.INIT);
|
|
|
- //识别方式
|
|
|
- String manual = request.getParameter("manual");
|
|
|
- markLog.setRemark("0".equals(manual) ? "正常扫描" : "1".equals(manual) ? "手工绑定" : null);
|
|
|
- //操作时间
|
|
|
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
- String time = request.getParameter("time");
|
|
|
- markLog.setCreateTime(formatter.parse(time));
|
|
|
- //登录时间
|
|
|
- String clientUserLoginTime = request.getParameter("clientUserLoginTime");
|
|
|
- markLog.setLoginTime(formatter.parse(clientUserLoginTime));
|
|
|
- //退出时间(没有退出时间)
|
|
|
- LOGGER.info("markLog:{}", JSONObject.toJSONString(markLog));
|
|
|
- //分档、打分、回评档位、回评分数、档位打回、档位打回回评end
|
|
|
- markLogRepo.save(markLog);
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 查询处于哪个档位公用
|
|
|
*
|
|
@@ -350,11 +286,10 @@ public class MarkLogAop {
|
|
|
* 切面公用方法
|
|
|
*
|
|
|
* @param joinPoint
|
|
|
- * @param type
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public Map getAspectCommon(JoinPoint joinPoint, int type) throws Exception {
|
|
|
+ public Map getAspectCommon(JoinPoint joinPoint) throws Exception {
|
|
|
String className = joinPoint.getSignature().getDeclaringTypeName();
|
|
|
String methodName = joinPoint.getSignature().getName();
|
|
|
LOGGER.info("{} aspect path:{}", this.getClass().getMethods()[0], className + "." + methodName);
|
|
@@ -365,17 +300,24 @@ public class MarkLogAop {
|
|
|
if (Objects.isNull(token)) {
|
|
|
throw new Exception("请先登录");
|
|
|
}
|
|
|
+ Object[] args = joinPoint.getArgs(); // 参数值
|
|
|
+ MarkTask markTask = null;
|
|
|
MarkUser markUser = null;
|
|
|
- switch (type) {
|
|
|
- case 0:
|
|
|
- markUser = (MarkUser) session.getAttribute(MARK_USER);
|
|
|
- break;
|
|
|
- default:
|
|
|
- markUser = (MarkUser) session.getAttribute(COLLECTOR);
|
|
|
- break;
|
|
|
+ if (Objects.nonNull(args) && args.length > 0) {
|
|
|
+ for (Object o : args) {
|
|
|
+ if (o instanceof MarkTask) {
|
|
|
+ markTask = (MarkTask) o;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(markTask)) {
|
|
|
+ markUser = markUserRepo.findOne(markTask.getMarkerId());
|
|
|
+ } else {
|
|
|
+ String[] strs = token.split("#");
|
|
|
+ markUser = markUserRepo.findOne(Long.parseLong(strs[2]));
|
|
|
}
|
|
|
LOGGER.info("markUser:{}", JSONObject.toJSONString(markUser));
|
|
|
- Object[] args = joinPoint.getArgs(); // 参数值
|
|
|
// String[] argNames = ((MethodSignature) joinPoint.getSignature()).getParameterNames();//参数名
|
|
|
JSONArray jsonArgsArray = JSONObject.parseArray(JSONObject.toJSONString(args));
|
|
|
// JSONArray jsonArgNamesArray = JSONObject.parseArray(JSONObject.toJSONString(argNames));
|