Forráskód Böngészése

Merge remote-tracking branch 'origin/dev' into dev

wangliang 4 éve
szülő
commit
8d788c7012

+ 2 - 2
themis-business/src/main/java/com/qmth/themis/business/cache/ExamRecordCacheUtil.java

@@ -35,7 +35,7 @@ public class ExamRecordCacheUtil {
 
 	public static void setFirstStartTime(Long recordId, Date date) {
 		redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), "firstStartTime", date);
-		examRecordService.dataUpdateMq(recordId, "first_start_time", date);
+		examRecordService.dataUpdateMq(recordId, "first_start_time", date,1);
 	}
 
 	public static void setStatus(Long recordId, ExamRecordStatusEnum status) {
@@ -62,7 +62,7 @@ public class ExamRecordCacheUtil {
 
 	public static void setFinishTime(Long recordId, Date finishTime) {
 		redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), "finishTime", finishTime);
-		examRecordService.dataUpdateMq(recordId, "finish_time", finishTime);
+		examRecordService.dataUpdateMq(recordId, "finish_time", finishTime,1);
 	}
 
 	public static Date getFinishTime(Long recordId) {

+ 9 - 1
themis-business/src/main/java/com/qmth/themis/business/service/TOeExamRecordService.java

@@ -59,7 +59,7 @@ public interface TOeExamRecordService extends IService<TOeExamRecord> {
 	 * @param colName
 	 * @param colValue
 	 */
-	void dataUpdate(Long recordId, String colName, Object colValue);
+	void dataUpdate(Long recordId, String colName, Object colValue,Integer isDate);
 
 	/**考试记录初始化消息发送
 	 * @param param
@@ -71,4 +71,12 @@ public interface TOeExamRecordService extends IService<TOeExamRecord> {
 	 */
 	void dataInit(Map<String, Object> param);
 
+	/**考试记录字段同步消息发送
+	 * @param recordId
+	 * @param colName
+	 * @param colValue
+	 * @param isDate
+	 */
+	void dataUpdateMq(Long recordId, String colName, Object colValue, Integer isDate);
+
 }

+ 26 - 5
themis-business/src/main/java/com/qmth/themis/business/service/impl/TOeExamRecordServiceImpl.java

@@ -379,32 +379,53 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
 	
 	@Override
 	public void dataUpdateMq(Long recordId,String colName,Object colValue) {
+		dataUpdateMq(recordId, colName, colValue, 0);
+	}
+	@Override
+	public void dataUpdateMq(Long recordId,String colName,Object colValue,Integer isDate) {
 		Map<String, Object> transMap = new HashMap<String, Object>();
 		transMap.put("recordId", recordId);
         transMap.put("colName", colName);
         transMap.put("colValue", colValue);
+        transMap.put("isDate", isDate);
         //mq发送消息start
-        MqDto mqDto = new MqDto(MqTopicEnum.themisTopic.getCode(), MqTagEnum.examRecordUpdate.name(), transMap, MqEnum.EXAM, null, null);
+        MqDto mqDto = new MqDto(MqTopicEnum.themisTopic.getCode(), MqTagEnum.examRecordUpdate.name(), transMap, MqEnum.EXAM, recordId.toString(), colName);
         mqDtoService.assembleSendOneWayMsg(mqDto);
 	}
 
 	@Transactional
 	@Override
-	public void dataUpdate(Long recordId, String colName, Object colValue) {
-		tOeExamRecordMapper.dataUpdate(recordId, colName, colValue);
+	public void dataUpdate(Long recordId, String colName, Object colValue,Integer isDate) {
+		if(isDate!=null&&isDate.intValue()==1) {
+			Long l=(Long)colValue;
+			Date d=new Date(l);
+			tOeExamRecordMapper.dataUpdate(recordId, colName, d);
+		}else {
+			tOeExamRecordMapper.dataUpdate(recordId, colName, colValue);
+		}
 	}
 	
 	@Override
 	public void dataInitMq(Map<String, Object> param) {
+		Long id=(Long)param.get("id");
         //mq发送消息start
-        MqDto mqDto = new MqDto(MqTopicEnum.themisTopic.getCode(), MqTagEnum.examRecordInit.name(), param, MqEnum.EXAM, null, null);
+        MqDto mqDto = new MqDto(MqTopicEnum.themisTopic.getCode(), MqTagEnum.examRecordInit.name(), param, MqEnum.EXAM, id.toString(), id.toString());
         mqDtoService.assembleSendOneWayMsg(mqDto);
 	}
 
 	@Transactional
 	@Override
 	public void dataInit(Map<String, Object> param) {
-		TOeExamRecord tr=SimpleBeanUtil.mapToObject(param, TOeExamRecord.class);
+		TOeExamRecord tr=new TOeExamRecord();
+		tr.setId((Long)param.get("id"));
+		tr.setExamId((Long)param.get("examId"));
+		tr.setExamActivityId((Long)param.get("examActivityId"));
+		tr.setExamStudentId((Long)param.get("examStudentId"));
+		tr.setPaperId((Long)param.get("paperId"));
+		tr.setSerialNumber((Integer)param.get("serialNumber"));
+		tr.setFirstPrepareTime(new Date((Long)param.get("firstPrepareTime")));
+		tr.setStatus(ExamRecordStatusEnum.valueOf((String)param.get("status")));
+		tr.setObjectiveScore(0.0);
 		saveOrUpdate(tr);
 	}
 	

+ 3 - 2
themis-mq/src/main/java/com/qmth/themis/mq/service/impl/MqLogicServiceImpl.java

@@ -374,8 +374,9 @@ public class MqLogicServiceImpl implements MqLogicService {
         Map<String, Object> param = (Map<String, Object>) mqDto.getBody();
         Long recordId = (Long) param.get("recordId");
         String colName = (String) param.get("colName");
-        String colValue = (String) param.get("colValue");
-        examRecordService.dataUpdate(recordId, colName, colValue);
+        Object colValue = (Object) param.get("colValue");
+        Integer isDate = (Integer) param.get("isDate");
+        examRecordService.dataUpdate(recordId, colName, colValue,isDate);
         mqDto.setAck(SystemConstant.STANDARD_ACK_TYPE);
         TMRocketMessage tmRocketMessage = gson.fromJson(gson.toJson(mqDto), TMRocketMessage.class);
         tmRocketMessage.setBody(JacksonUtil.parseJson(tmRocketMessage.getBody()));