From 5fe230dd294a038a867f8b3f53035a317895c346 Mon Sep 17 00:00:00 2001
From: Administrator <2863138610@qq.com>
Date: 星期二, 13 十二月 2022 16:33:22 +0800
Subject: [PATCH] 解决问卷管理只能看到访问对象课程的问卷的问题

---
 src/main/java/com/qxueyou/scc/evaluate/service/impl/EvaluateService.java |  514 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 294 insertions(+), 220 deletions(-)

diff --git a/src/main/java/com/qxueyou/scc/evaluate/service/impl/EvaluateService.java b/src/main/java/com/qxueyou/scc/evaluate/service/impl/EvaluateService.java
index 844a2f4..1517c87 100644
--- a/src/main/java/com/qxueyou/scc/evaluate/service/impl/EvaluateService.java
+++ b/src/main/java/com/qxueyou/scc/evaluate/service/impl/EvaluateService.java
@@ -13,6 +13,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.tools.ant.taskdefs.Concat;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -66,21 +67,21 @@
 
 @Service
 public class EvaluateService extends CommonAppService implements IEvaluateService {
-	
+
 	private final Logger log = LogManager.getLogger(EvaluateService.class);
-	
+
 	@Autowired
 	EvaluateRepository evaRepository;
-	
+
 	@Autowired
 	IEvaluateTemplateService templateService;
-	
+
 	@Autowired
 	ITeacherService teacherService;
-	
+
 	@Autowired
 	IExerciseService exerciseService;
-	
+
 	@Autowired
 	IMsgInfoService msgInfoService;
 
@@ -92,82 +93,155 @@
 	 */
 	@Override
 	public ResultJson queryList(Integer pageNum, Integer pageSize, String keyword, String sort) {
-		
+
 		QSchEvaluate qEva = QSchEvaluate.schEvaluate;
 		QSchEvaluateTemplate template = QSchEvaluateTemplate.schEvaluateTemplate;
 		QExerciseGroup group = QExerciseGroup.exerciseGroup;
 		QSubject subject = QSubject.subject;
-		
+		QClsClass clsClass = QClsClass.clsClass;
+		QStuStudent stuStudent = QStuStudent.stuStudent;
 		// 鎼滅储鍚�
 		keyword = StringUtils.isBlank(keyword) ? null : "%"+keyword+"%";
-		
-		// 鑾峰彇鏌ヨ缁撴灉闆嗗悎
-		QueryResults<Tuple> results = this.getQueryFactory()
-			.select(qEva, group,subject)
-			.from(qEva, template, group,subject)
-			.where(new QueryDslOptionBuilder()
-					.and(qEva.evalTemplateId::eq, template.evaluateTemplateId)
-					.and(template.groupId::eq,group.groupId)
-					.and(qEva.evalRangeId::eq,subject.subjectId)
-					.and(qEva.createId::eq,ClientUtils.getUserId())
-					.and(qEva.evaluateName::like, keyword)
-					.and(qEva.deleteFlag::eq,false)
-					.build()
+
+			// 鑾峰彇鏌ヨ缁撴灉闆嗗悎
+			QueryResults<Tuple> results = this.getQueryFactory()
+					.select(qEva, group, subject)
+					.from(qEva, template, group, subject)
+					.where(new QueryDslOptionBuilder()
+							.and(qEva.evalTemplateId::eq, template.evaluateTemplateId)
+							.and(template.groupId::eq, group.groupId)
+							.and(qEva.evalRangeId::like, subject.subjectId)
+							.and(qEva.createId::eq, ClientUtils.getUserId())
+							.and(qEva.evaluateName::like, keyword)
+							.and(qEva.deleteFlag::eq, false)
+							.build()
 					)
-			.orderBy(qEva.createTime.desc())
-			.fetchResults();
-		
-		// 灏佽鍙傛暟
-		List<Map<String,Object>> resultLst = 
-				results.getResults()
-				.stream()
-			    .map(tuple -> {
-			    	Map<String,Object> map = new HashMap<String,Object>(2);
-			    	map.put("evaluateId", tuple.get(qEva).getEvaluateId());
-			    	map.put("evaluateName", tuple.get(qEva).getEvaluateName());
-			    	map.put("evalRangeId", tuple.get(qEva).getEvalRangeId());
-			    	map.put("evalRangeType", tuple.get(qEva).getEvalRangeType());
-			    	map.put("evalRangeName", tuple.get(subject).getName());
-			    	map.put("evalRangeCount", tuple.get(qEva).getEvalRangeCount());
-			    	map.put("evalObjectName", tuple.get(qEva).getEvalObjectName());
-			    	map.put("status", tuple.get(qEva).getStatus());
-			    	map.put("endTime", tuple.get(qEva).getEndTime());
-			    	map.put("createTime", tuple.get(qEva).getCreateTime());
-			    	map.put("groupId",  tuple.get(group).getGroupId());
-			    	map.put("exerCount",  tuple.get(group).getAllCount());
-			    	map.put("evaluateCount",  this.getEvaluateCount(tuple.get(qEva).getEvaluateId()));//宸茶瘎浼颁汉鏁�
-			    	map.put("evaluateAllCount",  this
-							.queryEvaluateAllCount(tuple.get(qEva).getEvalRangeType(), tuple.get(qEva).getEvalRangeId().split(",")));//搴旇瘎浼颁汉鏁�
-			    	return map;
-			    }).collect(Collectors.toList());
-		
-		
-		return new ResultJson(true, "success", 
-				CollectionUtils.newObjectMap("allCount",results.getTotal(),"datas",resultLst));
+					.orderBy(qEva.createTime.desc())
+					.fetchResults();
+			QueryResults<Tuple> results2 = this.getQueryFactory()
+					.select(qEva, group, clsClass)
+					.from(qEva, template, group, clsClass)
+					.where(new QueryDslOptionBuilder()
+							.and(qEva.evalTemplateId::eq, template.evaluateTemplateId)
+							.and(template.groupId::eq, group.groupId)
+							.and(qEva.evalRangeId::like, clsClass.classId)
+							.and(qEva.createId::eq, ClientUtils.getUserId())
+							.and(qEva.evaluateName::like, keyword)
+							.and(qEva.deleteFlag::eq, false)
+							.build()
+					)
+					.orderBy(qEva.createTime.desc())
+					.fetchResults();
+
+			QueryResults<Tuple> results3 = this.getQueryFactory()
+					.select(qEva, group, stuStudent)
+					.from(qEva, template, group, stuStudent)
+					.where(new QueryDslOptionBuilder()
+							.and(qEva.evalTemplateId::eq, template.evaluateTemplateId)
+							.and(template.groupId::eq, group.groupId)
+							.and(qEva.evalRangeId::like,stuStudent.studentId)
+							.and(qEva.createId::eq, ClientUtils.getUserId())
+							.and(qEva.evaluateName::like, keyword)
+							.and(qEva.deleteFlag::eq, false)
+							.build()
+					)
+					.orderBy(qEva.createTime.desc())
+					.fetchResults();
+			// 灏佽鍙傛暟
+			List<Map<String, Object>> resultLst =
+					results.getResults()
+							.stream()
+							.map(tuple -> {
+								Map<String, Object> map = new HashMap<String, Object>(2);
+								map.put("evaluateId", tuple.get(qEva).getEvaluateId());
+								map.put("evaluateName", tuple.get(qEva).getEvaluateName());
+								map.put("evalRangeId", tuple.get(qEva).getEvalRangeId());
+								map.put("evalRangeType", tuple.get(qEva).getEvalRangeType());
+								map.put("evalRangeName", tuple.get(subject).getName());
+								map.put("evalRangeCount", tuple.get(qEva).getEvalRangeCount());
+								map.put("evalObjectName", tuple.get(qEva).getEvalObjectName());
+								map.put("status", tuple.get(qEva).getStatus());
+								map.put("endTime", tuple.get(qEva).getEndTime());
+								map.put("createTime", tuple.get(qEva).getCreateTime());
+								map.put("groupId", tuple.get(group).getGroupId());
+								map.put("exerCount", tuple.get(group).getAllCount());
+								map.put("evaluateCount", this.getEvaluateCount(tuple.get(qEva).getEvaluateId()));//宸茶瘎浼颁汉鏁�
+								map.put("evaluateAllCount", this
+										.queryEvaluateAllCount(tuple.get(qEva).getEvalRangeType(), tuple.get(qEva).getEvalRangeId().split(",")));//搴旇瘎浼颁汉鏁�
+								return map;
+							}).collect(Collectors.toList());
+
+			resultLst.addAll(
+					results2.getResults()
+							.stream()
+							.map(tuple -> {
+								Map<String, Object> map = new HashMap<String, Object>(2);
+								map.put("evaluateId", tuple.get(qEva).getEvaluateId());
+								map.put("evaluateName", tuple.get(qEva).getEvaluateName());
+								map.put("evalRangeId", tuple.get(qEva).getEvalRangeId());
+								map.put("evalRangeType", tuple.get(qEva).getEvalRangeType());
+								map.put("evalRangeName", tuple.get(clsClass).getName());
+								map.put("evalRangeCount", tuple.get(qEva).getEvalRangeCount());
+								map.put("evalObjectName", tuple.get(qEva).getEvalObjectName());
+								map.put("status", tuple.get(qEva).getStatus());
+								map.put("endTime", tuple.get(qEva).getEndTime());
+								map.put("createTime", tuple.get(qEva).getCreateTime());
+								map.put("groupId", tuple.get(group).getGroupId());
+								map.put("exerCount", tuple.get(group).getAllCount());
+								map.put("evaluateCount", this.getEvaluateCount(tuple.get(qEva).getEvaluateId()));//宸茶瘎浼颁汉鏁�
+								map.put("evaluateAllCount", this
+										.queryEvaluateAllCount(tuple.get(qEva).getEvalRangeType(), tuple.get(qEva).getEvalRangeId().split(",")));//搴旇瘎浼颁汉鏁�
+								return map;
+							}).collect(Collectors.toList()));
+			resultLst.addAll(
+					results3.getResults()
+							.stream()
+							.map(tuple -> {
+								Map<String, Object> map = new HashMap<String, Object>(2);
+								map.put("evaluateId", tuple.get(qEva).getEvaluateId());
+								map.put("evaluateName", tuple.get(qEva).getEvaluateName());
+								map.put("evalRangeId", tuple.get(qEva).getEvalRangeId());
+								map.put("evalRangeType", tuple.get(qEva).getEvalRangeType());
+								map.put("evalRangeName", tuple.get(stuStudent).getName());
+								map.put("evalRangeCount", tuple.get(qEva).getEvalRangeCount());
+								map.put("evalObjectName", tuple.get(qEva).getEvalObjectName());
+								map.put("status", tuple.get(qEva).getStatus());
+								map.put("endTime", tuple.get(qEva).getEndTime());
+								map.put("createTime", tuple.get(qEva).getCreateTime());
+								map.put("groupId", tuple.get(group).getGroupId());
+								map.put("exerCount", tuple.get(group).getAllCount());
+								map.put("evaluateCount", this.getEvaluateCount(tuple.get(qEva).getEvaluateId()));//宸茶瘎浼颁汉鏁�
+								map.put("evaluateAllCount", this
+										.queryEvaluateAllCount(tuple.get(qEva).getEvalRangeType(), tuple.get(qEva).getEvalRangeId().split(",")));//搴旇瘎浼颁汉鏁�
+								return map;
+							}).collect(Collectors.toList()));
+
+		return new ResultJson(true, "success",
+				CollectionUtils.newObjectMap("allCount",results.getTotal()+results2.getTotal()+results3.getTotal(),"datas",resultLst));
 	}
 
 	/**
 	 * 鑾峰彇鑼冨洿閫夋嫨
-	 * 
+	 *
 	 * type:   lesson:璇剧▼  class:鐝骇     person:浜哄憳
-	 * 
+	 *
 	 * @return
 	 */
 	@Override
 	public ResultJson queryRangeList(String type,String searchName) {
-		
+
 		List<Tuple> tupleLst = null;
 		// 鎼滅储鍚�
 		searchName = StringUtils.isBlank(searchName) ? null : "%"+searchName+"%";
-		
+
 		if(ClientUtils.isAdmin()){// 绠$悊鍛�
-			
+
 			tupleLst = getAdminRangeList(type,searchName);
 		}else{// 鑰佸笀
-			
+
 			tupleLst = getTeacherRangeList(type,searchName);
 		}
-		
+
 		// 缁熶竴澶勭悊杩斿洖鏁版嵁
 		List<Map<String,Object>> resultLst = tupleLst.stream()
 			    .map(tuple -> {
@@ -176,7 +250,7 @@
 			    	map.put("id",  tuple.get(1, String.class));
 			    	return map;
 			    }).collect(Collectors.toList());
-		
+
 		return new ResultJson(true, "success", resultLst);
 	}
 
@@ -190,9 +264,9 @@
 		QClsClass cls = QClsClass.clsClass;
 		QUser user = QUser.user;
 		List<Tuple> tupleLst = null;
-		
+
 		if(SchEvaluate.EVALUATE_RANGE_LESSON.equals(type)){//璇剧▼
-			
+
 			tupleLst = this.getQueryFactory().select(subject.name.as("name"),subject.subjectId.as("id")).distinct()
 			    .from(subject)
 			    .where(subject.type.eq(Subject.TYPE_ORG_SUBJECT)
@@ -201,9 +275,9 @@
 						.and(subject.deleteFlag.isFalse()))
 			    .orderBy(subject.createTime.desc())
 			    .fetch();
-			
+
 		}else if(SchEvaluate.EVALUATE_RANGE_CLASS.equals(type)){//鐝骇
-			
+
 			tupleLst = this.getQueryFactory().select(cls.name.as("name"),cls.classId.as("id")).distinct()
 				    .from(cls)
 				    .where( new QueryDslOptionBuilder()
@@ -225,10 +299,10 @@
 				    .orderBy(stu.createTime.desc())
 				    .fetch();
 		}
-		
+
 		return tupleLst;
 	}
-	
+
 	/**
 	 * 	鑾峰彇鑰佸笀鑼冨洿閫夋嫨
 	 * @param type
@@ -238,12 +312,12 @@
 		QSubject subject = QSubject.subject;
 		QClsClassReSubject re = QClsClassReSubject.clsClassReSubject;
 		QClsClass cls = QClsClass.clsClass;
-		
+
 		List<Tuple> tupleLst = null;
 		String teacherId =  teacherService.getTeacherIdByUserId(ClientUtils.getUserId());
-		
+
 		if(SchEvaluate.EVALUATE_RANGE_LESSON.equals(type)){//璇剧▼
-			
+
 			tupleLst = this.getQueryFactory().select(subject.name.as("name"),subject.subjectId.as("id")).distinct()
 				    .from(subject)
 				    .where(subject.createId.eq(ClientUtils.getUserId())
@@ -253,9 +327,9 @@
 							.and(subject.deleteFlag.isFalse()))
 				    .orderBy(subject.createTime.desc())
 				    .fetch();
-			
+
 		}else if(SchEvaluate.EVALUATE_RANGE_CLASS.equals(type)){//鐝骇
-			
+
 			tupleLst = this.getQueryFactory().select(cls.name.as("name"),cls.classId.as("id")).distinct()
 				    .from(subject, re, cls)
 				    .where(new QueryDslOptionBuilder()
@@ -269,10 +343,10 @@
 							.build()).groupBy(cls.classId)
 				    .orderBy(subject.createTime.desc())
 				    .fetch();
-			
+
 		}else if(SchEvaluate.EVALUATE_RANGE_PERSON.equals(type)){//浜哄憳
 			QStuStudent stu = QStuStudent.stuStudent;
-			
+
 			tupleLst = this.getQueryFactory().select(stu.name.as("name"),stu.userId.as("id")).distinct()
 				    .from(stu,cls,subject, re)
 				    .where(new QueryDslOptionBuilder()
@@ -292,7 +366,7 @@
 				    .orderBy(stu.createTime.desc())
 				    .fetch();
 		}
-		
+
 		return tupleLst;
 	}
 
@@ -309,7 +383,7 @@
 			//1銆佹彃鍏ョ粍
 			ExerciseGroup obj = this.insertExerciseGroup(eva.getEvaluateName(),
 					ExerciseGroup.TYPE_EXERCISE_TEACH_EVALUATE);
-			
+
 			//2銆佹彃鍏ヨ瘎浼版ā鏉�
 			SchEvaluateTemplate objTemplate = new SchEvaluateTemplate();
 			TraceUtils.setCreateTrace(objTemplate);
@@ -319,7 +393,7 @@
 			objTemplate.setOrgId(ClientUtils.getOrgId());
 			objTemplate.setOrgName(ClientUtils.getOrgName());
 			this.save(objTemplate);
-			
+
 			// 3銆佹彃鍏ヨ瘎浼拌〃
 			eva.setEvalTemplateId(objTemplate.getEvaluateTemplateId());
 			eva.setEvalTemplateName(objTemplate.getEvaluateTemplateName());
@@ -329,12 +403,12 @@
 			eva.setDeleteFlag(false);
 			TraceUtils.setCreateTrace(eva);
 			evaRepository.save(eva);
-			
+
 			evaluateId = eva.getEvaluateId();
 			groupId = obj.getGroupId();
 		}else{// 缂栬緫
 			SchEvaluate newEva = this.read(SchEvaluate.class, eva.getEvaluateId());
-			
+
 			newEva.setEvaluateName(eva.getEvaluateName());
 			newEva.setEvalObjectName(eva.getEvalObjectName());
 			newEva.setEndTime(eva.getEndTime());
@@ -344,13 +418,13 @@
 			TraceUtils.setUpdateTrace(newEva);
 			evaRepository.save(newEva);
 		}
-		
+
 		return new ResultJson(true, "success", CollectionUtils.newObjectMap("evaluateId", evaluateId, "groupId", groupId));
 	}
-	
+
 	/**
 	 * 锛氬悗鍙� 鎻掑叆璇勪及妯℃澘鏃惰皟鐢�
-	 * 
+	 *
 	 * @param name
 	 * @param type
 	 * @return
@@ -375,12 +449,12 @@
 	 */
 	@Override
 	public ResultJson queryBaseInfo(String evaluateId) {
-		
+
 		SchEvaluate eva = evaRepository.getOne(evaluateId);
 		QSchEvaluate qEva = QSchEvaluate.schEvaluate;
 		QSchEvaluateTemplate template = QSchEvaluateTemplate.schEvaluateTemplate;
 		QExerciseGroup group = QExerciseGroup.exerciseGroup;
-		
+
 		// 鑾峰彇鏌ヨ缁撴灉闆嗗悎
 		ExerciseGroup g = this.getQueryFactory()
 			.select(group)
@@ -393,8 +467,8 @@
 					.build()
 					)
 			.fetchOne();
-		
-		return new ResultJson(true, "success", 
+
+		return new ResultJson(true, "success",
 				CollectionUtils.newObjectMap("evaluateName",eva.getEvaluateName(),
 					"evaluateId",eva.getEvaluateId(),
 					"evalObjectName",eva.getEvalObjectName(),
@@ -405,83 +479,83 @@
 					"evalRangeId",eva.getEvalRangeId(),
 					"evalRangeName",eva.getEvalRangeName()));
 	}
-	
+
 	/**
 	 * 鍒犻櫎
 	 */
 	@Override
 	public ResultJson delete(String evaluateIds){
 		QSchEvaluate qEva = QSchEvaluate.schEvaluate;
-		
+
 		this.getQueryFactory()
 		.update(qEva)
 		.set(qEva.deleteFlag, true)
 		.where(qEva.evaluateId.in(evaluateIds.split(",")))
 		.execute();
-		
+
 		return new ResultJson(true, "success");
 	}
-	
+
 	/**
 	 * 婵�娲�
 	 */
 	@Override
 	public ResultJson doActive(String evaluateIds){
-		
+
 		QSchEvaluate qEva = QSchEvaluate.schEvaluate;
-		
+
 		 this.getQueryFactory()
 		 .update(qEva)
 		 .set(qEva.status, SchEvaluate.STATUS_EVA)
 		 .where(qEva.evaluateId.in(evaluateIds.split(",")))
 		 .execute();
-		 
+
 		if(StringUtils.isNotEmpty(evaluateIds)){
 			String []  arrIds = evaluateIds.split(",");
 			for(String evaluateId:arrIds){
 				this.doSendhMsg(evaluateId);
 			}
 		}
-		 
+
 		return new ResultJson(true, "success");
 	}
-	
+
 	//鍙戝竷娑堟伅
     private void doSendhMsg(String evaluateId){
     	SchEvaluate  evaluate = this.read(SchEvaluate.class,evaluateId);
-    	
+
     	List<Map<String,Object>> lst=  this.queryNotAnswerEvaLst(evaluateId,  new ArrayList<String>(1));
-    	
+
     	List<String> lstUserIds = null;
     	if(lst!=null && lst.size()>0){
     		lstUserIds = new ArrayList<String>(lst.size());
     		for(Map<String,Object> map:lst){
     			lstUserIds.add((String)map.get("userId"));
     		}
-    		
+
     		Map<String,String> attrs = CollectionUtils.newStringMap("evaluateId",evaluate.getEvaluateId(),"evaluateName",evaluate.getEvaluateName(),
 					"templateId",evaluate.getEvalTemplateId(),"evalRangeName",evaluate.getEvalRangeName(),"creator",evaluate.getCreator());
-    		
+
     		msgInfoService.doSendTextMsgToUsersLoop(lstUserIds, MsgInfo.TYPE_EVALUATE, "鍙戝竷浜嗛棶鍗疯皟鏌�", attrs);
     	}
 	}
-	
+
 	/**
 	 *鍥為��
 	 */
 	@Override
 	public ResultJson doWithdraw(String evaluateIds){
 		QSchEvaluate qEva = QSchEvaluate.schEvaluate;
-		
+
 		this.getQueryFactory()
 		 .update(qEva)
 		 .set(qEva.status, SchEvaluate.STATUS_NOT_EVA)
 		 .where(qEva.evaluateId.in(evaluateIds.split(",")))
 		 .execute();
-		
+
 		return new ResultJson(true, "success");
 	}
-	
+
 	/**
 	 * 澶嶅埗
 	 */
@@ -490,19 +564,19 @@
 		try {
 			SchEvaluate schEva = evaRepository.getOne(eva.getEvaluateId());
 			SchEvaluateTemplate oldTemplate = this.read(SchEvaluateTemplate.class, schEva.getEvalTemplateId());
-			
+
 			// 1銆佺敓鎴愪範棰樼粍
 			String newGroupId = exerciseService.doCopyExerciseByEvaluate(oldTemplate.getGroupId());
-			
+
 			// 2銆佺敓鎴愭ā鏉�
 			SchEvaluateTemplate newTemplate = new SchEvaluateTemplate();
-			
+
 			BeanUtils.copyProperties(newTemplate, oldTemplate);
 			newTemplate.setEvaluateTemplateId(null);
 			newTemplate.setGroupId(newGroupId);
 			TraceUtils.setCreateTrace(newTemplate);
 			this.save(newTemplate);
-		
+
 			// 3銆佺敓鎴愯瘎浼拌〃
 			SchEvaluate newEva = new SchEvaluate();
 			BeanUtils.copyProperties(newEva, eva);
@@ -515,16 +589,16 @@
 			newEva.setDeleteFlag(false);
 			TraceUtils.setCreateTrace(newEva);
 			this.save(newEva);
-			
+
 			return new ResultJson(true, "success", CollectionUtils.newObjectMap("evaluateId", newEva.getEvaluateId(), "groupId", newGroupId));
-			
+
 		} catch (Exception e) {
 			log.error("doCopy璇勪及澶嶅埗锛氬鍒剁粌涔燘eanUtils.copyProperties()鏂规硶copy澶辫触", e);
 		}
-		
+
 		return new ResultJson(false);
 	}
-	
+
 	/**
 	 *  鏌ョ湅缁撴灉  闂嵎鏁翠綋鎯呭喌
 	 * @param evaluateId
@@ -534,21 +608,21 @@
 	 */
 	@Override
 	public ResultJson queryEvaluateDetail(String evaluateId,String groupId){
-		
+
 		// 1銆佹煡璇㈠凡鎻愪氦闂嵎list
 		List<Map<String, Object>> answerUserLst = queryAnswerEvaLst(evaluateId);
-		
+
 		// 宸茬粡绛旈杩囩殑瀛﹀憳id
 		List<String> userAnswerList = new ArrayList<String>(answerUserLst.size());
 		for(Map<String,Object> map:answerUserLst){
 			userAnswerList.add(String.valueOf(map.get("userId")));
 		}
-		
+
 		// 2銆佹煡璇㈡湭鎻愪氦绛旀list
 		List<Map<String,Object>> notAnswerUserLst = this.queryNotAnswerEvaLst(evaluateId, userAnswerList);
-		
-		
-		return new ResultJson(true, "success", 
+
+
+		return new ResultJson(true, "success",
 				CollectionUtils.newObjectMap("answerUserLst",answerUserLst,
 						"notAnswerUserLst",notAnswerUserLst));
 	}
@@ -559,10 +633,10 @@
 	 * @return
 	 */
 	private List<Map<String, Object>> queryAnswerEvaLst(String evaluateId) {
-		
+
 		QExerciseRecord record = QExerciseRecord.exerciseRecord;
 		QSchEvaRecordRe reEva = QSchEvaRecordRe.schEvaRecordRe;
-		
+
 		List<Map<String,Object>> answerUserLst = this.getQueryFactory()
 				.select(record).from(record, reEva)
 				.where(record.recordId.eq(reEva.exerciseRecordId)
@@ -579,10 +653,10 @@
 			    	map.put("submitTime", tuple.getSubmitTime());
 			    	return map;
 			    }).collect(Collectors.toList());
-		
+
 		return answerUserLst;
 	}
-	
+
 	/**
 	 * 鏌ヨ鏈瓟棰樼殑瀛﹀憳list
 	 * @param rangeType
@@ -591,29 +665,29 @@
 	 * @return
 	 */
 	private List<Map<String,Object>> queryNotAnswerEvaLst(String evaluateId,List<String> userAnswerList ){
-		
+
 		SchEvaluate eva = this.read(SchEvaluate.class, evaluateId);
 		String[] evalRangeIds = eva.getEvalRangeId().split(",");
 		String rangeType = eva.getEvalRangeType();
-		
+
 		QClsClassReSubject re = QClsClassReSubject.clsClassReSubject;
 		QStuStudent stu = QStuStudent.stuStudent;
 		QSubject qSubject = QSubject.subject;
-		
+
 		Predicate predicate = null;
 		if(SchEvaluate.EVALUATE_RANGE_LESSON.equals(rangeType)){//璇剧▼
-			
+
 			predicate = stu.classId.in(getQueryFactory().select(re.classId).from(re,qSubject)
 					.where(qSubject.origSubjectId.in(evalRangeIds).and(re.subjectId.eq(qSubject.subjectId))
 							.and(qSubject.deleteFlag.isFalse()).and(re.deleteFlag.eq(false))));
 		}else if(SchEvaluate.EVALUATE_RANGE_CLASS.equals(rangeType)){//鐝骇
-			
+
 			predicate = stu.classId.in(evalRangeIds);
 		}else if(SchEvaluate.EVALUATE_RANGE_PERSON.equals(rangeType)){//浜哄憳
-			
+
 			predicate = stu.userId.in(evalRangeIds);
 		}
-		
+
 		List<Map<String,Object>> notAnswerUserLst = this.getQueryFactory().select(stu.userId, stu.name).distinct()
 			    .from(stu)
 			    .where(stu.userId.notIn(userAnswerList)// 杩囨护鎺夊凡缁忕瓟棰樿繃鐨勫鍛�
@@ -630,13 +704,13 @@
 			    	map.put("submitTime", null);
 			    	return map;
 			    }).collect(Collectors.toList());
-			    
+
 		return notAnswerUserLst;
 	}
