From 96286178ee1c257c130cb2ad964a781f36c4eee5 Mon Sep 17 00:00:00 2001
From: yn147 <2270338776@qq.com>
Date: 星期三, 10 五月 2023 16:23:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseInfoService.java |  356 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 178 insertions(+), 178 deletions(-)

diff --git a/src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseInfoService.java b/src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseInfoService.java
index 8efc799..f71fc0c 100644
--- a/src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseInfoService.java
+++ b/src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseInfoService.java
@@ -62,7 +62,7 @@
 
 /**
  * 鑰冭瘯
- * 
+ *
  * @author lihanqi
  *
  */
@@ -87,64 +87,64 @@
 
 	@Autowired
 	IHandoutService handoutService;
-	
+
 	@Autowired
 	IMsgInfoService msgInfoService;
-	
+
 	@Autowired
 	IExerciseCompleteService exerciseCompleteService;
-	
+
 	@Autowired
 	IExerciseGroupService exerciseGroupService;
-	
+
 	@Override
 	public List<ExerciseInfo> list(String keyword,String classId,Short status,Integer pageSize,Integer pageNum) {
 		StringBuffer hql = new StringBuffer(500);
 		hql.append("from ExerciseInfo e where e.name like ? and e.createId =? ");
 		List<Object> params = CollectionUtils.newList('%' + keyword.trim() + '%',ClientUtils.getUserId());
-		
+
 		if(status!=null){
 			hql.append(" and e.status = ? ");
 			params.add(status);
 		}
-		
+
 		if(StringUtils.isNotEmpty(classId)){
 			hql.append(" and exists(select 1 from ExerciseExamReClass r where e.exerciseInfoId=r.examId and r.classId = ? and r.deleteFlag is false)");
 			params.add(classId);
 		}
-		
+
 		hql.append(" and e.deleteFlag is false order by e.createTime desc");
 		return findList(hql.toString(),new Pager(pageSize, pageNum),params, ExerciseInfo.class);
 	}
-	
+
 	@Override
 	public int listCount(String keyword,String classId, Short status) {
 		StringBuffer hql = new StringBuffer(500);
 		hql.append("from ExerciseInfo e where e.name like ? and e.createId =? ");
 		List<Object> params = CollectionUtils.newList('%' + keyword.trim() + '%',ClientUtils.getUserId());
-		
+
 		if(status!=null){
 			hql.append(" and e.status = ? ");
 			params.add(status);
 		}
-		
+
 		if(StringUtils.isNotEmpty(classId)){
 			hql.append(" and exists(select 1 from ExerciseExamReClass r where e.exerciseInfoId=r.examId and r.classId = ? and r.deleteFlag is false)");
 			params.add(classId);
 		}
-		
+
 		hql.append(" and e.deleteFlag is false ");
 		return findCount(hql.toString(),params);
 	}
-	
+
 	/**
 	 * 淇濆瓨浣滀笟
-	 * 
+	 *
 	 * @return
 	 */
 	public Result insertExerciseInfo(ExerciseInfo exerciseInfo) {
 		String[] classIds = QBeanUtils.listPropertyVal(exerciseInfo.getReClasses(), "classId").toArray(new String[exerciseInfo.getReClasses().size()]);
-		
+
 		String exerciseInfoId = UUIDUtils.generateUUID().replace("-", "");
 		exerciseInfo.setExerciseInfoId(exerciseInfoId);
 		exerciseInfo.setOrgId(ClientUtils.getOrgId());
@@ -157,39 +157,39 @@
 			// 淇濆瓨棰樼洰绫诲瀷
 			List<ExerciseItemSet> lstExerciseItemSet = exerciseInfo.getExerciseItemSets();
 			this.saveExerciseItemSet(exerciseInfoId,lstExerciseItemSet);
-			
+
 			//鐢熸垚浣滀笟棰樼洰淇℃伅
 			String[] sourceGroupIds = QBeanUtils.listPropertyVal(exerciseInfo.getReGroups(), "groupId").toArray(new String[exerciseInfo.getReGroups().size()]);
-			
+
 			String newGroupId = this.exerciseGroupService.doCreateRandomExerciseGroup(
 					exerciseInfo.getName() + "-浣滀笟",ExerciseGroup.TYPE_EXERCISE_EXAM_ITEM,sourceGroupIds,lstExerciseItemSet);
-				
+
 			if(StringUtils.isEmpty(newGroupId)){
 				return new Result(false, "棰樼洰鏁版嵁涓嶅锛岃澧炲姞棰樺簱鐨勯鐩垨鑰呭噺灏戣瘯鍗风殑棰樻暟",exerciseInfoId);
 			}
-			
+
 			this.saveExerciseExamReGroup(exerciseInfoId,new String[]{newGroupId},EXAM_TYPES[0],ExerciseExamReGroup.GROUP_TYPE_EXAM);
-			
+
 			// 淇濆瓨鍏宠仈棰樺簱淇℃伅
 			this.saveExerciseExamReGroup(exerciseInfoId,sourceGroupIds,null,ExerciseExamReGroup.GROUP_TYPE_SOURCE);
 		}
