|
@@ -1,17 +1,19 @@
|
|
package cn.com.qmth.stmms.ms.log;
|
|
package cn.com.qmth.stmms.ms.log;
|
|
|
|
|
|
|
|
+import cn.com.qmth.stmms.ms.commons.utils.SqlUtil;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkLog;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkLog;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkLogOperType;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkLogOperType;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkStage;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkStage;
|
|
|
|
+import cn.com.qmth.stmms.ms.core.domain.Paper;
|
|
import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
|
|
import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
|
|
import cn.com.qmth.stmms.ms.core.repository.MarkLogRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.MarkLogRepo;
|
|
|
|
+import cn.com.qmth.stmms.ms.marking.dto.MarkTaskDTO;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import org.aspectj.lang.JoinPoint;
|
|
import org.aspectj.lang.JoinPoint;
|
|
import org.aspectj.lang.annotation.AfterReturning;
|
|
import org.aspectj.lang.annotation.AfterReturning;
|
|
import org.aspectj.lang.annotation.Aspect;
|
|
import org.aspectj.lang.annotation.Aspect;
|
|
import org.aspectj.lang.annotation.Pointcut;
|
|
import org.aspectj.lang.annotation.Pointcut;
|
|
-import org.aspectj.lang.reflect.MethodSignature;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -21,8 +23,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpSession;
|
|
import javax.servlet.http.HttpSession;
|
|
-import java.util.Objects;
|
|
|
|
-import java.util.Optional;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Description: 纪检审查aop
|
|
* @Description: 纪检审查aop
|
|
@@ -31,15 +32,27 @@ import java.util.Optional;
|
|
* @Author: wangliang
|
|
* @Author: wangliang
|
|
* @Date: 2019/10/19
|
|
* @Date: 2019/10/19
|
|
*/
|
|
*/
|
|
-//@Aspect
|
|
|
|
-//@Component
|
|
|
|
|
|
+@Aspect
|
|
|
|
+@Component
|
|
public class MarkLogAop {
|
|
public class MarkLogAop {
|
|
|
|
|
|
private static Logger LOGGER = LoggerFactory.getLogger(MarkLogAop.class);
|
|
private static Logger LOGGER = LoggerFactory.getLogger(MarkLogAop.class);
|
|
|
|
|
|
|
|
+ public final String TOKEN = "token",
|
|
|
|
+ MARK_USER = "markUser",//登录用户
|
|
|
|
+ PARAM_ARGS = "args",//方法参数
|
|
|
|
+ PARAM_ARG_NAMES = "argNames",//方法参数名
|
|
|
|
+ ACTION = "action",//动作
|
|
|
|
+ SAMPLING = "sampling",//标准卷设置
|
|
|
|
+ LEVELING = "leveling",//定档
|
|
|
|
+ REJECT = "reject";//档位打回
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private MarkLogRepo markLogRepo;
|
|
private MarkLogRepo markLogRepo;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ SqlUtil sqlUtil;
|
|
|
|
+
|
|
// @Autowired
|
|
// @Autowired
|
|
// private MarkUserRepo markUserRepo;
|
|
// private MarkUserRepo markUserRepo;
|
|
//
|
|
//
|
|
@@ -49,11 +62,59 @@ public class MarkLogAop {
|
|
// @Autowired
|
|
// @Autowired
|
|
// private LoginConfig loginConfig;
|
|
// private LoginConfig loginConfig;
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 标准卷切入点
|
|
|
|
+ */
|
|
|
|
+ @Pointcut("execution(* cn.com.qmth.stmms.ms.marking.api.PaperApi.marking(..))")
|
|
|
|
+ public void paperAspect() {
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 分档切入点
|
|
* 分档切入点
|
|
*/
|
|
*/
|
|
@Pointcut("execution(* cn.com.qmth.stmms.ms.marking.api.MarkTaskApi.marking(..))")
|
|
@Pointcut("execution(* cn.com.qmth.stmms.ms.marking.api.MarkTaskApi.marking(..))")
|
|
- public void getMarkAspect() {
|
|
|
|
|
|
+ public void markAspect() {
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 设为标准卷切入
|
|
|
|
+ *
|
|
|
|
+ * @param joinPoint
|
|
|
|
+ * @param result
|
|
|
|
+ * @throws Exception
|
|
|
|
+ */
|
|
|
|
+ @AfterReturning(value = "paperAspect()", returning = "result")
|
|
|
|
+ public void afterReturnPaperPoint(JoinPoint joinPoint, Object result) throws Exception {
|
|
|
|
+ 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);
|
|
|
|
+ JSONObject jsonObjectResult = (JSONObject) jsonArgsArray.get(1);
|
|
|
|
+ String action = null;
|
|
|
|
+ Integer operType = null;
|
|
|
|
+ if (Objects.nonNull(jsonObjectResult) && Objects.nonNull(jsonObjectResult.get(ACTION))) {
|
|
|
|
+ action = (String) jsonObjectResult.get(ACTION);
|
|
|
|
+ if (Objects.equals(SAMPLING, action)) {
|
|
|
|
+ //标准卷设置
|
|
|
|
+ operType = MarkLogOperType.CRITERION_PAPER_SET.getId();
|
|
|
|
+ } else if (Objects.equals(LEVELING, action)) {
|
|
|
|
+ //定档设置
|
|
|
|
+ operType = MarkLogOperType.ONE_CLICK_LEVEl.getId();
|
|
|
|
+ } else if (Objects.equals(REJECT, action)) {
|
|
|
|
+ //档位打回设置
|
|
|
|
+ operType = MarkLogOperType.CALLBACK_LEVEl.getId();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //标准卷设置、定档设置、档位打回start
|
|
|
|
+ MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markUser.getId(), operType, markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
|
+ String operResult = "-";
|
|
|
|
+ if (Objects.nonNull(markLogPrev)) {
|
|
|
|
+ operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
|
+ }
|
|
|
|
+ MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), paper.getExamNumber(), paper.getStudentName(), operType, paper.getWorkId(), paper.getId(), MarkStage.LEVEL, operResult, String.valueOf(jsonObjectResult.get("level")), null);
|
|
|
|
+ LOGGER.info("markLog:{}", JSONObject.toJSONString(markLog));
|
|
|
|
+ //标准卷设置、定档设置、档位打回end
|
|
|
|
+ markLogRepo.save(markLog);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -61,84 +122,146 @@ public class MarkLogAop {
|
|
*
|
|
*
|
|
* @param joinPoint
|
|
* @param joinPoint
|
|
*/
|
|
*/
|
|
- @AfterReturning(value = "getMarkAspect()", returning = "result")
|
|
|
|
|
|
+ @AfterReturning(value = "markAspect()", returning = "result")
|
|
public void afterReturnMarkPoint(JoinPoint joinPoint, Object result) throws Exception {
|
|
public void afterReturnMarkPoint(JoinPoint joinPoint, Object result) throws Exception {
|
|
|
|
+ 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));
|
|
|
|
+ boolean isRejected = false, oldRejected = false;
|
|
|
|
+ if (Objects.nonNull(aopResult)) {
|
|
|
|
+ MarkTaskDTO resultBody = JSONObject.parseObject(((JSONObject) aopResult.get("body")).toJSONString(), MarkTaskDTO.class);
|
|
|
|
+ isRejected = resultBody.isRejected();//新的是否撤档
|
|
|
|
+ oldRejected = resultBody.isOldRejected();//旧的是否撤档
|
|
|
|
+ }
|
|
|
|
+ JSONObject jsonObject = (JSONObject) jsonArgsArray.get(0);
|
|
|
|
+ Paper paper = JSONObject.parseObject(((JSONObject) jsonObject.get("paper")).toJSONString(), Paper.class);
|
|
|
|
+ JSONObject jsonObjectResult = (JSONObject) jsonArgsArray.get(1);
|
|
|
|
+ LOGGER.info("jsonObject:{},paper:{},jsonObjectResult:{}", jsonObject, paper, jsonObjectResult);
|
|
|
|
+ Integer operType = MarkLogOperType.LEVEL.getId();//分档,第一次为分档,之后为回评档位,档位打回后为档位打回回评
|
|
|
|
+ //分档、打分、回评档位、回评分数、档位打回回评start
|
|
|
|
+ MarkStage markStage = MarkStage.valueOf(String.valueOf(jsonObjectResult.get("stage")));
|
|
|
|
+ if (markStage.ordinal() == 1 && paper.isMarkByLeader()) {//分档,如果已经有科组长定档,则不允许评卷员再分档
|
|
|
|
+ return;
|
|
|
|
+ } else if (markStage.ordinal() == 1 && oldRejected && !isRejected) {//档位打回回评
|
|
|
|
+ operType = MarkLogOperType.CALLBACK_ONCE_LEVEL.getId();
|
|
|
|
+ } else if (markStage.ordinal() == 2) {//打分
|
|
|
|
+ operType = MarkLogOperType.SCORE.getId();
|
|
|
|
+ }
|
|
|
|
+ //先查是否有档位或分数打回
|
|
|
|
+ String operResult = "-";
|
|
|
|
+ if (markStage.ordinal() == 1) {//分档
|
|
|
|
+ //先查是否有档位打回回评的数据
|
|
|
|
+ MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markUser.getId(), MarkLogOperType.CALLBACK_ONCE_LEVEL.getId(), markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
|
+ if (Objects.isNull(markLogPrev)) {//如果为null,则再查分档和回评档位
|
|
|
|
+ if (oldRejected && !isRejected) {//档位打回
|
|
|
|
+ operType = MarkLogOperType.CALLBACK_ONCE_LEVEL.getId();
|
|
|
|
+ } else {
|
|
|
|
+// operType = MarkLogOperType.LEVEL.getId();//分档
|
|
|
|
+ operType = selectOperType(markUser.getId(), MarkLogOperType.LEVEL.getId(), MarkLogOperType.ONCE_LEVEl.getId(), markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
|
+ markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markUser.getId(), operType, markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
|
+ if (Objects.nonNull(markLogPrev)) {
|
|
|
|
+// if (oldRejected && !isRejected) {//档位打回
|
|
|
|
+// operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
|
+// } else {
|
|
|
|
+// markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markUser.getId(), MarkLogOperType.LEVEL.getId(), markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
|
+// operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
|
+// }
|
|
|
|
+ operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
|
+ } else {
|
|
|
|
+// if (oldRejected && !isRejected) {//档位打回
|
|
|
|
+// operType = MarkLogOperType.CALLBACK_ONCE_LEVEL.getId();
|
|
|
|
+// } else {
|
|
|
|
+// operType = MarkLogOperType.LEVEL.getId();//分档
|
|
|
|
+// }
|
|
|
|
+ if (operType != MarkLogOperType.LEVEL.getId()) {
|
|
|
|
+ markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markUser.getId(), MarkLogOperType.LEVEL.getId(), markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
|
+ operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ operType = MarkLogOperType.CALLBACK_ONCE_LEVEL.getId();//档位打回
|
|
|
|
+ operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
|
+ }
|
|
|
|
+ } else if (markStage.ordinal() == 2) {//打分
|
|
|
|
+ operType = selectOperType(markUser.getId(), MarkLogOperType.SCORE.getId(), MarkLogOperType.ONCE_SCORE.getId(), markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
|
+ MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markUser.getId(), operType, markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
|
+ if (Objects.nonNull(markLogPrev)) {
|
|
|
|
+ operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
|
+ } else {
|
|
|
|
+ if (operType != MarkLogOperType.SCORE.getId()) {
|
|
|
|
+ markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markUser.getId(), MarkLogOperType.SCORE.getId(), markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
|
+ operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), paper.getExamNumber(), paper.getStudentName(), operType, paper.getWorkId(), paper.getId(), markStage, operResult, String.valueOf(jsonObjectResult.get("result")), null);
|
|
|
|
+ LOGGER.info("markLog:{}", JSONObject.toJSONString(markLog));
|
|
|
|
+ //分档、打分、回评档位、回评分数、档位打回、档位打回回评end
|
|
|
|
+ markLogRepo.save(markLog);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询处于哪个档位公用
|
|
|
|
+ *
|
|
|
|
+ * @param createUserId
|
|
|
|
+ * @param operTypeStart
|
|
|
|
+ * @param operTypeEnd
|
|
|
|
+ * @param subject
|
|
|
|
+ * @param examNumber
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Integer selectOperType(Long createUserId, Integer operTypeStart, Integer operTypeEnd, String subject, String examNumber) {
|
|
|
|
+ String sql = "select t.oper_type as operType, count(*) as result from mark_log as t where t.create_user_id = ? and (t.oper_type = ? or t.oper_type = ?) and t.subject = ? and t.exam_number = ? group by t.oper_type ";
|
|
|
|
+ List list = sqlUtil.execSqlForMap(sql, createUserId, operTypeStart, operTypeEnd, subject, examNumber);
|
|
|
|
+ Integer operType = operTypeStart;
|
|
|
|
+ if (Objects.nonNull(list) && list.size() > 0) {
|
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
|
+ Map m = (Map) list.get(i);
|
|
|
|
+ Integer type = Integer.parseInt(String.valueOf(m.get("operType")));
|
|
|
|
+ if (type.intValue() == operTypeStart.intValue()) {
|
|
|
|
+ operType = operTypeEnd;
|
|
|
|
+ break;
|
|
|
|
+ } else {
|
|
|
|
+ operType = type;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return operType;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 切面公用方法
|
|
|
|
+ *
|
|
|
|
+ * @param joinPoint
|
|
|
|
+ * @return
|
|
|
|
+ * @throws Exception
|
|
|
|
+ */
|
|
|
|
+ public Map getAspectCommon(JoinPoint joinPoint) throws Exception {
|
|
String className = joinPoint.getSignature().getDeclaringTypeName();
|
|
String className = joinPoint.getSignature().getDeclaringTypeName();
|
|
String methodName = joinPoint.getSignature().getName();
|
|
String methodName = joinPoint.getSignature().getName();
|
|
- LOGGER.info("mark aspect afterReturnMarkPoint path:{}", className + "." + methodName);
|
|
|
|
|
|
+ LOGGER.info("{} aspect path:{}", this.getClass().getMethods()[0], className + "." + methodName);
|
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
|
HttpServletRequest request = attributes.getRequest();
|
|
HttpServletRequest request = attributes.getRequest();
|
|
HttpSession session = request.getSession();
|
|
HttpSession session = request.getSession();
|
|
- String token = (String) session.getAttribute("token");
|
|
|
|
|
|
+ String token = (String) session.getAttribute(TOKEN);
|
|
if (Objects.isNull(token)) {
|
|
if (Objects.isNull(token)) {
|
|
throw new Exception("请先登录");
|
|
throw new Exception("请先登录");
|
|
}
|
|
}
|
|
- MarkUser markUser = (MarkUser) session.getAttribute("markUser");
|
|
|
|
|
|
+ MarkUser markUser = (MarkUser) session.getAttribute(MARK_USER);
|
|
LOGGER.info("markUser:{}", JSONObject.toJSONString(markUser));
|
|
LOGGER.info("markUser:{}", JSONObject.toJSONString(markUser));
|
|
Object[] args = joinPoint.getArgs(); // 参数值
|
|
Object[] args = joinPoint.getArgs(); // 参数值
|
|
- String[] argNames = ((MethodSignature) joinPoint.getSignature()).getParameterNames();//参数名
|
|
|
|
|
|
+// String[] argNames = ((MethodSignature) joinPoint.getSignature()).getParameterNames();//参数名
|
|
JSONArray jsonArgsArray = JSONObject.parseArray(JSONObject.toJSONString(args));
|
|
JSONArray jsonArgsArray = JSONObject.parseArray(JSONObject.toJSONString(args));
|
|
- JSONArray jsonArgNamesArray = JSONObject.parseArray(JSONObject.toJSONString(argNames));
|
|
|
|
- LOGGER.info("jsonArgsArray:{},jsonArgNamesArray:{}", jsonArgsArray, jsonArgNamesArray);
|
|
|
|
- JSONObject jsonObject = (JSONObject) jsonArgsArray.get(0);
|
|
|
|
- JSONObject jsonObjectPaper = (JSONObject) jsonObject.get("paper");
|
|
|
|
- JSONObject jsonObjectResult = (JSONObject) jsonArgsArray.get(1);
|
|
|
|
- LOGGER.info("jsonObject:{},jsonObjectPaper:{},jsonObjectResult:{}", jsonObject, jsonObjectPaper, jsonObjectResult);
|
|
|
|
- MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeOrderByCreateTimeDesc(markUser.getId(), MarkLogOperType.LEVEL.getId());
|
|
|
|
- String operResult = "-";
|
|
|
|
- if (Objects.nonNull(markLogPrev)) {
|
|
|
|
- operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
|
- }
|
|
|
|
- MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), String.valueOf(jsonObjectPaper.get("examNumber")), String.valueOf(jsonObjectPaper.get("studentName")), MarkLogOperType.LEVEL.getId(), Long.parseLong(String.valueOf(jsonObject.get("workId"))), Long.parseLong(String.valueOf(jsonObjectPaper.get("id"))), MarkStage.valueOf(String.valueOf(jsonObjectResult.get("stage"))), operResult, String.valueOf(jsonObjectResult.get("result")), null);
|
|
|
|
- LOGGER.info("markLog:{}", JSONObject.toJSONString(markLog));
|
|
|
|
- markLogRepo.save(markLog);
|
|
|
|
|
|
+// JSONArray jsonArgNamesArray = JSONObject.parseArray(JSONObject.toJSONString(argNames));
|
|
|
|
+ LOGGER.info("jsonArgsArray:{},jsonArgNamesArray:{}", jsonArgsArray);
|
|
|
|
+// LOGGER.info("jsonArgNamesArray:{}", jsonArgNamesArray);
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
+ map.put(PARAM_ARGS, jsonArgsArray);
|
|
|
|
+// map.put(PARAM_ARG_NAMES, jsonArgNamesArray);
|
|
|
|
+ map.put(MARK_USER, markUser);
|
|
|
|
+ return map;
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
-
|
|
|
|
- @Pointcut("execution(* cn.com.qmth.stmms.ms.marking.api.PaperApi.marking(..))")
|
|
|
|
- public void getPaper() {
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @AfterReturning(pointcut = "getPaper()")
|
|
|
|
- @SuppressWarnings("unchecked") public void afterLevelMarkPaperPoint(JoinPoint joinPoint) {
|
|
|
|
- Paper paper = (Paper) joinPoint.getArgs()[0];
|
|
|
|
- HashMap<String,String> body = (HashMap<String, String>) joinPoint.getArgs()[1];
|
|
|
|
- String level = body.get("level");
|
|
|
|
- HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
|
|
|
|
- .getRequestAttributes()).getRequest();
|
|
|
|
- HttpSession session = request.getSession();
|
|
|
|
- String token = (String) session.getAttribute("token");
|
|
|
|
- if (!StringUtils.isEmpty(token)) {
|
|
|
|
- String loginName = token.substring(14);
|
|
|
|
- AbstractUser user = null;
|
|
|
|
- if(loginConfig.getLoginName().equals(loginName)){
|
|
|
|
- user = new Admin(loginConfig.getLoginName(),loginConfig.getPassword());
|
|
|
|
- user.setName("系统管理员");
|
|
|
|
- }
|
|
|
|
- else{
|
|
|
|
- user = markUserRepo.findByLoginName(loginName);
|
|
|
|
- }
|
|
|
|
- MarkLog markLog = new MarkLog(paper.getWorkId(),
|
|
|
|
- MarkStage.LEVEL,
|
|
|
|
- user.getLoginName(),
|
|
|
|
- user.getName(),
|
|
|
|
- paper.getExamNumber(),
|
|
|
|
- paper.getSecretNumber(),
|
|
|
|
- level);
|
|
|
|
- markLogRepo.save(markLog);
|
|
|
|
- }else{
|
|
|
|
- MarkLog markLog = new MarkLog(paper.getWorkId(),
|
|
|
|
- MarkStage.LEVEL,
|
|
|
|
- null,
|
|
|
|
- "科组长",
|
|
|
|
- paper.getExamNumber(),
|
|
|
|
- paper.getSecretNumber(),
|
|
|
|
- level);
|
|
|
|
- markLogRepo.save(markLog);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- **/
|
|
|
|
-
|
|
|
|
}
|
|
}
|