-	
-	
+
+
 	/**  ------鍓嶇       ---------------------------start------------------------------------------------------------------ */
-	
+
 	/**
 	 * 鎻愪氦绛旀
 	 * @param score
@@ -644,66 +718,66 @@
 	 */
 	@Override
 	public ResultJson doSubmitTeachEvalScoreData(TeachEvaScoreResult scoreResult, String userId) {
-		
+
 		List<TeachEvaScoreData> lstScore = scoreResult.getItems();
 		String evaluateId = scoreResult.getEvaluateId();
-		
+
 		// 1.鎿嶄綔ExerciseRecord鍋氶璁板綍
 		ExerciseRecord record = this.doOperExerciseRecord(scoreResult);
-		
+
 		if(null == record){
 			return new ResultJson(false,"鎮ㄥ凡缁忔彁浜わ紝涓嶈兘閲嶅鎻愪氦");
 		}
 		String exerciseRecordId = record.getRecordId();
-		
+
 		if(!scoreResult.getItems().isEmpty()){
 			// 2.璁板綍缁冧範绛旀  ExerciseItemAnswerU
 			this.doOperExerciseItemAnswerUBatch(lstScore, exerciseRecordId);
 		}
-		
+
 		// 3.鎻掑叆璇勪及璁板綍鍏宠仈琛�
 		this.doOperSchEvaRecordRe(exerciseRecordId, evaluateId);
-		
+
 		// 4.鏇存柊璇勪及琛ㄧ殑瀹屾垚浜烘暟
 		SchEvaluate eval = this.updateEvaluateCount(evaluateId);
-		
+
 		if(!scoreResult.getItems().isEmpty()){
 			// 5.鎻掑叆璇勪及鏄庣粏琛�
 			this.insertEvaluateDetailBatch(lstScore,evaluateId);
 		}
-		
-		return new ResultJson(true, "鎿嶄綔鎴愬姛", 
+
+		return new ResultJson(true, "鎿嶄綔鎴愬姛",
 				CollectionUtils.newObjectMap("doNumber", eval.getEvaluateCount(), "recordId", exerciseRecordId));
 	}
-	
-	
+
+
 	/**
 	 * 鎿嶄綔鏈鍋氶璁板綍
 	 * @return
 	 */
 	public ExerciseRecord doOperExerciseRecord(TeachEvaScoreResult scoreResult) {
-		
+
 		String hql = "select count(r.recordId) from SchEvaRecordRe re, ExerciseRecord r "
 				+ " where re.exerciseRecordId=r.recordId and re.evaluateId=? and r.userId=? and r.deleteFlag is false";
-		
+
 		int count = this.findCount(hql, CollectionUtils.newList(scoreResult.getEvaluateId(), ClientUtils.getUserId()));
-		
+
 		if(count > 0){
 			return null;
 		}
-		
+
 		String doCount = String.valueOf(scoreResult.getItems().size());
-		
+
 		// 2.鏌ヨ鎬婚鐩暟
 		ExerciseGroup group = this.findUnique("select g from ExerciseGroup g,SchEvaluate e,SchEvaluateTemplate t "
 				+ "where g.groupId=t.groupId and e.evalTemplateId=t.evaluateTemplateId and e.evaluateId=?"
-				+ " and g.deleteFlag is false and e.deleteFlag is false ",  
+				+ " and g.deleteFlag is false and e.deleteFlag is false ",
 				CollectionUtils.newList(scoreResult.getEvaluateId()), ExerciseGroup.class);
 		BigInteger allCount = group.getAllCount();
-		
+
 		// 3.鏌ヨ鍋氶璁板綍obj
 		BigDecimal completionRate =  ExerciseUtils.parseStrToBigDecimal(doCount, String.valueOf(allCount));
-		
+
 		ExerciseRecord record = new ExerciseRecord();
 		record.setExerciseGroupId(group.getGroupId());
 		record.setUserId(ClientUtils.getUserId());
@@ -716,17 +790,17 @@
 		record.setDoCount(new BigInteger(doCount));
 		TraceUtils.setCreateTrace(record);
 		this.save(record);
-		
+
 		return record;
 	}
-	
+
 	/**
 	 * 鎵归噺澧炲姞鎴栦慨鏀圭粌涔犺褰曠瓟妗�
 	 * @return
 	 */
 	public Result doOperExerciseItemAnswerUBatch(List<TeachEvaScoreData> lstScore, String exerciseRecordId) {
 		String userId = ClientUtils.getUserId();
-		
+
 		List<ExerciseItemAnswerU> lstNewAnswerU = new ArrayList<ExerciseItemAnswerU>(lstScore.size());
 		// 缁勮绛旀璁板綍
 		ExerciseItemAnswerU	answerU = null;
@@ -735,7 +809,7 @@
 				continue;
 			}
 			answerU = new ExerciseItemAnswerU();
-			
+
 			answerU.setExerciseItemId(score.getExerciseId());
 			answerU.setExerciseRecordId(exerciseRecordId);
 			answerU.setAnswer(score.getAnswer());
@@ -744,37 +818,37 @@
 			TraceUtils.setCreateTrace(answerU);
 			lstNewAnswerU.add(answerU);
 		}