-		
+
 		// 淇濆瓨鍏宠仈鐝骇
 		this.saveExerciseExamReClass(exerciseInfoId, classIds);
-		
+
 		return new Result(true, "", exerciseInfoId);
 	}
 
 	/**
 	 * 淇敼缁冧範
-	 * 
+	 *
 	 * @return
 	 */
 	public Result updateExerciseInfo(ExerciseInfo exerciseInfo) {
 		String[] classIds = QBeanUtils.listPropertyVal(exerciseInfo.getReClasses(), "classId").toArray(new String[exerciseInfo.getReClasses().size()]);
-		
+
 		String exerciseInfoId = exerciseInfo.getExerciseInfoId();
-		
+
 		ExerciseInfo newExerciseInfo = this.read(ExerciseInfo.class, exerciseInfoId);
 		newExerciseInfo.setScore(exerciseInfo.getScore());
 		newExerciseInfo.setClassCount(classIds == null ? 0 : classIds.length);
@@ -203,49 +203,49 @@
 		newExerciseInfo.setCommitUploadType(exerciseInfo.getCommitUploadType());
 		TraceUtils.setUpdateTrace(newExerciseInfo);
 		this.save(newExerciseInfo);
-		
+
 		//娓呯悊鏃у叧绯绘暟鎹�
 		this.doClearExerciseExamReData(exerciseInfoId);
-		
+
 		// 绛旈浣滀笟榛樿鎸夌収缁熶竴鍗风敓鎴愪綔涓氶鐩�
-		
+
 		if (newExerciseInfo.getType() == ExerciseInfo.EXERCISE_TYPE_ANSWER) {
-			
+
 			// 淇濆瓨棰樼洰绫诲瀷
 			List<ExerciseItemSet> lstExerciseItemSet = exerciseInfo.getExerciseItemSets();
-			
+
 			saveExerciseItemSet(exerciseInfoId,lstExerciseItemSet);
-			
+
 			//鐢熸垚浣滀笟棰樼洰淇℃伅
 			String[] groupIds = QBeanUtils.listPropertyVal(exerciseInfo.getReGroups(), "groupId").toArray(new String[exerciseInfo.getReGroups().size()]);
 			String newGroupId = this.exerciseGroupService.doCreateRandomExerciseGroup(
-						exerciseInfo.getName() + "-浣滀笟",ExerciseGroup.TYPE_EXERCISE_EXAM_ITEM,groupIds, lstExerciseItemSet);
-				
+					exerciseInfo.getName() + "-浣滀笟",ExerciseGroup.TYPE_EXERCISE_EXAM_ITEM,groupIds, lstExerciseItemSet);
+
 			if(StringUtils.isEmpty(newGroupId)){
 				return new Result(false, "棰樼洰鏁版嵁涓嶅锛岃澧炲姞棰樺簱鐨勯鐩垨鑰呭噺灏戣瘯鍗风殑棰樻暟");
 			}
-			
+
 			this.saveExerciseExamReGroup(exerciseInfoId,new String[]{newGroupId},EXAM_TYPES[0],ExerciseExamReGroup.GROUP_TYPE_EXAM);
-			
+
 			// 淇濆瓨鍏宠仈棰樺簱淇℃伅
 			this.saveExerciseExamReGroup(exerciseInfoId,groupIds,null,ExerciseExamReGroup.GROUP_TYPE_SOURCE);
-			
-		
+
+
 		}
 
 		// 淇濆瓨鍏宠仈鐝骇
 		this.saveExerciseExamReClass(exerciseInfoId, classIds);
-		
+
 		return new Result(true, "", exerciseInfoId);
 	}
-	
+
 	//娓呴櫎涔嬪墠鐨勭粌涔犲叧鑱斿叧绯绘暟鎹�
 	private void doClearExerciseExamReData(String exerciseInfoId){
 		this.bulkUpdate("update ExerciseExamReGroup set deleteFlag = 1 where examId = ?",new Object[]{exerciseInfoId});
 		this.bulkUpdate("update ExerciseExamReClass set deleteFlag = 1 where examId = ?",new Object[] {exerciseInfoId});
 		this.bulkUpdate("update ExerciseItemSet set deleteFlag = 1 where exerciseInfoId = ?",new Object[]{exerciseInfoId});
 	}
-	
+
 	private void saveExerciseExamReClass(String exerciseInfoId,String[] classIds){
 		ExerciseExamReClass reClass = null;
 		for (String classId : classIds) {
@@ -254,10 +254,10 @@
 			reClass.setDeleteFlag(false);
 			reClass.setExamId(exerciseInfoId);
 			TraceUtils.setCreateTrace(reClass);
-			this.save(reClass);	
+			this.save(reClass);
 		}
 	}
-	
+
 	private void saveExerciseExamReGroup(String exerciseInfoId, String [] groupIds,String examType,short reType){
 		ExerciseExamReGroup reGroup = null;
 		for (String groupId : groupIds) {
@@ -269,9 +269,9 @@
 			reGroup.setExamId(exerciseInfoId);
 			TraceUtils.setCreateTrace(reGroup);
 			this.save(reGroup);
-		}		
+		}
 	}