-		
+
 		// 鎵归噺淇濆瓨
 		this.saveOrUpdateAll(lstNewAnswerU);
-		
+
 		return new Result(true);
 	}
-	
+
 	/**
 	 * 鎵归噺澧炲姞鎴栦慨鏀硅瘎浼版槑缁嗚褰�
 	 * @return
 	 */
 	public Result insertEvaluateDetailBatch(List<TeachEvaScoreData> lstScore,String evaluateId) {
-		
+
 		Map<String, Object> argsMap = new HashMap<String, Object>(lstScore.size());
-		
+
 		Object[] args = new Object[lstScore.size()];
 		for(int i=0; i<lstScore.size(); i++){
 			args[i] = lstScore.get(i).getExerciseId();
 		}
 		argsMap.put("exerciseIds", args);
-		
+
 		String hql_score = "from ExerciseItemScore where exerciseItemId in (:exerciseIds)  and deleteFlag is false ";
 		List<ExerciseItemScore> lstscores = this.findByComplexHql(hql_score, argsMap, ExerciseItemScore.class);
 		Map<String, String> scoreMap = new HashMap<String,String>(lstscores.size());
 		for(ExerciseItemScore score:lstscores){
 			scoreMap.put(score.getExerciseItemId()+score.getExerciseItemAnswer(), score.getScore());
 		}
-		
+
 		String userId = ClientUtils.getUserId();
 		String userName = ClientUtils.getUserName();
-		
+
 		List<SchEvaluateDetail> lstDetail = new ArrayList<SchEvaluateDetail>(lstScore.size());
 		SchEvaluateDetail record = null;
 		for(TeachEvaScoreData score:lstScore){
@@ -789,32 +863,32 @@
 			record.setEvaluater(userName);
 			record.setDeleteFlag(false);
 			TraceUtils.setCreateTrace(record);
-			
+
 			lstDetail.add(record);
 		}
-		
+
 		// 鎵归噺淇濆瓨
 		this.saveOrUpdateAll(lstDetail);
-		
+
 		return new Result(true);
 	}