-	
+
 	private void saveExerciseItemSet(String exerciseInfoId,List<ExerciseItemSet> lstExerciseItemSet){
 		for (ExerciseItemSet itemSet : lstExerciseItemSet) {
 			itemSet.setExerciseInfoId(exerciseInfoId);
@@ -282,7 +282,7 @@
 
 	/**
 	 * 鍒犻櫎浣滀笟
-	 * 
+	 *
 	 * @param examId
 	 * @return
 	 */
@@ -293,43 +293,43 @@
 
 	@Override
 	public String queryExerciseInfoRelatedGroupId(String exerciseInfoId) {
-		return this.findUnique("select groupId from ExerciseExamReGroup where examId=? and type=? and deleteFlag is false ", 
-								CollectionUtils.newList(exerciseInfoId, ExerciseExamReGroup.GROUP_TYPE_EXAM),String.class);
+		return this.findUnique("select groupId from ExerciseExamReGroup where examId=? and type=? and deleteFlag is false ",
+				CollectionUtils.newList(exerciseInfoId, ExerciseExamReGroup.GROUP_TYPE_EXAM),String.class);
 	}
-	
-	
+
+
 	@Override
 	public List<ExerciseItemSet> queryExerciseItemSet(String exerciseInfoId){
-		return this.find("from ExerciseItemSet where exerciseInfoId=? and deleteFlag is false order by itemType ASC", 
+		return this.find("from ExerciseItemSet where exerciseInfoId=? and deleteFlag is false order by itemType ASC",
 				CollectionUtils.newList(exerciseInfoId), ExerciseItemSet.class);
 	}
-	
+
 	@Override
 	public List<ExerciseResultV> queryStuExerciselist(String keyword,String exerciseInfoId,String userId,String subjectId,Short status,Integer pageSize,Integer pageNum) {
 		StringBuffer hql = new StringBuffer(500);
 		hql.append("from ExerciseResultV where exerciseStatus=?");
 		List<Object> params = CollectionUtils.newList(ExerciseInfo.EXERCISE_STATUS_PUBLISHED);
-		
+
 		if(!StringUtils.isEmpty(userId)){
 			hql.append(" and userId=? ");
-			params.add(userId);	
+			params.add(userId);
 		}
-		
+
 		if(!StringUtils.isEmpty(exerciseInfoId)){
 			hql.append(" and id.exerciseInfoId=?");
-			params.add(exerciseInfoId);	
+			params.add(exerciseInfoId);
 		}
-		
+
 		if(!StringUtils.isEmpty(keyword)){
 			hql.append(" and studentName like ?");
-			params.add("%" + keyword.trim() + "%");	
+			params.add("%" + keyword.trim() + "%");
 		}
-		
+
 		if(!StringUtils.isEmpty(subjectId)){
 			hql.append(" and subjectId=?");
 			params.add(subjectId);
 		}
-		
+
 		//榛樿鍏ㄩ儴锛�0寰呭畬鎴愶紝1宸叉彁浜� ,2:宸叉壒闃�,3闇�閲嶅啓,4:閫炬湡鏈氦
 		if(status!=null){
 			Date nowTime = new Date();
@@ -353,38 +353,38 @@
 				params.add(ExerciseCompleteInfo.STATUS_DRAFT);
 			}
 		}
-		
+
 		hql.append(" order by startTime desc");
-		
+
 		return this.findList(hql.toString(),new Pager(pageSize, pageNum),params, ExerciseResultV.class);
 	}
-	
+
 	@Override
 	public int queryStuExerciseListCount(String keyword,String exerciseInfoId,String userId,String subjectId,Short status) {
 		StringBuffer hql = new StringBuffer(500);
 		hql.append("from ExerciseResultV where exerciseStatus=?");
 		List<Object> params = CollectionUtils.newList(ExerciseInfo.EXERCISE_STATUS_PUBLISHED);
-		
+
 		if(!StringUtils.isEmpty(userId)){
 			hql.append(" and userId=? ");
-			params.add(userId);	
+			params.add(userId);
 		}
-		
+
 		if(!StringUtils.isEmpty(exerciseInfoId)){
 			hql.append(" and id.exerciseInfoId=?");
-			params.add(exerciseInfoId);	
+			params.add(exerciseInfoId);
 		}
-		
+
 		if(!StringUtils.isEmpty(keyword)){
 			hql.append(" and studentName like ?");
 			params.add("%" + keyword.trim() + "%");
 		}
-		
+
 		if(!StringUtils.isEmpty(subjectId)){
 			hql.append(" and subjectId=?");
 			params.add(subjectId);
 		}
-		
+
 		//榛樿鍏ㄩ儴锛�0寰呭畬鎴愶紝1宸叉彁浜� ,2:宸叉壒闃�,3闇�閲嶅啓,4:閫炬湡鏈氦
 		if(status!=null){
 			Date nowTime = new Date();
@@ -408,13 +408,13 @@
 				params.add(ExerciseCompleteInfo.STATUS_DRAFT);
 			}
 		}
-		
-		return  this.findCount(hql.toString(), params); 
+
+		return  this.findCount(hql.toString(), params);
 	}
-	
+
 	/**
 	 * 鍒濆鍖栧钩鍧囨垚缁╁拰鏈�楂樻垚缁�
-	 * 
+	 *
 	 * @param groupId
 	 * @return
 	 */
@@ -428,7 +428,7 @@
 
 	/**
 	 * 棰樼洰寰楀垎璇︽儏
-	 * 
+	 *
 	 * @param groupId
 	 * @return
 	 */
@@ -495,7 +495,7 @@
 
 	/**
 	 * 寮�濮嬮鐩綔涓�
-	 * 
+	 *
 	 * @param examId
 	 * @return
 	 */
@@ -506,12 +506,12 @@
 				this.doStartAnswerExercise(exerciseInfo, clsClass, studentUserId)
 				:
 				this.doStartOtherExercise(exerciseInfo, clsClass, studentUserId);
-		
+
 	}
 
 	/**
 	 * 寮�濮嬮鐩綔涓�
-	 * 
+	 *
 	 * @param examId
 	 * @return
 	 */
@@ -559,51 +559,51 @@
 		// 鏌ヨ瀛︾敓鑰冭瘯鎬诲垎
 		result.addData("studentScore", record.getScore());
 		result.addData("objStudentScore", record.getObjScore()==null?BigDecimal.ZERO:record.getObjScore());
-		
+
 		ExerciseCompleteInfo completeInfo = doGetOrCreateExerciseCompleteInfo(exerciseInfo.getExerciseInfoId(),clsClass.getClassId() , studentUserId);
-		
+
 		if(completeInfo!=null){
 			result.addData("exerciseCompleteId", completeInfo.getExerciseCompleteId());
 		}
-		
+
 		result.addData("itemSet", exerciseInfo.getExerciseItemSets());
 
 		return result;
 	}
-	
+
 	private ExerciseCompleteInfo doGetOrCreateExerciseCompleteInfo(String exerciseInfoId,String classId,String studentUserId){
-		  // 鍒ゆ柇鏄惁宸茬粡鍒濆鍖�
-			ExerciseCompleteInfo completeInfo = exerciseCompleteService.queryCompleteInfo(exerciseInfoId,classId , studentUserId);
-			
-			if(completeInfo==null){
-				String hql = " select s.studentId as studentId,s.studentNo as studentNo,s.userId as studentUserId,s.name as studentName,"
-						+ " c.classId as classId,c.name as className from StuStudent s ,ClsClass c,ExerciseExamReClass r  "
-						+ " where r.examId=:exerciseInfoId and r.classId =c.classId and c.classId= s.classId and s.userId=:userId"
-						+ " and s.classId=:classId and r.examId=:exerciseInfoId  and r.deleteFlag is false and s.deleteFlag is false and c.deleteFlag is false";
-			
-				List<Map<String, Object>> resultMap = this.findListWithMapByHql(hql, 
+		// 鍒ゆ柇鏄惁宸茬粡鍒濆鍖�
+		ExerciseCompleteInfo completeInfo = exerciseCompleteService.queryCompleteInfo(exerciseInfoId,classId , studentUserId);
+
+		if(completeInfo==null){
+			String hql = " select s.studentId as studentId,s.studentNo as studentNo,s.userId as studentUserId,s.name as studentName,"
+					+ " c.classId as classId,c.name as className from StuStudent s ,ClsClass c,ExerciseExamReClass r  "
+					+ " where r.examId=:exerciseInfoId and r.classId =c.classId and c.classId= s.classId and s.userId=:userId"
+					+ " and s.classId=:classId and r.examId=:exerciseInfoId  and r.deleteFlag is false and s.deleteFlag is false and c.deleteFlag is false";
+
+			List<Map<String, Object>> resultMap = this.findListWithMapByHql(hql,
 					CollectionUtils.newObjectMap("userId",studentUserId,"classId",classId,"exerciseInfoId",exerciseInfoId));
-				
-				if(resultMap!=null && resultMap.get(0)!=null){
-					Map<String, Object> map = resultMap.get(0);
-					
-					completeInfo = new ExerciseCompleteInfo();
-					TraceUtils.setCreateTrace(completeInfo);
-					completeInfo.setStudentId((String) map.get("studentId"));
-					completeInfo.setStudentNo((String) map.get("studentNo"));
-					completeInfo.setStudentUserId((String) map.get("studentUserId"));
-					completeInfo.setStudentUserName((String) map.get("studentName"));
-					completeInfo.setClassId((String) map.get("classId"));
-					completeInfo.setClassName((String) map.get("className"));
-					completeInfo.setExerciseInfoId(exerciseInfoId);
-					completeInfo.setCompleteStatus(ExerciseCompleteInfo.STATUS_DRAFT);
-					this.save(completeInfo);
-				}
+
+			if(resultMap!=null && resultMap.get(0)!=null){
+				Map<String, Object> map = resultMap.get(0);
+
+				completeInfo = new ExerciseCompleteInfo();
+				TraceUtils.setCreateTrace(completeInfo);
+				completeInfo.setStudentId((String) map.get("studentId"));
+				completeInfo.setStudentNo((String) map.get("studentNo"));
+				completeInfo.setStudentUserId((String) map.get("studentUserId"));
+				completeInfo.setStudentUserName((String) map.get("studentName"));
+				completeInfo.setClassId((String) map.get("classId"));
+				completeInfo.setClassName((String) map.get("className"));
+				completeInfo.setExerciseInfoId(exerciseInfoId);
+				completeInfo.setCompleteStatus(ExerciseCompleteInfo.STATUS_DRAFT);
+				this.save(completeInfo);
 			}
-			
-			return completeInfo;
+		}
+
+		return completeInfo;
 	}
-	
+
 	private Map<String,Object>  insertExerRecord(ExerciseInfo exerciseInfo,String groupId) {
 		ExerciseRecord record = new ExerciseRecord();
 		record.setDeleteFlag(false);
@@ -616,7 +616,7 @@
 		record.setUserId(ClientUtils.getUserId());
 		record.setOrgId(ClientUtils.getOrgId());
 		TraceUtils.setCreateTrace(record);
-		
+
 		//鑾峰彇鑰冭瘯棰樼洰缁熻淇℃伅锛屽苟淇濆瓨
 		Map<String,Object> result = this.queryItemStatics(exerciseInfo.getExerciseItemSets());
 		record.setTotalScore(new BigDecimal(exerciseInfo.getScore()));
@@ -625,23 +625,23 @@
 		record.setObjTotalScore((BigDecimal)result.get("objTotalScore"));
 		record.setSubItemCount((int)result.get("subItemCount"));
 		record.setObjItemCount((int)result.get("objItemCount"));
-		
+
 		TraceUtils.setCreateTrace(record);
 		this.save(record);
-		
+
 		Map<String,Object> resultMap = new HashMap<String, Object>(3);
 		resultMap.put("exerciseRecordId", record.getRecordId());
 		resultMap.put("updateTime", DateTimeUtils.getCurrDateTime(record.getUpdateTime()));
 		resultMap.put("exerciseGroupId", groupId);
 		resultMap.put("record", record);
-		
+
 		return resultMap;
 	}
-	
+
 	private Map<String,Object> queryItemStatics(List<ExerciseItemSet> itemSets){
 		float subTotalScore = 0,objTotalScore=0;
 		int subItemCount=0,objItemCount=0;
-		
+
 		//濡傛灉鏄殢鏈虹粍鍗�
 		if(itemSets!=null && itemSets.size()>0){
 			for(ExerciseItemSet s:itemSets){
@@ -654,19 +654,19 @@
 				}
 			}
 		}
-			
+
 		Map<String,Object> result = new HashMap<String,Object>();
 		result.put("subTotalScore", new BigDecimal(subTotalScore));
 		result.put("objTotalScore", new BigDecimal(objTotalScore));
 		result.put("subItemCount", subItemCount);
 		result.put("objItemCount", objItemCount);
-		
+
 		return result;
-	}	
+	}
 
 	/**
 	 * 寮�濮嬫枃浠跺拰鍐欎綔浣滀笟
-	 * 
+	 *
 	 * @param examId
 	 * @return
 	 */