-	
+
 	/**
 	 * 鏂板璇勪及涓庤褰曞叧鑱旇〃
 	 * @param groupId
-	 * @return 
+	 * @return
 	 */
 	public Result doOperSchEvaRecordRe(String recordId, String evaluateId) {
 
 		String hql = "from SchEvaRecordRe where evaluateId=? and exerciseRecordId=?";
-		
-		List<SchEvaRecordRe> recordLst = this.find(hql, 
+
+		List<SchEvaRecordRe> recordLst = this.find(hql,
 				CollectionUtils.newList(evaluateId, recordId), SchEvaRecordRe.class);
-		
+
 		if(!recordLst.isEmpty()){
 			return new Result(true);
 		}
-		
+
 		SchEvaRecordRe record = new SchEvaRecordRe();
 		record.setEvaluateId(evaluateId);
 		record.setExerciseRecordId(recordId);
@@ -823,33 +897,33 @@
 			record.setClassId(ClientUtils.getClassId());
 			record.setOrgId(ClientUtils.getOrgId());
 		}
-		
+
 		this.save(record);
-		
+
 		return new Result(true);
 	}
-	
+
 	/**
 	 * 鏇存柊璇勪及琛ㄨ褰�
 	 * @return
 	 */
 	public SchEvaluate updateEvaluateCount(String evaluateId) {
-		
+
 		SchEvaluate record = this.read(SchEvaluate.class, evaluateId);
-		
+
 		if(record == null){
-			return null; 
+			return null;
 		}
-		
+
 		record.setEvaluateCount(BigInteger.valueOf(this.getEvaluateCount(evaluateId)));
 		TraceUtils.setUpdateTrace(record);
-		
+
 		// 淇濆瓨
 		this.save(record);
-		
+
 		return record;
 	}