@@ -674,7 +674,7 @@
 		// 鏌ヨ鏄惁宸茬粡瀛樺湪鍋氶璁板綍锛屽鏋滀笉瀛樺湪闇�瑕佹柊寤�
 		ExerciseCompleteInfo exerciseCompleteInfo = exerciseCompleteService.doCheckAndCreateExerciseCompleteInfo(
 				exerciseInfo.getExerciseInfoId(), clsClass.getClassId(), studentUserId);
-		
+
 		exerciseCompleteInfo.setCommitUploadType(exerciseInfo.getCommitUploadType());
 		exerciseCompleteInfo.setRemind(exerciseInfo.getRemind());
 		exerciseCompleteInfo.setExerciseType(exerciseInfo.getType());
@@ -690,7 +690,7 @@
 					exerciseCompleteInfo
 							.setPreviewPath(StringUtils.isNotEmpty(video.getAndroidHD()) ? video.getAndroidHD()
 									: StringUtils.isNotEmpty(video.getAndroidSD()) ? video.getAndroidSD()
-											: video.getAndroidLD());
+									: video.getAndroidLD());
 				} else {
 					exerciseCompleteInfo.setTransStatus(ExerciseCompleteInfo.PREVIEW_STATUS_NO);
 				}
@@ -714,7 +714,7 @@
 					.getOrgText(exerciseCompleteInfo.getExerciseCompleteId(), OrgText.TABLE_WRITING_EXERCISE)
 					.getContent());
 		}
-		
+
 		exerciseCompleteInfo.setTotalScore(exerciseInfo.getScore());
 
 		return new Result(true,"",CollectionUtils.newObjectMap("exerciseCompleteInfo", exerciseCompleteInfo));
@@ -722,11 +722,11 @@
 
 	@Override
 	public Result doSubmitOtherExerciseInfo(String exerciseCompleteInfoId, String content, String fileId,
-			String filePath, short submitType) {
+											String filePath, short submitType) {
 		Result result = new Result(true);
 		ExerciseCompleteInfo exerciseCompleteInfo = this.read(ExerciseCompleteInfo.class, exerciseCompleteInfoId);
 		ExerciseInfo exerciseInfo = this.read(ExerciseInfo.class, exerciseCompleteInfo.getExerciseInfoId());
-		
+
 		if (exerciseInfo.getType() == ExerciseInfo.EXERCISE_TYPE_WRITING) {
 			result = this.doSubmitWritingExerciseInfo(exerciseCompleteInfoId, content, submitType);
 		} else if (exerciseInfo.getType() == ExerciseInfo.EXERCISE_TYPE_FILE) {
@@ -738,7 +738,7 @@
 
 	/**
 	 * 鎻愪氦鍐欎綔浣滀笟
-	 * 
+	 *
 	 * @param exerciseInfoId
 	 * @param content
 	 * @param submitType
@@ -762,14 +762,14 @@
 			exerciseCompleteInfo.setCompleteStatus(ExerciseCompleteInfo.STATUS_COMMIT);
 			exerciseCompleteInfo.setCreator(ClientUtils.getUserName());
 		}
-	
+
 		this.save(exerciseCompleteInfo);
 		return new Result(true);
 	}
 
 	/**
 	 * 鎻愪氦鏂囦欢浣滀笟
-	 * 
+	 *
 	 * @param exerciseCompleteInfoId
 	 * @param content
 	 * @param fileId
@@ -778,7 +778,7 @@
 	 * @return
 	 */
 	private Result doSubmitFileExerciseInfo(String exerciseCompleteInfoId, String content, String fileId,
-			String filePath, short submitType) {
+											String filePath, short submitType) {
 		ExerciseCompleteInfo exerciseCompleteInfo = this.read(ExerciseCompleteInfo.class, exerciseCompleteInfoId);
 		ExerciseInfo exerciseInfo = this.read(ExerciseInfo.class, exerciseCompleteInfo.getExerciseInfoId());
 
@@ -794,7 +794,7 @@
 			ResFile resFile = this.read(ResFile.class, fileId);
 			exerciseCompleteInfo.setFileId(fileId);
 			exerciseCompleteInfo.setFilePath(filePath);
-			exerciseCompleteInfo.setOrgiFileName(resFile.getFileName());
+			exerciseCompleteInfo.setOrgiFileName(ClientUtils.getUserName()+"鐨勪綔涓�");
 		}
 
 		exerciseCompleteInfo.setUploadDesc(content);
@@ -885,12 +885,12 @@
 
 				return new Result(false, "鎻愪氦鏁版嵁寮傚父");
 			}
-			
+
 			ExerciseRecord record = this.read(ExerciseRecord.class, initRecordId);
 
 			//璁$畻寰楀垎
 			double studentScore = this.doCalculateExerciseScores(answerData, exerciseInfo.getExerciseItemSets());
-			
+
 			// 鎻愪氦璇曞嵎绛旀
 			answerData.setScore(new BigDecimal(studentScore));
 			Map<String, Object> resultMap = exerciseVerService.doOperExerciseAnswerData(answerData);
@@ -898,19 +898,19 @@
 			// 鏇存柊寰楀垎璁板綍鍙婄姸鎬�
 			exerciseCompleteInfo = this.read(ExerciseCompleteInfo.class, exerciseCompleteId);
 			resultMap.put("studentScore", studentScore);
-		
-			
+
+
 			// 鏇存柊瀹屾垚寰楀垎
 			if (ExerciseRecord.STATUS_SUBMIT.equals(answerData.getStatus())) {
 				resultMap.put("objScore", studentScore);
 				exerciseCompleteInfo.setSubmitTime(new Date());
-				
+
 				if(record.getSubItemCount()==0){
 					exerciseCompleteInfo.setCompleteStatus(ExerciseCompleteInfo.STATUS_CHECKED);
 				}else{
 					exerciseCompleteInfo.setCompleteStatus(ExerciseCompleteInfo.STATUS_COMMIT);
 				}
-				
+
 				this.bulkUpdate(
 						"update ExerciseRecord set status=1 , score=" + studentScore + ",objScore=" + studentScore
 								+ " where deleteFlag is false and recordId=?",
@@ -928,10 +928,10 @@
 								+ " where deleteFlag is false and recordId=? ",
 						new Object[] { resultMap.get("recordId") });
 			}
-			exerciseCompleteInfo.setStudentScore(new BigDecimal(studentScore));	
-			
+			exerciseCompleteInfo.setStudentScore(new BigDecimal(studentScore));
+
 			this.save(exerciseCompleteInfo);
-			
+
 			// 璁板綍鎻愪氦鐨勬暟鎹棩蹇�
 			exerciseVerService.doSaveExerciseDataSubmitLog(JSON.toJSONString(answerData), initRecordId,
 					ExerciseDataSubmitLog.TYPE_SUBMIT_ANSWER, ExerciseDataSubmitLog.STATUS_SUCCESS,
@@ -956,15 +956,15 @@
 	private double doCalculateExerciseScores(ExerciseSubmitAnswerData answerData, List<ExerciseItemSet> lstItemSet) {
 		//鑾峰彇濉┖棰樼瓟妗堜俊鎭�
 		Map<String,String> exerciseFillItemMap= null;
-		List<Object[]> lstObj =  this.find("select i.exerciseId,i.answer from ExerciseGroupItemRe r, ExerciseItem i where r.exerciseItemId=i.exerciseId and  r.exerciseGroupId=? and r.deleteFlag is false and i.type=? and i.deleteFlag is false", 
+		List<Object[]> lstObj =  this.find("select i.exerciseId,i.answer from ExerciseGroupItemRe r, ExerciseItem i where r.exerciseItemId=i.exerciseId and  r.exerciseGroupId=? and r.deleteFlag is false and i.type=? and i.deleteFlag is false",
 				CollectionUtils.newList(answerData.getExerciseGroupId(),ExerciseItem.TYPE_FILL_BLANKS), Object[].class);
 		if(lstObj!=null && lstObj.size()>0){
 			exerciseFillItemMap = new HashMap<String,String>(lstObj.size());
 			for(Object[] arrObj : lstObj){
 				exerciseFillItemMap.put((String)arrObj[0],(String)arrObj[1]);
-			}	
+			}
 		}
-		
+
 		Map<String, Double> scoreMap = new HashMap<String, Double>();
 		for (int i = 0; i < lstItemSet.size(); i++) {
 			if (lstItemSet.get(i).getItemType() == ExerciseItem.TYPE_SINGLE_SELECT) {
@@ -983,7 +983,7 @@
 				scoreMap.put("fill_right", lstItemSet.get(i).getRightScore());
 				scoreMap.put("fill_wrong", lstItemSet.get(i).getWrongScore());
 				scoreMap.put("fill_noanswer", lstItemSet.get(i).getBlankScore());
-			} 
+			}
 		}
 		double totalScore = 0.00;
 		String tempRightAnswer =null;
@@ -1040,7 +1040,7 @@
 
 		return totalScore;
 	}
-	
+
 	@Override
 	public Result doPublishExercise(String[] exerciseIds) {
 		// 鏇存柊浣滀笟鐘舵��
@@ -1054,7 +1054,7 @@
 		for (String exerciseId : exerciseIds) {
 			// 鍒ゆ柇鏄惁宸茬粡鍒濆鍖栵紝濡傛灉宸茬粡鍒濆鍖栧垯缁х画 -> TODO:闇�瑕佸鐞嗘柊鍔犲叆鐝骇瀛︾敓
 			int count = this.findCount("from ExerciseCompleteInfo f where f.deleteFlag is false and f.exerciseInfoId=?",CollectionUtils.newList(exerciseId));
-			
+
 			if (count == 0) {
 				hql = " select s.studentId as studentId,s.studentNo as studentNo,s.userId as studentUserId,s.name as studentName,c.classId as classId,c.name as className "
 						+ " from StuStudent s ,ClsClass c,ExerciseExamReClass r where r.examId=:exerciseInfoId "
@@ -1079,26 +1079,26 @@
 					this.saveOrUpdateAll(lstCompleteInfos);
 				}
 			}
-			
+
 			//鍙戝竷浣滀笟娑堟伅
 			this.doExercisePublishMsg(exerciseId);
 		}
-		
+
 		return new Result(true);
 	}