-	
+
 	/**
 	 * 鏌ヨ闂嵎缁熻
 	 * @param groupId
@@ -860,16 +934,16 @@
 	public ResultJson queryEvaluateStatis(String groupId, String evaluateId) {
 
 		List<ExerciseItem> items =  exerciseService.readExerciseItems4Evaluate(groupId);
-		
+
 		SchEvaluate objSchEvaluate = this.read(SchEvaluate.class, evaluateId);
-		
+
 		QExerciseRecord record = QExerciseRecord.exerciseRecord;
 		QExerciseItemAnswerU answerU = QExerciseItemAnswerU.exerciseItemAnswerU;
 		QSchEvaRecordRe re = QSchEvaRecordRe.schEvaRecordRe;
 		QUser qUser = QUser.user;
-		
+
 		for (ExerciseItem objExerciseItem : items) {
-			
+
 			List<Tuple> lstTuple = this.getQueryFactory().select(answerU, qUser)
 			.from(record,answerU,re,qUser)
 			.where(record.recordId.eq(answerU.exerciseRecordId)
@@ -879,7 +953,7 @@
 					.and(answerU.deleteFlag.eq(false))
 					.and(record.deleteFlag.eq(false))
 					).orderBy(answerU.createTime.desc()).fetch();
-			
+
 			if(lstTuple != null && !lstTuple.isEmpty()) {
 				List<ExerciseItemAnswerU> lstExerciseItemAnswerU = new ArrayList<>();
 				for(Tuple tuple : lstTuple) {
@@ -887,7 +961,7 @@
 					objExerciseItemAnswerU.setImgPath(tuple.get(qUser).getImgPath());
 					lstExerciseItemAnswerU.add(objExerciseItemAnswerU);
 				}
-				
+
 				// 鏌ヨ绛旀
 				objExerciseItem.setExerciseItemAnswerU(lstExerciseItemAnswerU);
 			}
@@ -896,14 +970,14 @@
 		// 鏌ヨ搴旇瘎浼版�讳汉鏁�
 		objSchEvaluate.setEvaluateAllCount(BigInteger.valueOf(this
 				.queryEvaluateAllCount(objSchEvaluate.getEvalRangeType(),objSchEvaluate.getEvalRangeId().split(","))));
-		
+
 		//鎷艰鍓嶇鎵�闇�瑕佺殑鏁版嵁
-		 Map<String, Object> resultMap = 
+		 Map<String, Object> resultMap =
 				 ExerciseUtils.packageExerciseDetail(items, objSchEvaluate);
-		
+
 		return new ResultJson(true, "success", resultMap);
 	}
-	
+
 	/**
 	 * 鏌ヨ搴旇瘎浼颁汉鏁�
 	 * @param rangeType
@@ -911,36 +985,36 @@
 	 * @return
 	 */
 	private long queryEvaluateAllCount(String rangeType, String[] evalRangeIds){
-		
+
 		QClsClassReSubject re = QClsClassReSubject.clsClassReSubject;
 		QStuStudent stu = QStuStudent.stuStudent;
 		QSubject qSubject = QSubject.subject;
-		
+
 		Predicate predicate = null;
 		if(SchEvaluate.EVALUATE_RANGE_LESSON.equals(rangeType)){//璇剧▼
-			
+
 			predicate = stu.classId.in(getQueryFactory().select(re.classId).from(re,qSubject)
 					.where(qSubject.origSubjectId.in(evalRangeIds).and(re.subjectId.eq(qSubject.subjectId))
 							.and(qSubject.deleteFlag.isFalse()).and(re.deleteFlag.eq(false))));
 		}else if(SchEvaluate.EVALUATE_RANGE_CLASS.equals(rangeType)){//鐝骇
-			
+
 			predicate = stu.classId.in(evalRangeIds);
 		}else if(SchEvaluate.EVALUATE_RANGE_PERSON.equals(rangeType)){//浜哄憳
-			
+
 			return evalRangeIds.length;
 		}
-		
+
 		long allCount = this.getQueryFactory()
 			    .from(stu)
 			    .where(stu.deleteFlag.eq(false).and(predicate).and(stu.status.eq(StuStudent.STATUS_ACTIVE))).groupBy(stu.userId)
 			    .fetchCount();
-		
+
 		return allCount;
 	}
-	
+
 	/**
 	 * 鑾峰彇闂嵎绛斿嵎浜烘暟
-	 * 
+	 *
 	 * @param schEvaluateId
 	 * @param classId
 	 * @return
@@ -948,14 +1022,14 @@
 	private long getEvaluateCount(String evaluateId){
 		QSchEvaRecordRe re = QSchEvaRecordRe.schEvaRecordRe;
 		QExerciseRecord record = QExerciseRecord.exerciseRecord;
-		
+
 		long count = this.getQueryFactory().from(re,record)
 				.where(re.exerciseRecordId.eq(record.recordId)
 						.and(record.deleteFlag.eq(false))
 						.and(re.evaluateId.eq(evaluateId))
 						).groupBy(record.userId)
 				.fetchCount();
-		
+
 		return count;
 	}
 
@@ -965,20 +1039,20 @@
 	 */
 	@Override
 	public ResultJson queryStuEvaluateList(Pager pager) {
-		
+
 		QEvaluateStuStudentV view = QEvaluateStuStudentV.evaluateStuStudentV;
 		List<EvaluateStuStudentV> lstView = this.getQueryFactory()
 				.selectFrom(view)
 				.where(view.id.userId.eq(ClientUtils.getUserId())).limit(pager.getPageSize()).offset(pager.getOffset())
 				.orderBy(view.createTime.desc())
 				.fetch();
-		
+
 		QSchEvaRecordRe re = QSchEvaRecordRe.schEvaRecordRe;
 		QExerciseRecord r= QExerciseRecord.exerciseRecord;
-		
+
 		ExerciseRecord record = null;
 		for(EvaluateStuStudentV evaV:lstView){
-			
+
 			record = this.getQueryFactory().select(r)
 			.from(re,r)
 			.where(re.exerciseRecordId.eq(r.recordId)
@@ -990,30 +1064,30 @@
 				evaV.setExerciseRecordId(record.getRecordId());
 				evaV.setGroupId(record.getExerciseGroupId());
 			}
-			
+
 			evaV.setEvaluateId(evaV.getId().getEvaluateId());
 			evaV.setUserId(evaV.getId().getUserId());
 		}
-		
+
 		return new ResultJson(true,"success",lstView);
 	}