-	
+
 	private void doExercisePublishMsg(String exerciseInfoId){
 		ExerciseInfo exerciseInfo= this.read(ExerciseInfo.class, exerciseInfoId);
-		
-		List<String> lstUserIds = this.find("select userId from ExerciseResultV where id.exerciseInfoId=?", 
-										CollectionUtils.newList(exerciseInfoId), String.class);
-		
+
+		List<String> lstUserIds = this.find("select userId from ExerciseResultV where id.exerciseInfoId=?",
+				CollectionUtils.newList(exerciseInfoId), String.class);
+
 		if(lstUserIds!=null && lstUserIds.size()>0){
 			Map<String,String> attrs = CollectionUtils.newStringMap("exerciseInfoId",exerciseInfoId,"exerciseName",exerciseInfo.getName(),
-					"subjectId",exerciseInfo.getSubjectId(),"subjectName",exerciseInfo.getSubject().getName()); 
-			
-			msgInfoService.doSendTextMsgToUsers(lstUserIds.toArray(new String[lstUserIds.size()]), 
-										MsgInfo.TYPE_EXERCISE," 鍙戝竷浜嗕綔涓� ", attrs);
+					"subjectId",exerciseInfo.getSubjectId(),"subjectName",exerciseInfo.getSubject().getName());
+
+			msgInfoService.doSendTextMsgToUsers(lstUserIds.toArray(new String[lstUserIds.size()]),
+					MsgInfo.TYPE_EXERCISE," 鍙戝竷浜嗕綔涓� ", attrs);
 		}
 	}
 