-	
+
 	/**
 	 * 鏌ヨ瀛︾敓璇勪及count
 	 * @return
 	 */
 	@Override
 	public Map<String, Object> queryStuEvaluateCount() {
-		
+
 		QEvaluateStuStudentV view = QEvaluateStuStudentV.evaluateStuStudentV;
-		
+
 		long allCount = this.getQueryFactory()
 				.selectFrom(view)
 				.where(view.id.userId.eq(ClientUtils.getUserId()))
 				.fetchCount();
 		QSchEvaRecordRe re = QSchEvaRecordRe.schEvaRecordRe;
 		QExerciseRecord r= QExerciseRecord.exerciseRecord;
-		
+
 		long doCount = this.getQueryFactory().select(view).distinct()
 			.from(re,r, view)
 			.where(re.exerciseRecordId.eq(r.recordId)
@@ -1021,7 +1095,7 @@
 					.and(r.userId.eq(ClientUtils.getUserId())).and(view.id.userId.eq(ClientUtils.getUserId()))
 					.and(r.deleteFlag.eq(false))
 					).fetchCount();
-		
+
 		return CollectionUtils.newObjectMap("allCount", allCount, "doCount", doCount);
 	}
 
@@ -1035,9 +1109,9 @@
 	@Override
 	public ResultJson doGetEvalExerItemResponseDataNew(String evaluateId) {
 		String groupId = this.findUnique("select t.groupId from SchEvaluateTemplate t,SchEvaluate e "
-				+ "where t.evaluateTemplateId=e.evalTemplateId and e.evaluateId=?", 
+				+ "where t.evaluateTemplateId=e.evalTemplateId and e.evaluateId=?",
 				CollectionUtils.newList(evaluateId),String.class);
-		
+
 		// 2.鏌ユ壘璇勪及缁勪笅鎵�鏈夊搴旂殑缁冧範
 		String hql_item = "select item"
 				+ " from ExerciseItem item, ExerciseGroupItemRe re, ExerciseGroup g"
@@ -1048,7 +1122,7 @@
 				+ " and re.deleteFlag is false"
 				+ " and item.deleteFlag is false"
 				+ " order by re.itemOrder";
-				
+
 		List<ExerciseItem> lstItems = this.find(hql_item, CollectionUtils.newList(groupId), ExerciseItem.class);
 		if(lstItems.isEmpty()){
 			return new ResultJson(false,"褰撳墠璇勪及鏈坊鍔犻鐩�");
@@ -1091,18 +1165,18 @@
 
 		// 閲嶆柊缁勮缁冧範閫夐」
 		ExerciseUtils.packageExerciseItem(lstItems, lstUserAnswer, lstOptionImgs);
-		
+
 		Map<String, List<ExerciseObjectImg>> imgItemMap = ExerciseUtils.packageExerciseItemImg(lstItemImgs);
-		
+
 		for(ExerciseItem item:lstItems){
 			// 4.5棰樼洰涓槸鍚︽湁鍥剧墖
 			if(imgItemMap.get(item.getExerciseId()) != null){
 				item.setImgs(imgItemMap.get(item.getExerciseId()));
 			}
 		}
-		
-		
+
+
 		return new ResultJson(true,"success",lstItems);
 	}
-	
+
 }

--
Gitblit v1.8.0