@@ -1108,7 +1108,7 @@
 		this.bulkUpdateInLoop("update ExerciseInfo set status=" + ExerciseInfo.EXERCISE_STATUS_DRAFT + " WHERE exerciseInfoId=?",exerciseIds);
 		// 娓呴櫎浣滀笟瀹屾垚鎯呭喌
 		this.bulkUpdateInLoop("update ExerciseCompleteInfo set deleteFlag= true  WHERE exerciseInfoId=?", exerciseIds);
-		
+
 		return new Result(true);
 	}
 
@@ -1160,7 +1160,7 @@
 
 	/**
 	 * 鑾峰彇瀹屾垚鐨勪綔涓氫釜鏁�
-	 * 
+	 *
 	 * @param classId
 	 * @param userId
 	 * @return
@@ -1197,10 +1197,10 @@
 				CollectionUtils.newObjectMap("classId", classId, "status", ExerciseInfo.EXERCISE_STATUS_PUBLISHED));
 		return exerciseCount;
 	}
-	
+
 	/**
 	 * 鏌ヨ浣滀笟鍒楄〃-鏁欏笀绔�
-	 * 
+	 *
 	 * @param pageSize
 	 * @param keyword
 	 * @param classId
@@ -1210,19 +1210,19 @@
 	public List<Map<String, Object>> teacherExerciseInfoList(Integer pageSize,String keyword,String classId,Integer pageNum) {
 		QHomeworkScoreV qHomeworkScoreV = QHomeworkScoreV.homeworkScoreV;
 		QExerciseInfo qExerciseInfo = QExerciseInfo.exerciseInfo;
-		
+
 		Expression<Integer> cases = new CaseBuilder()
-			    .when(qHomeworkScoreV.completeStatus.isNull()).then(1)
-			    .otherwise(0).sum().as("homeworkNoSubmitCount");
-		
+				.when(qHomeworkScoreV.completeStatus.isNull()).then(1)
+				.otherwise(0).sum().as("homeworkNoSubmitCount");
+
 		Expression<Integer> cases2 = new CaseBuilder()
-			    .when(qHomeworkScoreV.completeStatus.eq(String.valueOf(ExerciseCompleteInfo.STATUS_CHECKED))).then(1)
-			    .otherwise(0).sum().as("homeworkToAuditCount");
-		
+				.when(qHomeworkScoreV.completeStatus.eq(String.valueOf(ExerciseCompleteInfo.STATUS_CHECKED))).then(1)
+				.otherwise(0).sum().as("homeworkToAuditCount");
+
 		Expression<Integer> cases3 = new CaseBuilder()
-			    .when(qHomeworkScoreV.completeStatus.eq(String.valueOf(ExerciseCompleteInfo.STATUS_COMMIT))).then(1)
-			    .otherwise(0).sum().as("homeworkHasAuditCount");
-		
+				.when(qHomeworkScoreV.completeStatus.eq(String.valueOf(ExerciseCompleteInfo.STATUS_COMMIT))).then(1)
+				.otherwise(0).sum().as("homeworkHasAuditCount");
+
 		return this.getQueryFactory().select(cases,cases2,cases3, qExerciseInfo.name.max(),
 				qExerciseInfo.startTime.max(), qExerciseInfo.endTime.max(), qExerciseInfo.type.max()).from(qHomeworkScoreV, qExerciseInfo)
 				.where(qHomeworkScoreV.classId.eq(classId)
@@ -1242,21 +1242,21 @@
 					return map;
 				}).collect(Collectors.toList());
 	}
-	
+
 	@Override
 	public Map<String,Integer> queryResultStatusCount(List<String> lstExerciseIds) {
 		if(lstExerciseIds== null || lstExerciseIds.size()==0){
 			return null;
 		}
-		
+
 		String hql = "select id.exerciseInfoId||'-'||completeStatus ,count(1)  from ExerciseResultV "
-						+ "where id.exerciseInfoId in(:exerciseIds) group by id.exerciseInfoId,completeStatus";
-		
-		List<Object[]> lstResult = this.findByComplexHql(hql, 
+				+ "where id.exerciseInfoId in(:exerciseIds) group by id.exerciseInfoId,completeStatus";
+
+		List<Object[]> lstResult = this.findByComplexHql(hql,
 				CollectionUtils.newObjectMap("exerciseIds",lstExerciseIds.toArray(new String[lstExerciseIds.size()])), Object[].class);
-		
-		Map<String,Integer> resultMap = new HashMap<String,Integer>(lstResult.size()); 
-		
+
+		Map<String,Integer> resultMap = new HashMap<String,Integer>(lstResult.size());
+
 		for(Object[] o:lstResult){
 			resultMap.put((String)o[0],((Long)o[1]).intValue());
 		}

--
Gitblit v1.8.0