From 068fc7f2e81178e55fa191a13709af64b1a163f6 Mon Sep 17 00:00:00 2001
From: EricsHu <hrr145632>
Date: 星期一, 05 十二月 2022 14:27:43 +0800
Subject: [PATCH] 处理编码

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

diff --git a/src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseExtendService.java b/src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseExtendService.java
index b6f25fb..d4e90be 100644
--- a/src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseExtendService.java
+++ b/src/main/java/com/qxueyou/scc/exercise/service/impl/ExerciseExtendService.java
@@ -57,27 +57,27 @@
 
 
 /**
- * 练习  实现service
+ * 缁冧範  瀹炵幇service
  * @author zhiyong
  *
  */
 @Service(value = "exerciseExtendService")
 public class ExerciseExtendService extends CommonAppService implements IExerciseExtendService {
-	/** 日志 */
+	/** 鏃ュ織 */
 	private static final Logger log = LogManager.getLogger(ExerciseExtendService.class);
 	
-	/** 练习接口service  */
+	/** 缁冧範鎺ュ彛service  */
 	@Autowired
 	private IExerciseVerService exerciseVerService;
 	
-	/** 做题记录id */
+	/** 鍋氶璁板綍id */
 	private static final String EXERCISE_RECORD_ID = "exerciseRecordId";
 	
-	/** 更新时间 */
+	/** 鏇存柊鏃堕棿 */
 	private static final String UPDATE_TIME = "updateTime";
 	
 	/**
-	 * 新增收藏book记录
+	 * 鏂板鏀惰棌book璁板綍
 	 * @param groupId
 	 * @return 
 	 */
@@ -96,7 +96,7 @@
 	}
 	
 	/**
-	 * 新增错题book记录
+	 * 鏂板閿欓book璁板綍
 	 * @param groupId
 	 * @return 
 	 */
@@ -114,7 +114,7 @@
 	}
 	
 	/**
-	 * 新增收藏记录
+	 * 鏂板鏀惰棌璁板綍
 	 * @param groupId
 	 * @return 
 	 */
@@ -131,7 +131,7 @@
 	}
 	
 	/**
-	 * 新增错题记录
+	 * 鏂板閿欓璁板綍
 	 * @param groupId
 	 * @return 
 	 */
@@ -149,30 +149,30 @@
 	
 	/** -------------------------APP--V2.0- start------------------------------------------- */
 	/**
-	 * 操作错题记录
+	 * 鎿嶄綔閿欓璁板綍
 	 */
 	public Map<String,Object> doOperExerciseFaultRecordData(String subjectId, ExciseExtendReqData recordResult) {
-		// 练习组id
+		// 缁冧範缁刬d
 		String exerciseGroupId = recordResult.getExerciseGroupId();
 		String exerciseGroupType = recordResult.getExerciseGroupType();
 		
-		// 1.操作练习总记录
+		// 1.鎿嶄綔缁冧範鎬昏褰�
 		ExerciseFaultBook resumeBook = doOperExerciseFaultBook(subjectId,recordResult);
 		String resumeBookId = resumeBook.getResumeBookId();
 		
-		// 2.操作练习记录
+		// 2.鎿嶄綔缁冧範璁板綍
 		ExerciseFaultRecord record = doOperExerciseFaultRecord(resumeBookId,
 				exerciseGroupId, exerciseGroupType, recordResult);
 		
 		String faultRecordId = record.getFaultRecordId();
 		
-		// 3.组装错题结果入库
+		// 3.缁勮閿欓缁撴灉鍏ュ簱
 		doOperFaultExerciseToDB(resumeBookId, faultRecordId, recordResult);
 		
-		// 4.重新计算做题记录正确个数 做题个数  正确率  错题本
+		// 4.閲嶆柊璁$畻鍋氶璁板綍姝g‘涓暟 鍋氶涓暟  姝g‘鐜�  閿欓鏈�
 		record = this.doCalcFaultExericseStatisBySubmitData(record,resumeBook,subjectId);
 		
-		// 5.返回结果
+		// 5.杩斿洖缁撴灉
 		Map<String,Object> map = new HashMap<String, Object>(3);
 		map.put(EXERCISE_RECORD_ID, faultRecordId);
 		map.put("exerciseGroupId", exerciseGroupId);
@@ -182,7 +182,7 @@
 	}
 	
 	/**
-	 * 重新计算错题record数据结果
+	 * 閲嶆柊璁$畻閿欓record鏁版嵁缁撴灉
 	 * @param record
 	 * @return
 	 */
@@ -202,14 +202,14 @@
 		
 		Object[] objs = lstFault.get(0);
 		
-		// 拆分子数据
+		// 鎷嗗垎瀛愭暟鎹�
 		packagingExerciseFaultRecordData(record, objs);
 		
-		if(record.getAllCount().compareTo(BigInteger.ZERO) == 0){// 全部删除后 数据清0
+		if(record.getAllCount().compareTo(BigInteger.ZERO) == 0){// 鍏ㄩ儴鍒犻櫎鍚� 鏁版嵁娓�0
 			record.setTitleMaxNumber("0");
 			record.setStatus("0");
 		}else if(StringUtils.isNotBlank(record.getTitleMaxNumber()) && 
-				record.getAllCount().compareTo(new BigInteger(record.getTitleMaxNumber())) < 0){// 总个数小于最大题号数
+				record.getAllCount().compareTo(new BigInteger(record.getTitleMaxNumber())) < 0){// 鎬讳釜鏁板皬浜庢渶澶ч鍙锋暟
 			record.setTitleMaxNumber(String.valueOf(record.getAllCount()));
 		}
 		TraceUtils.setUpdateTrace(record);
@@ -219,7 +219,7 @@
 	}
 	
 	/**
-	 * 重新计算错题record数据结果   拆分子数据
+	 * 閲嶆柊璁$畻閿欓record鏁版嵁缁撴灉   鎷嗗垎瀛愭暟鎹�
 	 * @param record
 	 * @param objs
 	 */
@@ -234,21 +234,21 @@
 	}
 	
 	/**
-	 * 重新计算做题记录总个数    错题本 正确个数 做题个数  正确率  错题本
+	 * 閲嶆柊璁$畻鍋氶璁板綍鎬讳釜鏁�    閿欓鏈� 姝g‘涓暟 鍋氶涓暟  姝g‘鐜�  閿欓鏈�
 	 * @return
 	 */
 	public ExerciseFaultRecord doCalcFaultExericseStatisBySubmitData(ExerciseFaultRecord record,
 			ExerciseFaultBook resumeBook, String subjectId){
-		// 1.计算做题总个数 record
+		// 1.璁$畻鍋氶鎬讳釜鏁� record
 		this.updateExerciseFaultRecordData(record);
 		
-		// 2.计算该班级的总个数
+		// 2.璁$畻璇ョ彮绾х殑鎬讳釜鏁�
 		this.updateExerciseFaultBookInfo(resumeBook);
-		if(resumeBook.getAllCount().compareTo(BigInteger.ZERO) == 0){// 全部删除后 数据清0
+		if(resumeBook.getAllCount().compareTo(BigInteger.ZERO) == 0){// 鍏ㄩ儴鍒犻櫎鍚� 鏁版嵁娓�0
 			resumeBook.setTitleMaxNumber("0");
 			resumeBook.setStatus("0");
 		}else if(StringUtils.isNotBlank(resumeBook.getTitleMaxNumber()) && 
-				resumeBook.getAllCount().compareTo(new BigInteger(resumeBook.getTitleMaxNumber())) < 0){// 总个数小于最大题号数
+				resumeBook.getAllCount().compareTo(new BigInteger(resumeBook.getTitleMaxNumber())) < 0){// 鎬讳釜鏁板皬浜庢渶澶ч鍙锋暟
 			resumeBook.setTitleMaxNumber(String.valueOf(resumeBook.getAllCount()));
 		}
 		TraceUtils.setUpdateTrace(resumeBook);
@@ -258,7 +258,7 @@
 	}
 	
 	/**
-	 * 组装错题结果入库
+	 * 缁勮閿欓缁撴灉鍏ュ簱
 	 * @param resumeBookId
 	 * @param faultRecordId
 	 * @param recordResult
@@ -275,7 +275,7 @@
 		argsMap.put("exerciseIds", args);
 		argsMap.put("resumeBookId", resumeBookId);
 		
-		//  查询此用户是否有错题记录
+		//  鏌ヨ姝ょ敤鎴锋槸鍚︽湁閿欓璁板綍
 		String hql = "from ExerciseFault where exerciseItemId in (:exerciseIds) and resumeBookId=:resumeBookId and deleteFlag is false ";
 		List<ExerciseFault> lstExistfavor = this.findByComplexHql(hql, argsMap, ExerciseFault.class);
 		
@@ -287,18 +287,18 @@
 		List<ExerciseFault> lstFault = new ArrayList<ExerciseFault>(recordResult.getItems().size());
 		ExerciseFault fault=null;
 		
-		// 循环每一条记录
-		// 判断客户端提交的数据是否重复map
+		// 寰幆姣忎竴鏉¤褰�
+		// 鍒ゆ柇瀹㈡埛绔彁浜ょ殑鏁版嵁鏄惁閲嶅map
 		Map<String,Object> repeatMap = new HashMap<String,Object>(lstItems.size());
 		
 		for(ExerciseExtendRecordData record:lstItems){
 				if(repeatMap.get(record.getExerciseId()) != null && 
-						(boolean)repeatMap.get(record.getExerciseId()) == record.getFlag()){//重复数据
+						(boolean)repeatMap.get(record.getExerciseId()) == record.getFlag()){//閲嶅鏁版嵁
 					continue;
 				}
 			
 				fault=faultMap.get(record.getExerciseId());
-				if(record.getFlag()){//添加错题
+				if(record.getFlag()){//娣诲姞閿欓
 					if(fault == null){
 						fault = new ExerciseFault();
 						fault.setFaultRecordId(faultRecordId);
@@ -306,7 +306,7 @@
 						fault.setExerciseItemId(record.getExerciseId());
 						fault.setDeleteFlag(false);
 						TraceUtils.setCreateTrace(fault);
-					}else{// 原来已经删除  恢复
+					}else{// 鍘熸潵宸茬粡鍒犻櫎  鎭㈠
 						if(fault.getDeleteFlag()){
 							fault.setDeleteFlag(false);
 							fault.setAnswer(null);
@@ -317,7 +317,7 @@
 						}
 					}
 					
-				}else{// 删除错题
+				}else{// 鍒犻櫎閿欓
 					if(fault == null){
 						continue;
 					}
@@ -331,8 +331,8 @@
 				repeatMap.put(record.getExerciseId(), record.getFlag());
 		}
 		
-		// 2.记录错题itemList
-		// 批量增加
+		// 2.璁板綍閿欓itemList
+		// 鎵归噺澧炲姞
 		this.saveOrUpdateAll(lstFault);
 		this.flush();
 		
@@ -340,19 +340,19 @@
 	}
 	
 	/**
-	 * 操作练习记录
+	 * 鎿嶄綔缁冧範璁板綍
 	 * @param subjectId
 	 * @return
 	 */
 	public ExerciseFaultRecord doOperExerciseFaultRecord(String resumeBookId,String exerciseGroupId,
 			String exerciseGroupType, ExciseExtendReqData recordResult){
-		// 错题记录 当前组
+		// 閿欓璁板綍 褰撳墠缁�
 		String hql = "from ExerciseFaultRecord where resumeBookId=? and exerciseGroupId=? and deleteFlag is false ";
 		
 		ExerciseFaultRecord record = this.findUnique(hql, 
 				CollectionUtils.newList(resumeBookId, exerciseGroupId), ExerciseFaultRecord.class);
 		
-		if(null == record){// 记录不存在
+		if(null == record){// 璁板綍涓嶅瓨鍦�
 			
 			record = new ExerciseFaultRecord();
 			record.setResumeBookId(resumeBookId);
@@ -370,7 +370,7 @@
 	
 	
 	/**
-	 * 操作练习记录
+	 * 鎿嶄綔缁冧範璁板綍
 	 * @param subjectId
 	 * @return
 	 */
@@ -380,27 +380,27 @@
 		
 		List<Object> args = CollectionUtils.newList(ClientUtils.getClassId(), 
 					ClientUtils.getUserId());
-		if(StringUtils.isNotBlank(subjectId)){// 高校
+		if(StringUtils.isNotBlank(subjectId)){// 楂樻牎
 			hql.append(" and subjectId=? ");
 			 args.add(subjectId);
 		}
 		
-		//  查询此用户是否有错题记录
+		//  鏌ヨ姝ょ敤鎴锋槸鍚︽湁閿欓璁板綍
 		List<ExerciseFaultBook> lstFault = this.find(hql.toString(), args, ExerciseFaultBook.class);
 		
 		ExerciseFaultBook book = null;
 		String hql_book;
-		if(lstFault.isEmpty()){// 记录为空
+		if(lstFault.isEmpty()){// 璁板綍涓虹┖
 			
-			if(StringUtils.isNotBlank(subjectId)){// 高校
+			if(StringUtils.isNotBlank(subjectId)){// 楂樻牎
 				
-				// 先查询上级记录是否存在
+				// 鍏堟煡璇笂绾ц褰曟槸鍚﹀瓨鍦�
 				hql_book = "from ExerciseFaultBook where classId=? and userId=? and deleteFlag is false ";
 				
 				lstFault = this.find(hql_book, CollectionUtils.newList(ClientUtils.getClassId(), 
 						ClientUtils.getUserId()), ExerciseFaultBook.class);
 				
-				if(lstFault.isEmpty()){//班级记录不存在
+				if(lstFault.isEmpty()){//鐝骇璁板綍涓嶅瓨鍦�
 					book = this.insertExerciseFaultBookNew(ExerciseFaultBook.TYPE_ORGANIZATION, null);
 				}
 				
@@ -420,7 +420,7 @@
 	
 	
 	/**
-	 * 新增错题book记录
+	 * 鏂板閿欓book璁板綍
 	 * @param groupId
 	 * @return 
 	 */
@@ -443,7 +443,7 @@
 	}
 	
 	/**
-	 * 更新错题book记录
+	 * 鏇存柊閿欓book璁板綍
 	 * @param groupId
 	 * @return 
 	 */
@@ -458,30 +458,30 @@
 	
 	
 	/**
-	 * 操作错题记录
+	 * 鎿嶄綔閿欓璁板綍
 	 */
 	public Map<String,Object> doOperExerciseFavorRecordData(String subjectId, ExciseExtendReqData recordResult) {
-		// 练习组id
+		// 缁冧範缁刬d
 		String exerciseGroupId = recordResult.getExerciseGroupId();
 		String exerciseGroupType = recordResult.getExerciseGroupType();
 		
-		// 1.操作练习总记录
+		// 1.鎿嶄綔缁冧範鎬昏褰�
 		ExerciseFavoriteBook  favorBook = doOperExerciseFavoriteBook(subjectId, recordResult);
 		String favoriteBookId = favorBook.getFavoriteBookId();
 		
-		// 2.操作练习记录
+		// 2.鎿嶄綔缁冧範璁板綍
 		ExerciseFavoriteRecord record = doOperExerciseFavorRecord(favoriteBookId,
 				exerciseGroupId, exerciseGroupType,recordResult);
 		String favoriteRecordId = record.getFavoriteRecordId();
 		
-		// 3.组装错题结果入库
+		// 3.缁勮閿欓缁撴灉鍏ュ簱
 		doOperFavorExerciseToDB(favoriteBookId, favoriteRecordId, recordResult);
 		
 		
-		// 4. 重新计算做题记录总个数  收藏
+		// 4. 閲嶆柊璁$畻鍋氶璁板綍鎬讳釜鏁�  鏀惰棌
 		record = this.doCalcFavorExericseStatisBySubmitData(record, favorBook, subjectId);
 		
-		// 5.返回结果
+		// 5.杩斿洖缁撴灉
 		Map<String,Object> map = new HashMap<String, Object>(3);
 		map.put(EXERCISE_RECORD_ID, favoriteRecordId);
 		map.put("exerciseGroupId", exerciseGroupId);
@@ -491,7 +491,7 @@
 	}
 	
 	/**
-	 * 更新ExerciseFavoriteRecord数据
+	 * 鏇存柊ExerciseFavoriteRecord鏁版嵁
 	 * @param record
 	 * @return
 	 */
@@ -511,14 +511,14 @@
 		
 		Object[] objs = lstFault.get(0);
 		
-		//  拆分子数据
+		//  鎷嗗垎瀛愭暟鎹�
 		packagingExerciseFavoriteRecordData(record, objs);
 		
-		if(record.getAllCount().compareTo(BigInteger.ZERO) == 0){// 全部删除后 数据清0
+		if(record.getAllCount().compareTo(BigInteger.ZERO) == 0){// 鍏ㄩ儴鍒犻櫎鍚� 鏁版嵁娓�0
 			record.setTitleMaxNumber("0");
 			record.setStatus("0");
 		}else if(StringUtils.isNotBlank(record.getTitleMaxNumber()) && 
-				record.getAllCount().compareTo(new BigInteger(record.getTitleMaxNumber())) < 0){// 总个数小于最大题号数
+				record.getAllCount().compareTo(new BigInteger(record.getTitleMaxNumber())) < 0){// 鎬讳釜鏁板皬浜庢渶澶ч鍙锋暟
 			record.setTitleMaxNumber(String.valueOf(record.getAllCount()));
 		}
 		TraceUtils.setUpdateTrace(record);
@@ -528,7 +528,7 @@
 	}
 	
 	/**
-	 * 拆分子数据
+	 * 鎷嗗垎瀛愭暟鎹�
 	 * @param record
 	 * @param objs
 	 */
@@ -543,23 +543,23 @@
 	}
 	
 	/**
-	 * 重新计算做题记录总个数  收藏
+	 * 閲嶆柊璁$畻鍋氶璁板綍鎬讳釜鏁�  鏀惰棌
 	 * @param exerciseGroupId
 	 * @param exerciseRecordId
 	 * @return
 	 */
 	public ExerciseFavoriteRecord doCalcFavorExericseStatisBySubmitData(ExerciseFavoriteRecord record,
 			ExerciseFavoriteBook favorBook,String subjectId){
-		// 1.计算做题总个数 record
+		// 1.璁$畻鍋氶鎬讳釜鏁� record
 		this.updateExerciseFavoriteRecordData(record);
 				
-		// 2.计算该班级的总个数
+		// 2.璁$畻璇ョ彮绾х殑鎬讳釜鏁�
 		this.updateExerciseFavorBookInfo(favorBook);
-		if(favorBook.getAllCount().compareTo(BigInteger.ZERO) == 0){// 全部删除后 数据清0
+		if(favorBook.getAllCount().compareTo(BigInteger.ZERO) == 0){// 鍏ㄩ儴鍒犻櫎鍚� 鏁版嵁娓�0
 			favorBook.setTitleMaxNumber("0");
 			favorBook.setStatus("0");
 		}else if(StringUtils.isNotBlank(favorBook.getTitleMaxNumber()) 
-				&& favorBook.getAllCount().compareTo(new BigInteger(favorBook.getTitleMaxNumber())) < 0){// 总个数小于最大题号数
+				&& favorBook.getAllCount().compareTo(new BigInteger(favorBook.getTitleMaxNumber())) < 0){// 鎬讳釜鏁板皬浜庢渶澶ч鍙锋暟
 			favorBook.setTitleMaxNumber(String.valueOf(favorBook.getAllCount()));
 		}
 		TraceUtils.setUpdateTrace(favorBook);
@@ -569,7 +569,7 @@
 	}
 	
 	/**
-	 * 组装错题结果入库
+	 * 缁勮閿欓缁撴灉鍏ュ簱
 	 * @param resumeBookId
 	 * @param faultRecordId
 	 * @param recordResult
@@ -585,7 +585,7 @@
 		argsMap.put("exerciseIds", args);
 		argsMap.put("favoriteRecordId", favoriteRecordId);
 		
-		//  查询此用户是否有收藏记录
+		//  鏌ヨ姝ょ敤鎴锋槸鍚︽湁鏀惰棌璁板綍
 		String hql = "from ExerciseFavorite where exerciseItemId in (:exerciseIds) and favoriteRecordId=:favoriteRecordId and deleteFlag is false";
 		List<ExerciseFavorite>  lstExistfavor =  this.findByComplexHql(hql, argsMap, ExerciseFavorite.class);
 		Map<String, ExerciseFavorite> favorMap = new HashMap<String, ExerciseFavorite>();
@@ -595,18 +595,18 @@
 		
 		List<ExerciseFavorite> lstFavor= new ArrayList<ExerciseFavorite>();
 		ExerciseFavorite favor=null;
-		// 循环每一条记录
-		// 判断客户端提交的数据是否重复map
+		// 寰幆姣忎竴鏉¤褰�
+		// 鍒ゆ柇瀹㈡埛绔彁浜ょ殑鏁版嵁鏄惁閲嶅map
 		Map<String,Object> repeatMap = new HashMap<String,Object>(lstItems.size());
 		
 		for(ExerciseExtendRecordData record:lstItems){
 			if(repeatMap.get(record.getExerciseId()) != null && 
-					(boolean)repeatMap.get(record.getExerciseId()) == record.getFlag()){//重复数据
+					(boolean)repeatMap.get(record.getExerciseId()) == record.getFlag()){//閲嶅鏁版嵁
 				continue;
 			}
 				
 			favor = favorMap.get(record.getExerciseId());
-			if(record.getFlag()){//添加收藏记录
+			if(record.getFlag()){//娣诲姞鏀惰棌璁板綍
 				if(favor == null){
 					favor = new ExerciseFavorite();
 					favor.setFavoriteBookId(favoriteBookId);
@@ -614,7 +614,7 @@
 					favor.setExerciseItemId(record.getExerciseId());
 					TraceUtils.setCreateTrace(favor);
 					favor.setDeleteFlag(false);
-				}else{//原来已经删除 现在恢复
+				}else{//鍘熸潵宸茬粡鍒犻櫎 鐜板湪鎭㈠
 					if(favor.getDeleteFlag()){
 						favor.setAnswer(null);
 						favor.setCorrect(Byte.valueOf("0"));
@@ -625,7 +625,7 @@
 					}
 				}
 				
-			}else{// 删除收藏
+			}else{// 鍒犻櫎鏀惰棌
 				if(favor == null){
 					continue;
 				}
@@ -640,27 +640,27 @@
 			repeatMap.put(record.getExerciseId(), record.getFlag());
 		}
 		
-		// 2.记录收藏itemList
-		// 批量增加或者更新
+		// 2.璁板綍鏀惰棌itemList
+		// 鎵归噺澧炲姞鎴栬�呮洿鏂�
 		this.saveOrUpdateAll(lstFavor);
 		this.flush();
 		
 		return new Result(true);
 	}
 	/**
-	 * 操作练习记录
+	 * 鎿嶄綔缁冧範璁板綍
 	 * @param subjectId
 	 * @return
 	 */
 	public ExerciseFavoriteRecord doOperExerciseFavorRecord(String favoriteBookId,String exerciseGroupId,
 			String exerciseGroupType,ExciseExtendReqData recordResult){
-		// 错题记录 当前组
+		// 閿欓璁板綍 褰撳墠缁�
 		String hql = "from ExerciseFavoriteRecord where favoriteBookId=? and exerciseGroupId=? and deleteFlag is false ";
 		
 		ExerciseFavoriteRecord record = this.findUnique(hql, 
 				CollectionUtils.newList(favoriteBookId, exerciseGroupId), ExerciseFavoriteRecord.class);
 		
-		if(null == record){// 记录不存在
+		if(null == record){// 璁板綍涓嶅瓨鍦�
 			
 			record = new ExerciseFavoriteRecord();
 			record.setFavoriteBookId(favoriteBookId);
@@ -677,7 +677,7 @@
 	
 	
 	/**
-	 * 操作练习记录
+	 * 鎿嶄綔缁冧範璁板綍
 	 * @param subjectId
 	 * @return
 	 */
@@ -687,27 +687,27 @@
 		
 		List<Object> args = CollectionUtils.newList(ClientUtils.getClassId(), 
 					ClientUtils.getUserId());
-		if(StringUtils.isNotBlank(subjectId)){// 高校
+		if(StringUtils.isNotBlank(subjectId)){// 楂樻牎
 			hql.append(" and subjectId=? ");
 			args.add(subjectId);
 		}
 		
-		//  查询此用户是否有错题记录
+		//  鏌ヨ姝ょ敤鎴锋槸鍚︽湁閿欓璁板綍
 		List<ExerciseFavoriteBook> lstFavor = this.find(hql.toString(), args, ExerciseFavoriteBook.class);
 		
 		ExerciseFavoriteBook book = null;
 		String hql_book;
-		if(lstFavor.isEmpty()){// 记录为空
+		if(lstFavor.isEmpty()){// 璁板綍涓虹┖
 			
-			if(StringUtils.isNotBlank(subjectId)){// 高校
+			if(StringUtils.isNotBlank(subjectId)){// 楂樻牎
 				
-				// 先查询上级记录是否存在
+				// 鍏堟煡璇笂绾ц褰曟槸鍚﹀瓨鍦�
 				hql_book = "from ExerciseFavoriteBook where classId=? and userId=? and deleteFlag is false ";
 				
 				lstFavor = this.find(hql_book, CollectionUtils.newList(ClientUtils.getClassId(), 
 						ClientUtils.getUserId()), ExerciseFavoriteBook.class);
 				
-				if(lstFavor.isEmpty()){//班级记录不存在
+				if(lstFavor.isEmpty()){//鐝骇璁板綍涓嶅瓨鍦�
 					book = this.insertExerciseFavorBookNew(ExerciseFavoriteBook.TYPE_ORGANIZATION, null);
 				}else{
 					book = lstFavor.get(0);
@@ -727,7 +727,7 @@
 	}
 	
 	/**
-	 * 新增错题book记录
+	 * 鏂板閿欓book璁板綍
 	 * @param groupId
 	 * @return 
 	 */
@@ -741,7 +741,7 @@
 	}
 	
 	/**
-	 * 新增错题book记录
+	 * 鏂板閿欓book璁板綍
 	 * @param groupId
 	 * @return 
 	 */
@@ -763,15 +763,15 @@
 	}
 	
 	/**
-	 * 错题本提交答案
+	 * 閿欓鏈彁浜ょ瓟妗�
 	 */
 	@Override
 	public Map<String,Object> doSubmitExerFaultAnswerDataNew(ExerciseSubmitAnswerData clientAnswerResult) {
 		
-		// 0.重新整理答题数据
+		// 0.閲嶆柊鏁寸悊绛旈鏁版嵁
 		ExerciseSubmitAnswerData answerResult = exerciseVerService.getExerciseSubmitAnswerDataNew(clientAnswerResult);
 		
-		// 1.更新错题记录
+		// 1.鏇存柊閿欓璁板綍
 		ExerciseFaultRecord record = this.doOperExerFaultRecord(answerResult);
 		
 		if(null == record){
@@ -780,7 +780,7 @@
 		
 		String faultRecordId = record.getFaultRecordId();
 		
-		// 返回结果
+		// 杩斿洖缁撴灉
 		Map<String,Object> map = new HashMap<String, Object>(3);
 		map.put(EXERCISE_RECORD_ID, faultRecordId);
 		map.put("exerciseGroupId", record.getExerciseGroupId());
@@ -790,16 +790,16 @@
 		map.put("doCount", answerResult.getDoCount());
 				
 		if(answerResult.getItems().isEmpty() 
-				&& answerResult.getSubmitType() != 1){//  submitType:1表示本地无网情况下重新做题过
+				&& answerResult.getSubmitType() != 1){//  submitType:1琛ㄧず鏈湴鏃犵綉鎯呭喌涓嬮噸鏂板仛棰樿繃
 			return map;
 		}
 		
-		// 2.判断是否本地重新做过 submitType:1表示本地无网情况下重新做题过
+		// 2.鍒ゆ柇鏄惁鏈湴閲嶆柊鍋氳繃 submitType:1琛ㄧず鏈湴鏃犵綉鎯呭喌涓嬮噸鏂板仛棰樿繃
 		if(1 == answerResult.getSubmitType()){
 			doOperExerciseFaultRecordByRedo(faultRecordId);
 		}
 		
-		// 2.更新答案
+		// 2.鏇存柊绛旀
 		answerResult.setExerciseRecordId(faultRecordId);
 		Result result = this.doUpdateExerFaultAnswerData(answerResult);
 		
@@ -807,14 +807,14 @@
 			return null;
 		}
 		
-		// 3.重新计算做题记录正确个数 做题个数  正确率
+		// 3.閲嶆柊璁$畻鍋氶璁板綍姝g‘涓暟 鍋氶涓暟  姝g‘鐜�
 		this.updateExerciseFaultRecordData(record);
 		
 		return map;
 	}
 	
 	/**
-	 * 更新错题记录
+	 * 鏇存柊閿欓璁板綍
 	 * @param answerResult
 	 * @return 
 	 */
@@ -822,11 +822,11 @@
 		
 		ExerciseFaultRecord record = null;
 		String exerciseRecordId = answerResult.getExerciseRecordId();
-		if(StringUtils.isNotBlank(exerciseRecordId)){// 正常做题
+		if(StringUtils.isNotBlank(exerciseRecordId)){// 姝e父鍋氶
 			
 			record = this.read(ExerciseFaultRecord.class, answerResult.getExerciseRecordId());
 			
-		}else{// 无网情况下
+		}else{// 鏃犵綉鎯呭喌涓�
 			String hql = "from ExerciseFaultRecord r where r.deleteFlag is false and "
 					+ "r.faultBook.userId=? and r.faultBook.classId=? and r.exerciseGroupId=?";
 			
@@ -839,9 +839,9 @@
 		}
 		
 		if(answerResult.getItems().isEmpty() 
-				&& ExerciseRecord.STATUS_SUBMIT.equals(answerResult.getStatus())){//仅仅交卷
+				&& ExerciseRecord.STATUS_SUBMIT.equals(answerResult.getStatus())){//浠呬粎浜ゅ嵎
 			record.setStatus(answerResult.getStatus());
-			// 更新答案时间
+			// 鏇存柊绛旀鏃堕棿
 			record.setAnswerUpdateTime(new Date(System.currentTimeMillis()));
 			
 			this.save(record);
@@ -850,14 +850,14 @@
 		}
 		
 		
-		// 计算
-//		if(!"1".equals(record.getStatus())){// 非提交的就更新  
+		// 璁$畻
+//		if(!"1".equals(record.getStatus())){// 闈炴彁浜ょ殑灏辨洿鏂�  
 //		}
 		record.setStatus(StringUtils.isBlank(answerResult.getStatus()) ? "0" : answerResult.getStatus());
 		if(!"0".equals(answerResult.getCurrTitleNum())){
 			record.setTitleMaxNumber(StringUtils.isBlank(answerResult.getCurrTitleNum()) ? "0" : answerResult.getCurrTitleNum());
 		}
-		// 更新答案时间
+		// 鏇存柊绛旀鏃堕棿
 		record.setAnswerUpdateTime(new Date(System.currentTimeMillis()));
 		
 		this.save(record);
@@ -866,7 +866,7 @@
 	}
 	
 	/**
-	 *提交 错题结果到db
+	 *鎻愪氦 閿欓缁撴灉鍒癲b
 	 * @return
 	 */
 	public Result doUpdateExerFaultAnswerData(ExerciseSubmitAnswerData answerResult) {
@@ -875,10 +875,10 @@
 			return new Result(true);
 		}
 		
-		// 批量更新答案
+		// 鎵归噺鏇存柊绛旀
 		List<ExerciseFault> lstResultFault =new ArrayList<ExerciseFault>(lstAnswers.size());
 		
-		// 2.1.组装参数 用于查询练习选项图片
+		// 2.1.缁勮鍙傛暟 鐢ㄤ簬鏌ヨ缁冧範閫夐」鍥剧墖
 		Map<String, Object> argsMap = new HashMap<String, Object>(2);
 		Object[] args = new Object[lstAnswers.size()];
 		for(int i=0; i<lstAnswers.size(); i++){
@@ -890,7 +890,7 @@
 		String hql = "from ExerciseFault where deleteFlag is false and exerciseItemId in (:exerciseIds) and faultRecordId =:exerciseRecordId ";
 		List<ExerciseFault> lstFault = this.findByComplexHql(hql, argsMap, ExerciseFault.class);
 		
-		// 按练习id 对应放到map中
+		// 鎸夌粌涔爄d 瀵瑰簲鏀惧埌map涓�
 		Map<String, ExerciseFault> faultMap = new HashMap<String, ExerciseFault>(lstFault.size());
 		for(ExerciseFault fault:lstFault){
 			faultMap.put(fault.getExerciseItemId(), fault);
@@ -902,7 +902,7 @@
 			if(null == fault){
 				continue;
 			}
-			if(StringUtils.isBlank(answer.getAnswer())){// 答案为空
+			if(StringUtils.isBlank(answer.getAnswer())){// 绛旀涓虹┖
 				continue;
 			}
 			
@@ -912,7 +912,7 @@
 			lstResultFault.add(fault);
 		}
 		
-		// 1.保存 错题 收集lst
+		// 1.淇濆瓨 閿欓 鏀堕泦lst
 		this.saveOrUpdateAll(lstResultFault);
 		this.flush();
 		
@@ -920,38 +920,38 @@
 	}
 	
 	/**
-	 *  收藏本提交答案
+	 *  鏀惰棌鏈彁浜ょ瓟妗�
 	 */
 	@Override
 	public Map<String,Object> doSubmitExerFavorAnswerDataNew(ExerciseSubmitAnswerData clientAnswerResult) {
 		
-		// 0.重新整理答题数据
+		// 0.閲嶆柊鏁寸悊绛旈鏁版嵁
 		ExerciseSubmitAnswerData answerResult = exerciseVerService.getExerciseSubmitAnswerDataNew(clientAnswerResult);
 		
-		// 1.更新错题记录
+		// 1.鏇存柊閿欓璁板綍
 		ExerciseFavoriteRecord record = doOperExerFavorRecord(answerResult);
 		if(null == record){
 			return null;
 		}
 		String favoriteRecordId = record.getFavoriteRecordId();
 		
-		// 返回结果
+		// 杩斿洖缁撴灉
 		Map<String,Object> map = new HashMap<String, Object>(3);
 		map.put(EXERCISE_RECORD_ID, favoriteRecordId);
 		map.put("exerciseGroupId", record.getExerciseGroupId());
 		map.put(UPDATE_TIME,   DateTimeUtils.getCurrDateTime(record.getAnswerUpdateTime()));
 		map.put("exerciseBookId", record.getFavoriteBookId());
 		
-		if(answerResult.getItems().isEmpty() && answerResult.getSubmitType() != 1){//仅仅交卷
+		if(answerResult.getItems().isEmpty() && answerResult.getSubmitType() != 1){//浠呬粎浜ゅ嵎
 			return map;
 		}
 		
-		// 2.判断是否本地重新做过 submitType:1表示本地无网情况下重新做题过
+		// 2.鍒ゆ柇鏄惁鏈湴閲嶆柊鍋氳繃 submitType:1琛ㄧず鏈湴鏃犵綉鎯呭喌涓嬮噸鏂板仛棰樿繃
 		if(1 == answerResult.getSubmitType()){
 			doOperExerciseFavorRecordByRedo(favoriteRecordId);
 		}
 				
-		// 2.更新答案
+		// 2.鏇存柊绛旀
 		answerResult.setExerciseRecordId(favoriteRecordId);
 		Result result = doUpdateExerFavorAnswerData(answerResult);
 		
@@ -959,14 +959,14 @@
 			return null;
 		}
 		
-		//  3.重新计算做题记录正确个数 做题个数  正确率  收藏
+		//  3.閲嶆柊璁$畻鍋氶璁板綍姝g‘涓暟 鍋氶涓暟  姝g‘鐜�  鏀惰棌
 		this.updateExerciseFavoriteRecordData(record);
 		
 		return map;
 	}
 	
 	/**
-	 * 更新错题记录
+	 * 鏇存柊閿欓璁板綍
 	 * @param answerResult
 	 * @return 
 	 */
@@ -974,11 +974,11 @@
 		
 		ExerciseFavoriteRecord record = null;
 		String exerciseRecordId = answerResult.getExerciseRecordId();
-		if(StringUtils.isNotBlank(exerciseRecordId)){// 正常做题
+		if(StringUtils.isNotBlank(exerciseRecordId)){// 姝e父鍋氶
 			
 			record = this.read(ExerciseFavoriteRecord.class, exerciseRecordId);
 			
-		}else{// 无网情况下
+		}else{// 鏃犵綉鎯呭喌涓�
 			String hql = "from ExerciseFavoriteRecord r where r.deleteFlag is false "
 					+ " and r.favorBook.userId=? and r.favorBook.classId=? and r.exerciseGroupId=?";
 			
@@ -991,9 +991,9 @@
 		}
 		
 		if(answerResult.getItems().isEmpty() 
-				&& ExerciseRecord.STATUS_SUBMIT.equals(answerResult.getStatus())){//仅仅交卷
+				&& ExerciseRecord.STATUS_SUBMIT.equals(answerResult.getStatus())){//浠呬粎浜ゅ嵎
 			record.setStatus(answerResult.getStatus());
-			// 更新答案时间
+			// 鏇存柊绛旀鏃堕棿
 			record.setAnswerUpdateTime(new Date(System.currentTimeMillis()));
 			
 			this.save(record);
@@ -1001,15 +1001,15 @@
 			return record;
 		}
 		
-//		// 计算
-//		if(!"1".equals(record.getStatus())){// 非提交的就更新
+//		// 璁$畻
+//		if(!"1".equals(record.getStatus())){// 闈炴彁浜ょ殑灏辨洿鏂�
 //		}
 		record.setStatus(answerResult.getStatus());
 		if(!"0".equals(answerResult.getCurrTitleNum())){
 			record.setTitleMaxNumber(answerResult.getCurrTitleNum());
 		}
 		
-		// 更新答案时间
+		// 鏇存柊绛旀鏃堕棿
 		record.setAnswerUpdateTime(new Date(System.currentTimeMillis()));
 		
 		this.save(record);
@@ -1019,7 +1019,7 @@
 	
 	
 	/**
-	 *提交 错题结果到db
+	 *鎻愪氦 閿欓缁撴灉鍒癲b
 	 * @return
 	 */
 	public Result doUpdateExerFavorAnswerData(ExerciseSubmitAnswerData answerResult) {
@@ -1028,10 +1028,10 @@
 		if(lstAnswers.isEmpty()){
 			return new Result(true);
 		}
-		// 批量更新答案
+		// 鎵归噺鏇存柊绛旀
 		List<ExerciseFavorite> lstResultFavor =new ArrayList<ExerciseFavorite>(lstAnswers.size());
 		
-		// 2.1.组装参数 用于查询练习选项图片
+		// 2.1.缁勮鍙傛暟 鐢ㄤ簬鏌ヨ缁冧範閫夐」鍥剧墖
 		Map<String, Object> argsMap = new HashMap<String, Object>(2);
 		Map<String, Object> exerItemIdMap = new HashMap<String, Object>(1);
 		Object[] args = new Object[lstAnswers.size()];
@@ -1045,7 +1045,7 @@
 		String hql = "from ExerciseFavorite where deleteFlag is false and exerciseItemId in (:exerciseIds) and favoriteRecordId =:exerciseRecordId ";
 		List<ExerciseFavorite> lstFavor = this.findByComplexHql(hql, argsMap, ExerciseFavorite.class);
 		
-		// 按练习id 对应放到map中
+		// 鎸夌粌涔爄d 瀵瑰簲鏀惧埌map涓�
 		Map<String, ExerciseFavorite> favorMap = new HashMap<String, ExerciseFavorite>(lstFavor.size());
 		for(ExerciseFavorite favor:lstFavor){
 			favorMap.put(favor.getExerciseItemId(), favor);
@@ -1057,7 +1057,7 @@
 			if(null == favor){
 				continue;
 			}
-			if(StringUtils.isBlank(answer.getAnswer())){// 答案为空
+			if(StringUtils.isBlank(answer.getAnswer())){// 绛旀涓虹┖
 				continue;
 			}
 			favor.setAnswer(answer.getAnswer());
@@ -1073,7 +1073,7 @@
 	}
 	
 	/**
-	 * 查询错题本列表数据
+	 * 鏌ヨ閿欓鏈垪琛ㄦ暟鎹�
 	 * @param exerType
 	 * @param subjectId
 	 * @param pager
@@ -1083,7 +1083,7 @@
 	public List<ExerGroupResponseData> queryExerciseFaultListData(
 			int exerType, String subjectId, Pager pager) {
 		StringBuffer hql = new StringBuffer(512);
-		//  1.查询分组列表
+		//  1.鏌ヨ鍒嗙粍鍒楄〃
 		hql.append("select r,g from ExerciseFaultRecord r, ExerciseFaultBook b, ExerciseGroup g "
 				+ " where r.resumeBookId=b.resumeBookId "
 				+ " and r.exerciseGroupId=g.groupId "
@@ -1092,18 +1092,18 @@
 				+ "	and b.userId=?  and r.allCount>0 ");
 		
 		List<Object> args = CollectionUtils.newList(ClientUtils.getUserId());
-		if(exerType != 0){ //表示查询全部错题
+		if(exerType != 0){ //琛ㄧず鏌ヨ鍏ㄩ儴閿欓
 			hql.append(" and r.exerciseGroupType=?");
 			args.add((short)exerType);
 		}
 				
-		if(StringUtils.isNotBlank(subjectId)){// 高校  通过课程过滤
+		if(StringUtils.isNotBlank(subjectId)){// 楂樻牎  閫氳繃璇剧▼杩囨护
 			
 			hql.append(" and b.type=? and b.subjectId=? and g.subjectId=? ");
 			args.add(ExerciseFaultBook.TYPE_COLLEGE);
 			args.add(subjectId);
 			args.add(subjectId);
-		}else{// 非高校
+		}else{// 闈為珮鏍�
 			
 			hql.append(" and b.type=? and b.classId=? and g.classId=?");
 			args.add(ExerciseFaultBook.TYPE_ORGANIZATION);
@@ -1112,14 +1112,14 @@
 		}
 		hql.append(" order by r.updateTime desc ");
 		
-		// 根据结构查询得到所需记录
+		// 鏍规嵁缁撴瀯鏌ヨ寰楀埌鎵�闇�璁板綍
 		List<Object[]> lstRecord = this.findList(hql.toString(), pager, args, Object[].class);
 		
-		if(lstRecord.isEmpty()){// 查询结果记录为空
+		if(lstRecord.isEmpty()){// 鏌ヨ缁撴灉璁板綍涓虹┖
 			return null;
 		}
 		
-		// 3.组装参数
+		// 3.缁勮鍙傛暟
 		Object[] argss = new Object[lstRecord.size()];
 		ExerciseGroup groupp=null;
 		for(int i=0; i<lstRecord.size(); i++){
@@ -1127,15 +1127,15 @@
 			argss[i] = groupp.getGroupId();
 		}
 		
-		// 获取个人用户组对应的收藏记录 题目更新时间
+		// 鑾峰彇涓汉鐢ㄦ埛缁勫搴旂殑鏀惰棌璁板綍 棰樼洰鏇存柊鏃堕棿
 		Map<String, Map<String, Object>> favorMap = this.queryFavorRecordByGroup(subjectId, argss);
 				
-		// 结果返回参数
+		// 缁撴灉杩斿洖鍙傛暟
 		List<ExerGroupResponseData> lstResult = new ArrayList<ExerGroupResponseData>(lstRecord.size());
 		
 		for(Object[] objs:lstRecord){
 			
-			// 组装练习错题本列表数据
+			// 缁勮缁冧範閿欓鏈垪琛ㄦ暟鎹�
 			lstResult.add(packagingExerciseFaultListData(
 					favorMap, objs));
 		}
@@ -1144,7 +1144,7 @@
 	}
 
 	/**
-	 * 组装练习错题本列表数据
+	 * 缁勮缁冧範閿欓鏈垪琛ㄦ暟鎹�
 	 * @param favorMap
 	 * @param objs
 	 * @return
@@ -1156,7 +1156,7 @@
 		
 		ExerGroupResponseData resultObj = new ExerGroupResponseData();
 		
-		// 拆分方法
+		// 鎷嗗垎鏂规硶
 		packagingExerciseFaultListChildData(record, resultObj);
 		
 		resultObj.setExtendAllCount(record.getAllCount()==null ? BigInteger.ZERO  : record.getAllCount());
@@ -1170,7 +1170,7 @@
 		resultObj.setFaultUpdateTime(record.getUpdateTime());
 		resultObj.setFaultCount(resultObj.getAllCount());
 		if(favorMap != null && favorMap.get(group.getGroupId()) != null){
-			resultObj.setFavorUpdateTime((Timestamp)favorMap.get(group.getGroupId()).get(UPDATE_TIME));//设置收藏本题目更新时间
+			resultObj.setFavorUpdateTime((Timestamp)favorMap.get(group.getGroupId()).get(UPDATE_TIME));//璁剧疆鏀惰棌鏈鐩洿鏂版椂闂�
 			resultObj.setFavorCount((BigInteger)favorMap.get(group.getGroupId()).get("allCount"));
 		}
 		
@@ -1181,7 +1181,7 @@
 	}
 	
 	/**
-	 * 组装练习错题本列表数据 拆分方法
+	 * 缁勮缁冧範閿欓鏈垪琛ㄦ暟鎹� 鎷嗗垎鏂规硶
 	 * @param record
 	 * @param resultObj
 	 */
@@ -1197,7 +1197,7 @@
 	}
 	
 	/**
-	 * 获取个人用户组对应的错题题目更新时间
+	 * 鑾峰彇涓汉鐢ㄦ埛缁勫搴旂殑閿欓棰樼洰鏇存柊鏃堕棿
 	 * @param subjectId
 	 * @param args
 	 * @return
@@ -1205,7 +1205,7 @@
 	@Override
 	public Map<String, Map<String, Object>> queryFaultRecordByGroup(String subjectId, Object[] args) {
 		StringBuffer hql = new StringBuffer(512);
-		//  1.查询分组列表
+		//  1.鏌ヨ鍒嗙粍鍒楄〃
 		hql.append("select r.exerciseGroupId,r.updateTime,r.allCount from ExerciseFaultRecord r, ExerciseFaultBook b "
 				+ " where r.resumeBookId=b.resumeBookId "
 				+ "	and b.userId = :userId and r.exerciseGroupId in (:groupIds)  ");
@@ -1215,19 +1215,19 @@
 		argsMap.put("userId", ClientUtils.getUserId());
 		argsMap.put("groupIds", args);
 		
-		if(StringUtils.isNotBlank(subjectId)){// 高校  通过课程过滤
+		if(StringUtils.isNotBlank(subjectId)){// 楂樻牎  閫氳繃璇剧▼杩囨护
 			
 			hql.append(" and b.type=:type and b.subjectId=:subjectId ");
 			argsMap.put("type", ExerciseFaultBook.TYPE_COLLEGE);
 			argsMap.put("subjectId", subjectId);
-		}else{// 非高校
+		}else{// 闈為珮鏍�
 			
 			hql.append(" and b.type=:type and b.classId=:classId ");
 			argsMap.put("type", ExerciseFaultBook.TYPE_ORGANIZATION);
 			argsMap.put("classId", ClientUtils.getClassId());
 		}
 		
-		// 根据结构查询得到所需记录
+		// 鏍规嵁缁撴瀯鏌ヨ寰楀埌鎵�闇�璁板綍
 		List<Object[]> lstRecord = this.findByComplexHql(hql.toString(), argsMap, Object[].class);
 		
 		Map<String, Map<String, Object>> resultMap = new HashMap<String, Map<String, Object>>(lstRecord.size());
@@ -1243,7 +1243,7 @@
 	}
 	
 	/**
-	 *获取个人用户组对应的收藏题目更新时间
+	 *鑾峰彇涓汉鐢ㄦ埛缁勫搴旂殑鏀惰棌棰樼洰鏇存柊鏃堕棿
 	 * @param subjectId
 	 * @param args
 	 * @return
@@ -1251,7 +1251,7 @@
 	@Override
 	public Map<String, Map<String, Object>> queryFavorRecordByGroup(String subjectId, Object[] args) {
 		StringBuffer hql = new StringBuffer(512);
-		//  1.查询分组列表
+		//  1.鏌ヨ鍒嗙粍鍒楄〃
 		hql.append("select r.exerciseGroupId,r.updateTime,r.allCount from ExerciseFavoriteRecord r, ExerciseFavoriteBook b"
 				+ " where r.favoriteBookId=b.favoriteBookId "
 				+ "	and b.userId = :userId and r.exerciseGroupId in (:groupIds)  ");
@@ -1261,19 +1261,19 @@
 		argsMap.put("userId", ClientUtils.getUserId());
 		argsMap.put("groupIds", args);
 		
-		if(StringUtils.isNotBlank(subjectId)){// 高校  通过课程过滤
+		if(StringUtils.isNotBlank(subjectId)){// 楂樻牎  閫氳繃璇剧▼杩囨护
 			
 			hql.append(" and b.type=:type and b.subjectId=:subjectId ");
 			argsMap.put("type", ExerciseFaultBook.TYPE_COLLEGE);
 			argsMap.put("subjectId", subjectId);
-		}else{// 非高校
+		}else{// 闈為珮鏍�
 			
 			hql.append(" and b.type=:type and b.classId=:classId ");
 			argsMap.put("type", ExerciseFaultBook.TYPE_ORGANIZATION);
 			argsMap.put("classId", ClientUtils.getClassId());
 		}
 		
-		// 根据结构查询得到所需记录
+		// 鏍规嵁缁撴瀯鏌ヨ寰楀埌鎵�闇�璁板綍
 		List<Object[]> lstRecord = this.findByComplexHql(hql.toString(), argsMap, Object[].class);
 		Map<String, Map<String, Object>> resultMap = new HashMap<String, Map<String, Object>>(lstRecord.size());
 		Map<String, Object> paramMap = null;
@@ -1288,8 +1288,8 @@
 	}
 	
 	/**
-	 * 查询收藏本列表数据
-	 * @param exerType 0:表示全部错题
+	 * 鏌ヨ鏀惰棌鏈垪琛ㄦ暟鎹�
+	 * @param exerType 0:琛ㄧず鍏ㄩ儴閿欓
 	 * @param subjectId
 	 * @param pager
 	 * @return
@@ -1298,7 +1298,7 @@
 	public List<ExerGroupResponseData> queryExerciseFavorListData(int exerType,
 			String subjectId, Pager pager) {
 		StringBuffer hql = new StringBuffer(512);
-		//  1.查询分组列表
+		//  1.鏌ヨ鍒嗙粍鍒楄〃
 		hql.append("select r, g from ExerciseFavoriteRecord r, ExerciseFavoriteBook b, ExerciseGroup g"
 				+ " where r.favoriteBookId=b.favoriteBookId "
 				+ " and r.exerciseGroupId=g.groupId "
@@ -1307,18 +1307,18 @@
 				+ " and b.userId=? and r.allCount>0 ");
 		
 		List<Object> args = CollectionUtils.newList(ClientUtils.getUserId());
-		if(exerType != 0){ //表示查询非全部收藏  exerType=0为查询全部收藏
+		if(exerType != 0){ //琛ㄧず鏌ヨ闈炲叏閮ㄦ敹钘�  exerType=0涓烘煡璇㈠叏閮ㄦ敹钘�
 			hql.append(" and r.exerciseGroupType=?");
 			args.add((short)exerType);
 		}
 		
-		if(StringUtils.isNotBlank(subjectId)){// 高校  通过课程过滤
+		if(StringUtils.isNotBlank(subjectId)){// 楂樻牎  閫氳繃璇剧▼杩囨护
 			
 			hql.append(" and b.type=? and b.subjectId=? and g.subjectId=? ");
 			args.add(ExerciseFaultBook.TYPE_COLLEGE);
 			args.add(subjectId);
 			args.add(subjectId);
-		}else{// 非高校
+		}else{// 闈為珮鏍�
 			
 			hql.append(" and b.type=? and b.classId=? and g.classId=?");
 			args.add(ExerciseFaultBook.TYPE_ORGANIZATION);
@@ -1327,10 +1327,10 @@
 		}
 		hql.append(" order by r.updateTime desc ");
 		
-		// 根据结构查询得到所需记录
+		// 鏍规嵁缁撴瀯鏌ヨ寰楀埌鎵�闇�璁板綍
 		List<Object[]> lstRecord = this.findList(hql.toString(), pager, args,Object[].class);
 		
-		if(lstRecord.isEmpty()){// 查询结果记录为空
+		if(lstRecord.isEmpty()){// 鏌ヨ缁撴灉璁板綍涓虹┖
 			return null;
 		}
 		
@@ -1341,15 +1341,15 @@
 			argss[i] = groupp.getGroupId();
 		}
 		
-		// 获取个人用户组对应的错题记录 题目更新时间
+		// 鑾峰彇涓汉鐢ㄦ埛缁勫搴旂殑閿欓璁板綍 棰樼洰鏇存柊鏃堕棿
 		Map<String, Map<String, Object>> faultMap = this.queryFaultRecordByGroup(subjectId, argss);
 		
-		// 结果返回参数
+		// 缁撴灉杩斿洖鍙傛暟
 		List<ExerGroupResponseData> lstResult = new ArrayList<ExerGroupResponseData>(lstRecord.size());
 		
 		for(Object[] objs:lstRecord){
 			
-			// 组装练习收藏列表数据
+			// 缁勮缁冧範鏀惰棌鍒楄〃鏁版嵁
 			lstResult.add(packagingExerciseFavorListData(
 					faultMap, objs));
 			
@@ -1359,7 +1359,7 @@
 	}
 	
 	/**
-	 * 组装练习收藏列表数据
+	 * 缁勮缁冧範鏀惰棌鍒楄〃鏁版嵁
 	 * @param faultMap
 	 * @param objs
 	 * @return
@@ -1371,7 +1371,7 @@
 		
 		ExerGroupResponseData resultObj = new ExerGroupResponseData();
 		
-		// 拆分组装数据
+		// 鎷嗗垎缁勮鏁版嵁
 		packagingExerciseFavorListChildData(record, resultObj);
 		
 		resultObj.setExtendAllCount(record.getAllCount()==null ? BigInteger.ZERO  : record.getAllCount());
@@ -1386,7 +1386,7 @@
 		resultObj.setFavorUpdateTime(record.getUpdateTime());
 		resultObj.setFavorCount(resultObj.getAllCount());
 		if(faultMap !=null && faultMap.get(group.getGroupId()) !=null){
-			resultObj.setFaultUpdateTime((Timestamp)faultMap.get(group.getGroupId()).get(UPDATE_TIME));//设置错题本题目更新时间
+			resultObj.setFaultUpdateTime((Timestamp)faultMap.get(group.getGroupId()).get(UPDATE_TIME));//璁剧疆閿欓鏈鐩洿鏂版椂闂�
 			resultObj.setFaultCount((BigInteger)faultMap.get(group.getGroupId()).get("allCount"));
 		}
 		
@@ -1397,7 +1397,7 @@
 	}
 	
 	/**
-	 * 组装练习收藏列表数据 拆分组装数据
+	 * 缁勮缁冧範鏀惰棌鍒楄〃鏁版嵁 鎷嗗垎缁勮鏁版嵁
 	 * @param record
 	 * @param resultObj
 	 */
@@ -1414,12 +1414,12 @@
 	
 
 	/**
-	 * 获取全部收藏练习数据
+	 * 鑾峰彇鍏ㄩ儴鏀惰棌缁冧範鏁版嵁
 	 * @return
 	 */
 	@Override
 	public ExerItemResponseData queryAllExerciseFavorData(Pager pager) {
-		//  1.查询此用户是否有错题记录
+		//  1.鏌ヨ姝ょ敤鎴锋槸鍚︽湁閿欓璁板綍
 		String hql = "select item, favor.favorRecord.exerciseGroupId,favor.favorRecord.favorBook.status "
 				+ " from ExerciseItem item, ExerciseFavorite favor "
 				+ " where item.exerciseId=favor.exerciseItemId"
@@ -1445,34 +1445,34 @@
 				status = String.valueOf(objs[2]);
 			}
 			item = new ExerciseItem();
-			BeanUtils.copyProperties((ExerciseItem)objs[0], item);// 防止item同一个内存地址
-			item.setExerciseGroupId(String.valueOf(objs[1]));//设置每个题目的组id
+			BeanUtils.copyProperties((ExerciseItem)objs[0], item);// 闃叉item鍚屼竴涓唴瀛樺湴鍧�
+			item.setExerciseGroupId(String.valueOf(objs[1]));//璁剧疆姣忎釜棰樼洰鐨勭粍id
 			lstItems.add(item);
 		}
 		
-		// 2.重新组装练习题 加入分析结果
+		// 2.閲嶆柊缁勮缁冧範棰� 鍔犲叆鍒嗘瀽缁撴灉
 		lstItems =  exerciseVerService.getCommonExerItemDetail(lstItems, null);
 		
-		// 3.组装答案
+		// 3.缁勮绛旀
 		ExerItemResponseData result = new ExerItemResponseData();
 				
 		result.setItems(lstItems);
 		result.setStatus(status);
 		
-		result.setResult(new Result(true,"查询成功"));
+		result.setResult(new Result(true,"鏌ヨ鎴愬姛"));
 		
 		return result; 
 	}
 	
 	/**
-	 * 获取收藏练习数据
+	 * 鑾峰彇鏀惰棌缁冧範鏁版嵁
 	 * @param groupId
-	 * @param exerciseRecordId 废弃
+	 * @param exerciseRecordId 搴熷純
 	 * @return
 	 */
 	@Override
 	public ExerItemResponseData queryExerciseFavorData(String groupId) {
-		//  1.查询此用户是否有错题记录
+		//  1.鏌ヨ姝ょ敤鎴锋槸鍚︽湁閿欓璁板綍
 		String hql = "select item, favor "
 				+ " from ExerciseItem item, ExerciseFavorite favor "
 				+ " where item.exerciseId=favor.exerciseItemId"
@@ -1489,13 +1489,13 @@
 	}
 	
 	/**
-	 * 获取多套收藏练习数据
+	 * 鑾峰彇澶氬鏀惰棌缁冧範鏁版嵁
 	 * @param groupId
 	 * @return
 	 */
 	@Override
 	public Map<String,Object> queryExerciseMutiFavorData(String groupId) {
-		//  1.查询此用户是否有错题记录
+		//  1.鏌ヨ姝ょ敤鎴锋槸鍚︽湁閿欓璁板綍
 		String hql = "select item.exerciseId "
 				+ " from ExerciseItem item, ExerciseFavorite favor "
 				+ " where item.exerciseId=favor.exerciseItemId"
@@ -1525,7 +1525,7 @@
 	}
 	
 	/**
-	 * 查询收藏题目明细
+	 * 鏌ヨ鏀惰棌棰樼洰鏄庣粏
 	 * @param lstResult
 	 * @param groupId
 	 * @return
@@ -1560,11 +1560,11 @@
 			
 		}
 		
-		// 2.重新组装练习题 加入分析结果
+		// 2.閲嶆柊缁勮缁冧範棰� 鍔犲叆鍒嗘瀽缁撴灉
 		lstItems =  exerciseVerService.getCommonExerItemDetail(lstItems, groupId);
 		
 		
-		// 3.组装答案
+		// 3.缁勮绛旀
 		ExerItemResponseData result = new ExerItemResponseData();
 				
 		result.setExerciseGroupId(groupId);
@@ -1573,18 +1573,18 @@
 		
 		result.setAnswers(lstAnswers);
 		
-		result.setResult(new Result(true,"查询成功"));
+		result.setResult(new Result(true,"鏌ヨ鎴愬姛"));
 		
 		return result; 
 	}
 	
 	/**
-	 * 获取全部错题练习数据
+	 * 鑾峰彇鍏ㄩ儴閿欓缁冧範鏁版嵁
 	 * @return
 	 */
 	@Override
 	public ExerItemResponseData queryAllExerciseFaultData(Pager pager) {
-		//  1.查询此用户是否有错题记录
+		//  1.鏌ヨ姝ょ敤鎴锋槸鍚︽湁閿欓璁板綍
 		String hql = "select item, fault.faultRecord.exerciseGroupId,fault.faultRecord.faultBook.status "
 				+ " from ExerciseItem item, ExerciseFault fault "
 				+ " where item.exerciseId=fault.exerciseItemId"
@@ -1606,37 +1606,37 @@
 		String status=null;
 		for(Object[] objs:lstResult){
 			if(objs[2] !=null) {
-				status=String.valueOf(objs[2]);//获取全部题目的提交状态
+				status=String.valueOf(objs[2]);//鑾峰彇鍏ㄩ儴棰樼洰鐨勬彁浜ょ姸鎬�
 			}
 			item = new ExerciseItem();
-			BeanUtils.copyProperties((ExerciseItem)objs[0], item);// 防止item同一个内存地址
-			item.setExerciseGroupId(String.valueOf(objs[1]));//设置每个题目的组id
+			BeanUtils.copyProperties((ExerciseItem)objs[0], item);// 闃叉item鍚屼竴涓唴瀛樺湴鍧�
+			item.setExerciseGroupId(String.valueOf(objs[1]));//璁剧疆姣忎釜棰樼洰鐨勭粍id
 			lstItems.add(item);
 		}
 		
-		// 2.重新组装练习题 加入分析结果
+		// 2.閲嶆柊缁勮缁冧範棰� 鍔犲叆鍒嗘瀽缁撴灉
 		lstItems = exerciseVerService.getCommonExerItemDetail(lstItems, null);
 		
 		
-		// 3.组装答案
+		// 3.缁勮绛旀
 		ExerItemResponseData result = new ExerItemResponseData();
 		
 		result.setStatus(status);
 		result.setItems(lstItems);
 		
-		result.setResult(new Result(true,"查询成功"));
+		result.setResult(new Result(true,"鏌ヨ鎴愬姛"));
 		
 		return result; 
 	}
 	
 	/**
-	 * 获取单套题错题练习数据
+	 * 鑾峰彇鍗曞棰橀敊棰樼粌涔犳暟鎹�
 	 * @param groupId
 	 * @return
 	 */
 	@Override
 	public ExerItemResponseData queryExerciseFaultData(String groupId) {
-		//  1.查询此用户是否有错题记录
+		//  1.鏌ヨ姝ょ敤鎴锋槸鍚︽湁閿欓璁板綍
 		String hql = "select item, fault "
 				+ " from ExerciseItem item, ExerciseFault fault "
 				+ " where item.exerciseId=fault.exerciseItemId"
@@ -1645,7 +1645,7 @@
 				+ " and item.deleteFlag is false"
 				+ " and fault.deleteFlag is false"
 				+ " order by fault.createTime";
-		// 2.查询答案
+		// 2.鏌ヨ绛旀
 		
 		List<Object[]> lstResult = this.findwithRawResult(hql, CollectionUtils.newList(ClientUtils.getUserId(), groupId));
 		
@@ -1653,14 +1653,14 @@
 	}
 	
 	/**
-	 * 获取多套题错题练习数据
+	 * 鑾峰彇澶氬棰橀敊棰樼粌涔犳暟鎹�
 	 * @param groupId
 	 * @return
 	 */
 	@Override
 	public Map<String,Object> queryExerciseMutiFaultData(String groupId) {
 		
-		//  1.查询题目
+		//  1.鏌ヨ棰樼洰
 		String hql = "select item.exerciseId "
 				+ " from ExerciseItem item, ExerciseFault fault "
 				+ " where item.exerciseId=fault.exerciseItemId"
@@ -1691,7 +1691,7 @@
 	
 	
 	/**
-	 * 查询错题明细数据
+	 * 鏌ヨ閿欓鏄庣粏鏁版嵁
 	 * @param lstResult
 	 * @param groupId
 	 * @return
@@ -1710,8 +1710,8 @@
 		for(Object[] objs:lstResult){
 			
 			item = (ExerciseItem)objs[0];
-			if(StringUtils.isBlank(groupId)){// 表示查询所有错题
-				item.setExerciseGroupId(String.valueOf(objs[2]));//设置每个题目的组id
+			if(StringUtils.isBlank(groupId)){// 琛ㄧず鏌ヨ鎵�鏈夐敊棰�
+				item.setExerciseGroupId(String.valueOf(objs[2]));//璁剧疆姣忎釜棰樼洰鐨勭粍id
 			}
 			lstItems.add(item);
 			
@@ -1729,11 +1729,11 @@
 			}
 		}
 		
-		// 2.重新组装练习题 加入分析结果
+		// 2.閲嶆柊缁勮缁冧範棰� 鍔犲叆鍒嗘瀽缁撴灉
 		lstItems = exerciseVerService.getCommonExerItemDetail(lstItems, groupId);
 		
 		
-		// 3.组装答案
+		// 3.缁勮绛旀
 		ExerItemResponseData result = new ExerItemResponseData();
 		
 		result.setExerciseGroupId(groupId);
@@ -1742,13 +1742,13 @@
 		
 		result.setAnswers(lstAnswers);
 		
-		result.setResult(new Result(true,"查询成功"));
+		result.setResult(new Result(true,"鏌ヨ鎴愬姛"));
 		
 		return result; 
 	}
 	
 	/**
-	 * 获取收藏本答案数据 
+	 * 鑾峰彇鏀惰棌鏈瓟妗堟暟鎹� 
 	 */
 	@Override
 	public ExerItemResponseData queryExerciseFavorAnswerData(String groupId) {
@@ -1760,7 +1760,7 @@
 				+ " and f.favorRecord.favorBook.classId=?"
 				+ " and f.answer is not null and f.deleteFlag is false";
 		
-		//  1.查询错题
+		//  1.鏌ヨ閿欓
 		List<ExerciseFavorite> lstFavors = this.find(hql, CollectionUtils.newList(groupId,
 				ClientUtils.getUserId(),ClientUtils.getClassId()), ExerciseFavorite.class);
 		
@@ -1775,7 +1775,7 @@
 			lstAnswers.add(answerU);
 		}
 			
-		// 3.组装答案
+		// 3.缁勮绛旀
 		ExerItemResponseData result = new ExerItemResponseData();
 				
 		result.setAnswers(lstAnswers);
@@ -1785,7 +1785,7 @@
 	}
 	
 	/**
-	 * 获取错题本答案数据 
+	 * 鑾峰彇閿欓鏈瓟妗堟暟鎹� 
 	 */
 	@Override
 	public ExerItemResponseData queryExerciseFaultAnswerData(String groupId) {
@@ -1797,7 +1797,7 @@
 				+ " and f.faultRecord.faultBook.classId=?"
 				+ " and f.answer is not null and f.deleteFlag is false";
 		
-		//  1.查询错题
+		//  1.鏌ヨ閿欓
 		List<ExerciseFault> lstFaults = this.find(hql, CollectionUtils.newList(groupId, 
 				ClientUtils.getUserId(),ClientUtils.getClassId()), ExerciseFault.class);
 		
@@ -1812,7 +1812,7 @@
 			lstAnswers.add(answerU);
 		}
 			
-		// 3.组装答案
+		// 3.缁勮绛旀
 		ExerItemResponseData result = new ExerItemResponseData();
 				
 		result.setAnswers(lstAnswers);
@@ -1822,14 +1822,14 @@
 	}
 
 	/**
-	 * 操作本次做题记录
-	 * groupId 习题组ID  如果为All时,表示全部错题、全部收藏
+	 * 鎿嶄綔鏈鍋氶璁板綍
+	 * groupId 涔犻缁処D  濡傛灉涓篈ll鏃讹紝琛ㄧず鍏ㄩ儴閿欓銆佸叏閮ㄦ敹钘�
 	 * @return
 	 */
 	@Override
 	public Map<String, Object> doUpdateFaultExerRecordNew(String groupId) {
 		
-		if("All".equals(groupId)){//表示全部错题重做
+		if("All".equals(groupId)){//琛ㄧず鍏ㄩ儴閿欓閲嶅仛
 			return doCleanAllFaultRecordByRedo();
 		}
 		
@@ -1857,11 +1857,11 @@
 		
 		String faultRecordId = record.getFaultRecordId();
 		
-		//  重新做题 清理旧数据 
+		//  閲嶆柊鍋氶 娓呯悊鏃ф暟鎹� 
 		doOperExerciseFaultRecordByRedo(faultRecordId);
 		
 		
-		// 更新全部收藏题目的信息
+		// 鏇存柊鍏ㄩ儴鏀惰棌棰樼洰鐨勪俊鎭�
 		this.doOperFaultBookBySubmitAllAnswer(
 				null, null, record.getResumeBookId(),null);
 		
@@ -1875,12 +1875,12 @@
 	}
 	
 	/**
-	 * 全部错题重做
+	 * 鍏ㄩ儴閿欓閲嶅仛
 	 * @return
 	 */
 	private Map<String,Object> doCleanAllFaultRecordByRedo(){
 		
-		/** 1.更新错题book记录为初始值 */
+		/** 1.鏇存柊閿欓book璁板綍涓哄垵濮嬪�� */
 		String hql_book = "from ExerciseFaultBook b where b.userId=? and b.classId=? and b.type=? ";
 		
 		ExerciseFaultBook book = this.findUnique(hql_book, CollectionUtils.newList(ClientUtils.getUserId(),
@@ -1904,7 +1904,7 @@
 		BigDecimal decimalZero = BigDecimal.ZERO;
 		BigInteger integerZero = BigInteger.ZERO;
 		
-		/** 2.更新所有错题record记录为初始值 */
+		/** 2.鏇存柊鎵�鏈夐敊棰榬ecord璁板綍涓哄垵濮嬪�� */
 		String hql_record = "update ExerciseFaultRecord t set t.score="+decimalZero+", t.completionRate="+decimalZero+", t.doCount="+integerZero+","
 				+ "  t.correctCount="+integerZero+", t.accuracy="+decimalZero+", t.titleMaxNumber='0', t.status='0'"
 				+ "  where t.resumeBookId=? and t.deleteFlag is false";
@@ -1912,17 +1912,17 @@
 		this.bulkUpdateInLoop(hql_record, new String[]{resumeBookId});
 		
 		
-		/** 3.重新做题 清理所有旧数据    */
-		// 3.1复制错题数据到历史表
+		/** 3.閲嶆柊鍋氶 娓呯悊鎵�鏈夋棫鏁版嵁    */
+		// 3.1澶嶅埗閿欓鏁版嵁鍒板巻鍙茶〃
 		String hql_fault = "from ExerciseFault where resumeBookId=? and answer is not null and deleteFlag is false";
 		doCopyExerciseFaultToHis(hql_fault,resumeBookId);
 		
-		// 3.2清空错题做题记录
+		// 3.2娓呯┖閿欓鍋氶璁板綍
 		String hql_delFault = "update ExerciseFault t set t.answer=null,t.correct=0"
 				+ " where t.resumeBookId=? and t.answer is not null and t.deleteFlag is false";
 		this.bulkUpdateInLoop(hql_delFault, new String[]{resumeBookId});
 		
-		/** 4.返回结果    */
+		/** 4.杩斿洖缁撴灉    */
 		Map<String,Object> resultMap = new HashMap<String, Object>(3);
 		resultMap.put(EXERCISE_RECORD_ID, null);
 		resultMap.put("exerciseGroupId", "All");
@@ -1932,31 +1932,31 @@
 	}
 	
 	/**
-	 * 重新做题 清理旧数据 
+	 * 閲嶆柊鍋氶 娓呯悊鏃ф暟鎹� 
 	 * @param faultRecordId
 	 * @return
 	 */
 	public Result doOperExerciseFaultRecordByRedo(String faultRecordId){
 		
-		// 1.拷贝做题记录到错题答案历史表
+		// 1.鎷疯礉鍋氶璁板綍鍒伴敊棰樼瓟妗堝巻鍙茶〃
 		String hql = "from ExerciseFault where faultRecordId=? and answer is not null and deleteFlag is false";
 		doCopyExerciseFaultToHis(hql, faultRecordId);
 		
-		// 2.删除做题记录
+		// 2.鍒犻櫎鍋氶璁板綍
 		deleteExerciseFaultRecord(faultRecordId);
 				
 		return new Result(true);
 	}
 	
 	/**
-	 * 拷贝做题记录到错题答案历史表
+	 * 鎷疯礉鍋氶璁板綍鍒伴敊棰樼瓟妗堝巻鍙茶〃
 	 * @param faultRecordId/resumeBookId
 	 * @return
 	 */
 	public Result doCopyExerciseFaultToHis(String hql,String recordId){
 		List<ExerciseFault> lstFault = this.find(hql, CollectionUtils.newList(recordId), ExerciseFault.class);
 		
-		// 错题历史记录表
+		// 閿欓鍘嗗彶璁板綍琛�
 		List<ExerciseFaultHis> lstFaultHis = new ArrayList<ExerciseFaultHis>(lstFault.size());
 		ExerciseFaultHis his = null;
 		for(ExerciseFault fault:lstFault){
@@ -1973,7 +1973,7 @@
 	}
 	
 	/**
-	 * 批量刪除错题做题记录
+	 * 鎵归噺鍒櫎閿欓鍋氶璁板綍
 	 * @param faultRecordId
 	 * @return
 	 */
@@ -1988,7 +1988,7 @@
 	}
 	
 	/**
-	 * 批量刪除错题做题记录
+	 * 鎵归噺鍒櫎閿欓鍋氶璁板綍
 	 * @param faultRecordId
 	 * @return
 	 */
@@ -2003,13 +2003,13 @@
 	}
 	
 	/**
-	 * 操作本次做题记录 收藏
+	 * 鎿嶄綔鏈鍋氶璁板綍 鏀惰棌
 	 * @return
 	 */
 	@Override
 	public Map<String, Object> doUpdateFavortExerRecordNew(String groupId) {
 		
-		if("All".equals(groupId)){//表示全部收藏重做
+		if("All".equals(groupId)){//琛ㄧず鍏ㄩ儴鏀惰棌閲嶅仛
 			return doCleanAllFavorRecordByRedo();
 		}
 		
@@ -2038,10 +2038,10 @@
 		
 		String favoriteRecordId = record.getFavoriteRecordId();
 	
-		//  重新开始做题 清理旧数据
+		//  閲嶆柊寮�濮嬪仛棰� 娓呯悊鏃ф暟鎹�
 		doOperExerciseFavorRecordByRedo(favoriteRecordId);
 		
-		// 更新全部收藏题目的统计信息
+		// 鏇存柊鍏ㄩ儴鏀惰棌棰樼洰鐨勭粺璁′俊鎭�
 		this.doOperFavorBookBySubmitAllAnswer(null, null, record.getFavoriteBookId(),null);
 		
 		Map<String,Object> resultMap = new HashMap<String, Object>(3);
@@ -2051,12 +2051,12 @@
 	}
 	
 	/**
-	 * 全部收藏重做
+	 * 鍏ㄩ儴鏀惰棌閲嶅仛
 	 * @return
 	 */
 	private Map<String,Object> doCleanAllFavorRecordByRedo(){
 		
-		/** 1.更新收藏book记录为初始值 */
+		/** 1.鏇存柊鏀惰棌book璁板綍涓哄垵濮嬪�� */
 		String hql_book = "from ExerciseFavoriteBook b where b.userId=? and b.classId=? and b.type=? ";
 		
 		ExerciseFavoriteBook book = this.findUnique(hql_book, CollectionUtils.newList(ClientUtils.getUserId(),
@@ -2080,7 +2080,7 @@
 		BigDecimal decimalZero = BigDecimal.ZERO;
 		BigInteger integerZero = BigInteger.ZERO;
 		
-		/** 2.更新所有收藏record记录为初始值 */
+		/** 2.鏇存柊鎵�鏈夋敹钘弐ecord璁板綍涓哄垵濮嬪�� */
 		String hql_record = "update ExerciseFavoriteRecord t set t.score="+decimalZero+", t.completionRate="+decimalZero+", t.doCount="+integerZero+","
 				+ "  t.correctCount="+integerZero+", t.accuracy="+decimalZero+", t.titleMaxNumber='0', t.status='0'"
 				+ "  where t.favoriteBookId=? and t.deleteFlag is false";
@@ -2088,17 +2088,17 @@
 		this.bulkUpdateInLoop(hql_record, new String[]{favoriteBookId});
 		
 		
-		/** 3.重新做题 清理所有旧数据    */
-		// 3.1复制收藏数据到历史表
+		/** 3.閲嶆柊鍋氶 娓呯悊鎵�鏈夋棫鏁版嵁    */
+		// 3.1澶嶅埗鏀惰棌鏁版嵁鍒板巻鍙茶〃
 		String hql_favor = "from ExerciseFavorite where favoriteBookId=? and answer is not null and deleteFlag is false";
 		doCopyExerciseFavorToHis(hql_favor,favoriteBookId);
 		
-		// 3.2清空收藏做题记录
+		// 3.2娓呯┖鏀惰棌鍋氶璁板綍
 		String hql_delFavor = "update ExerciseFavorite t set t.answer=null,t.correct=0"
 				+ " where t.favoriteBookId=? and t.answer is not null and t.deleteFlag is false";
 		this.bulkUpdateInLoop(hql_delFavor, new String[]{favoriteBookId});
 		
-		/** 4.返回结果    */
+		/** 4.杩斿洖缁撴灉    */
 		Map<String,Object> resultMap = new HashMap<String, Object>(3);
 		resultMap.put(EXERCISE_RECORD_ID, null);
 		resultMap.put("exerciseGroupId", "All");
@@ -2108,31 +2108,31 @@
 	}
 	
 	/**
-	 * 重新开始做题 清理旧数据
+	 * 閲嶆柊寮�濮嬪仛棰� 娓呯悊鏃ф暟鎹�
 	 * @param favoriteRecordId
 	 * @return
 	 */
 	public Result doOperExerciseFavorRecordByRedo(String favoriteRecordId){
 		
-		// 1.拷贝做题记录到收藏答案历史表
+		// 1.鎷疯礉鍋氶璁板綍鍒版敹钘忕瓟妗堝巻鍙茶〃
 		String hql = "from ExerciseFavorite where favoriteRecordId=? and answer is not null and deleteFlag is false";
 		doCopyExerciseFavorToHis(hql, favoriteRecordId);
 		
-		// 2.删除做题记录
+		// 2.鍒犻櫎鍋氶璁板綍
 		deleteExerciseFavorRecord(favoriteRecordId);
 		
 		return new Result(true);
 	}
 	
 	/**
-	 * 拷贝做题记录到收藏答案历史表
+	 * 鎷疯礉鍋氶璁板綍鍒版敹钘忕瓟妗堝巻鍙茶〃
 	 * @param faultRecordId/favoriteBookId
 	 * @return
 	 */
 	public Result doCopyExerciseFavorToHis(String hql, String recordId){
 		List<ExerciseFavorite> lstFavor = this.find(hql, CollectionUtils.newList(recordId), ExerciseFavorite.class);
 		
-		// 错题历史记录表
+		// 閿欓鍘嗗彶璁板綍琛�
 		List<ExerciseFavoriteHis> lstFavorHis = new ArrayList<ExerciseFavoriteHis>(lstFavor.size());
 		ExerciseFavoriteHis his = null;
 		for(ExerciseFavorite favor:lstFavor){
@@ -2149,20 +2149,20 @@
 	}
 	
 	/**
-	 * 查询题目统计分析结果 个人统计 全站统计
+	 * 鏌ヨ棰樼洰缁熻鍒嗘瀽缁撴灉 涓汉缁熻 鍏ㄧ珯缁熻
 	 * @param exerciseType
 	 * @return
 	 */
 	@Override
 	public List<Map<String, Object>> queryExerciseItemStatisics(String exerciseType) {
-		// 题目个人统计
+		// 棰樼洰涓汉缁熻
 		String hql_analisisU = "";
-		// 题目全站统计
+		// 棰樼洰鍏ㄧ珯缁熻
 		String hql_analisis = "";
-		// 题目
+		// 棰樼洰
 		String hql_item = "";
 		
-		if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 错题本
+		if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 閿欓鏈�
 			
 			hql_analisisU = "select a from ExerciseItemAnalisiU a,ExerciseFault re"
 					+ " where a.exerciseItemId=re.exerciseItemId "
@@ -2178,7 +2178,7 @@
 					+ " where re.faultBook.userId=? and re.faultBook.classId=? "
 					+ " and re.deleteFlag is false order by re.createTime";
 			
-		}else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 收藏
+		}else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 鏀惰棌
 			
 			hql_analisisU =  "select a from ExerciseItemAnalisiU a,ExerciseFavorite re"
 					+ " where a.exerciseItemId=re.exerciseItemId "
@@ -2201,12 +2201,12 @@
 	}
 	
 	/**
-	 * 查询错题题目统计
+	 * 鏌ヨ閿欓棰樼洰缁熻
 	 * @return
 	 */
 	private List<Map<String, Object>> doQueryExerciseItemStatisicsData(String hql_analisisU,
 			String hql_analisis, String hql_item) {
-		// 1.查询个人统计
+		// 1.鏌ヨ涓汉缁熻
 		List<ExerciseItemAnalisiU> lstAnalisiU = this.find(hql_analisisU,
 				CollectionUtils.newList(ClientUtils.getUserId(),ClientUtils.getUserId(),ClientUtils.getClassId()), ExerciseItemAnalisiU.class);
 		
@@ -2215,7 +2215,7 @@
 			anasisUMap.put(analisisU.getExerciseItemId(), analisisU);
 		}
 		
-		// 2.查询全站统计
+		// 2.鏌ヨ鍏ㄧ珯缁熻
 		List<ExerciseItemAnalisi> lstAnalisi = this.find(hql_analisis,
 				CollectionUtils.newList(ClientUtils.getUserId(),ClientUtils.getClassId()), ExerciseItemAnalisi.class);
 		Map<String, ExerciseItemAnalisi> anasisMap = new HashMap<String, ExerciseItemAnalisi>(lstAnalisi.size());
@@ -2227,7 +2227,7 @@
 			return null;
 		}
 		
-		// 3.查询此组所有题目
+		// 3.鏌ヨ姝ょ粍鎵�鏈夐鐩�
 		List<String> lstItemIds = this.find(hql_item,
 				CollectionUtils.newList(ClientUtils.getUserId(),ClientUtils.getClassId()), String.class);
 		
@@ -2236,22 +2236,22 @@
 		ExerciseItemAnalisi analisis;
 		ExerciseItemAnalisiU analisisU;
 		
-		// 3.组装结果 
+		// 3.缁勮缁撴灉 
 		
-		// 循坏组所有题目
+		// 寰潖缁勬墍鏈夐鐩�
 		for(String  exerciseItemId:lstItemIds){
-			// 结果map
+			// 缁撴灉map
 			resultMap = new HashMap<String, Object>(10);
 			
-			// 1.个人分析结果
+			// 1.涓汉鍒嗘瀽缁撴灉
 			analisisU = anasisUMap.get(exerciseItemId);
-			// 2.全站分析结果
+			// 2.鍏ㄧ珯鍒嗘瀽缁撴灉
 			analisis = anasisMap.get(exerciseItemId);
 			
 			resultMap.put("exerciseId", exerciseItemId);
 			
-			// 3.个人统计
-			if(null == analisisU){// 为空
+			// 3.涓汉缁熻
+			if(null == analisisU){// 涓虹┖
 				resultMap.put("doAll_u", 0);
 				resultMap.put("doError_u", 0);
 				resultMap.put("doAccuracy_u", 0);
@@ -2261,8 +2261,8 @@
 				resultMap.put("doAccuracy_u", analisisU.getAccuracy());
 			}
 			
-			// 4.全站统计
-			if(null == analisis){// 为空
+			// 4.鍏ㄧ珯缁熻
+			if(null == analisis){// 涓虹┖
 				resultMap.put("doAll", 0);
 				resultMap.put("doAccuracy", 0);
 			}else{
@@ -2278,7 +2278,7 @@
 	}
 	
 	/**
-	 * 更新错题book信息
+	 * 鏇存柊閿欓book淇℃伅
 	 * @param faultBookId
 	 * @return
 	 */
@@ -2307,7 +2307,7 @@
 	}
 	
 	/**
-	 * 更新错题book信息 by提交全部错题答案
+	 * 鏇存柊閿欓book淇℃伅 by鎻愪氦鍏ㄩ儴閿欓绛旀
 	 * @param currTitleNum
 	 * @param status
 	 * @return
@@ -2316,9 +2316,9 @@
 	public Result doOperFaultBookBySubmitAllAnswer(String currTitleNum,
 			String status,String faultBookId, String exerciseType) {
 		ExerciseFaultBook book = null;
-		if(StringUtils.isBlank(faultBookId)){// 是否全部错题  仅仅提交操作
+		if(StringUtils.isBlank(faultBookId)){// 鏄惁鍏ㄩ儴閿欓  浠呬粎鎻愪氦鎿嶄綔
 			if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)
-				&& ExerciseRecord.STATUS_SUBMIT.equals(status)){// 全部错题仅提交答案
+				&& ExerciseRecord.STATUS_SUBMIT.equals(status)){// 鍏ㄩ儴閿欓浠呮彁浜ょ瓟妗�
 				
 				book = this.findUnique("from ExerciseFaultBook where classId=? and userId=? and type=? and deleteFlag is false ",
 						CollectionUtils.newList(ClientUtils.getClassId(), 
@@ -2328,25 +2328,25 @@
 				return new Result(false);
 			}
 			
-		}else{// 混合提交
+		}else{// 娣峰悎鎻愪氦
 			book = this.read(ExerciseFaultBook.class, faultBookId);
 			if(book == null){
 				return new Result(false);
 			}
 		}
 		
-		// 更新book信息
+		// 鏇存柊book淇℃伅
 		this.updateExerciseFaultBookInfo(book);
 		
 		if(StringUtils.isNotBlank(currTitleNum)){
 			book.setTitleMaxNumber(currTitleNum);
 		}
 		if(StringUtils.isNotBlank(status)){
-			book.setStatus("1".equals(status)?"1":"0");// 1:提交 0:未提交
+			book.setStatus("1".equals(status)?"1":"0");// 1锛氭彁浜� 0锛氭湭鎻愪氦
 			
-			if("1".equals(status)){// 全部错题提交答案时  对应的record也改为提交状态
+			if("1".equals(status)){// 鍏ㄩ儴閿欓鎻愪氦绛旀鏃�  瀵瑰簲鐨剅ecord涔熸敼涓烘彁浜ょ姸鎬�
 				
-				/** 更新所有错题record记录为提交状态 */
+				/** 鏇存柊鎵�鏈夐敊棰榬ecord璁板綍涓烘彁浜ょ姸鎬� */
 				String hql_record = "update ExerciseFaultRecord t set t.status='1'"
 						+ "  where t.resumeBookId=? and t.deleteFlag is false";
 				
@@ -2361,7 +2361,7 @@
 	}
 
 	/**
-	 * 更新收藏book信息
+	 * 鏇存柊鏀惰棌book淇℃伅
 	 * @param faultBookId
 	 * @return
 	 */
@@ -2389,7 +2389,7 @@
 	}
 	
 	/**
-	 * 更新收藏book信息 by提交全部收藏答案
+	 * 鏇存柊鏀惰棌book淇℃伅 by鎻愪氦鍏ㄩ儴鏀惰棌绛旀
 	 * @param currTitleNum
 	 * @param status
 	 * @return
@@ -2399,9 +2399,9 @@
 			String status,String favoriteBookId, String exerciseType) {
 		
 		ExerciseFavoriteBook book = null;
-		if(StringUtils.isBlank(favoriteBookId)){// 是否全部收藏  仅仅提交操作
+		if(StringUtils.isBlank(favoriteBookId)){// 鏄惁鍏ㄩ儴鏀惰棌  浠呬粎鎻愪氦鎿嶄綔
 			if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)
-				&& ExerciseRecord.STATUS_SUBMIT.equals(status)){// 全部错题仅提交答案
+				&& ExerciseRecord.STATUS_SUBMIT.equals(status)){// 鍏ㄩ儴閿欓浠呮彁浜ょ瓟妗�
 				
 				book = this.findUnique("from ExerciseFavoriteBook where classId=? and userId=? and type=? and deleteFlag is false ",
 						CollectionUtils.newList(ClientUtils.getClassId(), 
@@ -2411,14 +2411,14 @@
 				return new Result(false);
 			}
 			
-		}else{// 混合提交
+		}else{// 娣峰悎鎻愪氦
 			book = this.read(ExerciseFavoriteBook.class, favoriteBookId);
 			if(book == null){
 				return new Result(false);
 			}
 		}
 		
-		// 更新收藏book信息
+		// 鏇存柊鏀惰棌book淇℃伅
 		this.updateExerciseFavorBookInfo(book);
 		
 		if(StringUtils.isNotBlank(currTitleNum)){
@@ -2426,11 +2426,11 @@
 		}
 		
 		if(StringUtils.isNotBlank(status)){
-			book.setStatus("1".equals(status)?"1":"0");// 1:提交 0:未提交
+			book.setStatus("1".equals(status)?"1":"0");// 1锛氭彁浜� 0锛氭湭鎻愪氦
 			
-			if("1".equals(status)){// 全部收藏提交答案时  对应的record也改为提交状态
+			if("1".equals(status)){// 鍏ㄩ儴鏀惰棌鎻愪氦绛旀鏃�  瀵瑰簲鐨剅ecord涔熸敼涓烘彁浜ょ姸鎬�
 				
-				/** 更新所有收藏record记录为提交状态 */
+				/** 鏇存柊鎵�鏈夋敹钘弐ecord璁板綍涓烘彁浜ょ姸鎬� */
 				String hql_record = "update ExerciseFavoriteRecord t set t.status='1'"
 						+ "  where t.favoriteBookId=? and t.deleteFlag is false";
 				
@@ -2445,7 +2445,7 @@
 	}
 	
 	/**
-	 * 查询错题本book信息
+	 * 鏌ヨ閿欓鏈琤ook淇℃伅
 	 */
 	@Override
 	public Map<String, Object> queryExerFaultInfo() {
@@ -2475,7 +2475,7 @@
 	}
 
 	/**
-	 * 查询收藏本book信息
+	 * 鏌ヨ鏀惰棌鏈琤ook淇℃伅
 	 */
 	@Override
 	public Map<String, Object> queryExerFavorInfo() {
@@ -2505,13 +2505,13 @@
 	}
 	
 	/**
-	 * 计算用户每天做错题的统计信息
+	 * 璁$畻鐢ㄦ埛姣忓ぉ鍋氶敊棰樼殑缁熻淇℃伅
 	 */
 	@SuppressWarnings("unchecked")
 	@Override
 	public Result doCalcExerFaultStatisticsByDay(){
-		log.info("---------------定时器 开始统计做题错题统计信息-----------start ------------------");
-		// 1.计算前一天 对应做题人的做题信息
+		log.info("---------------瀹氭椂鍣� 寮�濮嬬粺璁″仛棰橀敊棰樼粺璁′俊鎭�-----------start ------------------");
+		// 1.璁$畻鍓嶄竴澶� 瀵瑰簲鍋氶浜虹殑鍋氶淇℃伅
 		String sql = "SELECT"
 				+ " 	r.CLASS_ID,"
 				+ " 	t.USER_ID,"
@@ -2537,7 +2537,7 @@
 		List<Object[]> resultlst = this.findBySql(sql, CollectionUtils.newList(yesterday, DateUtils.getToday()));
 		
 		
-		// 2.错题信息记录表
+		// 2.閿欓淇℃伅璁板綍琛�
 		List<ExerciseFaultStatistics> statisLst = new ArrayList<ExerciseFaultStatistics>(resultlst.size());
 		ExerciseFaultStatistics faultStatis = null;
 		for(Object[] objs:resultlst){
@@ -2559,30 +2559,30 @@
 		
 		this.saveOrUpdateAll(statisLst);
 		
-		log.info("---------------定时器 开始统计做题错题统计信息-----------end ------------------");
-		return new Result(true, "操作成功,统计记录总条数:"+statisLst.size());
+		log.info("---------------瀹氭椂鍣� 寮�濮嬬粺璁″仛棰橀敊棰樼粺璁′俊鎭�-----------end ------------------");
+		return new Result(true, "鎿嶄綔鎴愬姛,缁熻璁板綍鎬绘潯鏁帮細"+statisLst.size());
 	}
 	
 	/**
-	 * 查询错题统计信息
-	 * @param type:  week 最近一周   month:最近一月  year:最近一年
+	 * 鏌ヨ閿欓缁熻淇℃伅
+	 * @param type:  week 鏈�杩戜竴鍛�   month:鏈�杩戜竴鏈�  year锛氭渶杩戜竴骞�
 	 * @return
 	 */
 	@Override
 	public List<Map<String,Object>> doGetFaultStatisInfo(String type) {
 		try {
-			// 开始时间
+			// 寮�濮嬫椂闂�
 			String startDate = "";
-			// 结束时间  今天
+			// 缁撴潫鏃堕棿  浠婂ぉ
 			String endDate = DateUtils.getToday();
 				
-			if("week".equals(type)){// 最近一周     7天前到今天 不包含今天
+			if("week".equals(type)){// 鏈�杩戜竴鍛�     7澶╁墠鍒颁粖澶� 涓嶅寘鍚粖澶�
 				
 				startDate= DateUtils.getTheDay(-7);
-			}else if("month".equals(type)){// 最近一月   30天前到今天  不包含今天
+			}else if("month".equals(type)){// 鏈�杩戜竴鏈�   30澶╁墠鍒颁粖澶�  涓嶅寘鍚粖澶�
 				
 				startDate= DateUtils.getTheDay(-30);
-			}else if("year".equals(type)){// 最近一年 365天前到今天  不包含今天
+			}else if("year".equals(type)){// 鏈�杩戜竴骞� 365澶╁墠鍒颁粖澶�  涓嶅寘鍚粖澶�
 				
 				startDate= DateUtils.getTheDay(-365);
 			}
@@ -2593,7 +2593,7 @@
 					+ " and exerciseTime >=? and exerciseTime<=?"
 					+ " order by exerciseTime";
 			
-			// 查询结果
+			// 鏌ヨ缁撴灉
 			List<Object[]> statisLst = this.findwithRawResult(hql, 
 						CollectionUtils.newList(ClientUtils.getUserId(),ClientUtils.getClassId(), 
 								DateUtils.convertStringToDate(startDate, "yyyy-MM-dd"), 
@@ -2620,37 +2620,37 @@
 			return resultLst;
 			
 		} catch (ParseException e) {
-			log.error("查询错题容错率接口异常", e);
+			log.error("鏌ヨ閿欓瀹归敊鐜囨帴鍙e紓甯�", e);
 		}
 		
 		return null;
 	}
 	
 	/**
-	 * 操作本次做题记录 错题
+	 * 鎿嶄綔鏈鍋氶璁板綍 閿欓
 	 * @return
 	 */
 	@Override
 	public Result doUpdateExerciseFaultRecord(ExerciseFaultRecord record) {
-		//TraceUtils.setUpdateTrace(record);不更新updateTime
+		//TraceUtils.setUpdateTrace(record);涓嶆洿鏂皍pdateTime
 		this.save(record);
 		return new Result(true);
 	}
 
 	/**
-	 * 操作本次做题记录 收藏
+	 * 鎿嶄綔鏈鍋氶璁板綍 鏀惰棌
 	 * @return
 	 */
 	@Override
 	public Result doUpdateExerciseFavorRecord(ExerciseFavoriteRecord record) {
-		//TraceUtils.setUpdateTrace(record); 不更新updateTime
+		//TraceUtils.setUpdateTrace(record); 涓嶆洿鏂皍pdateTime
 		this.save(record);
 		return new Result(true);
 	}
 	
 	/**
 	 * 
-	 * 保存app端请求保存的数据
+	 * 淇濆瓨app绔姹備繚瀛樼殑鏁版嵁
 	 * @return
 	 */
 	@Override
@@ -2663,7 +2663,7 @@
 	
 	@Override
 	public Result doUpdateExerciseFaultBook(String currTitleNum) {
-		//  查询此用户是否有收藏记录
+		//  鏌ヨ姝ょ敤鎴锋槸鍚︽湁鏀惰棌璁板綍
 		String hql = "from ExerciseFaultBook where classId=? and userId=? and deleteFlag is false ";
 		
 		List<ExerciseFaultBook> lstFault = this.find(hql,
@@ -2681,7 +2681,7 @@
 
 	@Override
 	public Result doUpdateExerciseFavorBook(String currTitleNum) {
-		//  查询此用户是否有收藏记录
+		//  鏌ヨ姝ょ敤鎴锋槸鍚︽湁鏀惰棌璁板綍
 		String hql = "from ExerciseFavoriteBook where classId=? and userId=? and deleteFlag is false ";
 		
 		List<ExerciseFavoriteBook> lstFavor = this.find(hql,
@@ -2698,11 +2698,11 @@
 	}
 
 	/**
-	 *提交多套题答案结果到db 
+	 *鎻愪氦澶氬棰樼瓟妗堢粨鏋滃埌db 
 	 */
 	@Override
 	public Map<String, Object> doSubmitMutiExerciseAnswerData(ExerciseSubmitAnswerDataList answerDataList) {
-		// 用户本次做题提交的数据
+		// 鐢ㄦ埛鏈鍋氶鎻愪氦鐨勬暟鎹�
 		List<ExerciseSubmitAnswerData> lstRecord = null;
 		ExerciseSubmitAnswerData answerResult= null;
 		List<ExerciseItemAnswerData> lstAnswers= null;
@@ -2715,7 +2715,7 @@
 		
 		List<Map<String,Object>> resultList = new ArrayList<Map<String,Object>>(lstRecord.size());
 		
-		// 错题、收藏本bookid
+		// 閿欓銆佹敹钘忔湰bookid
 		String faultBookId = null;
 		String favoriteBookId = null;
 		for(int i=0; i<lstRecord.size(); i++){
@@ -2727,30 +2727,30 @@
 			
 			lstAnswers = answerResult.getItems();
 			
-			// 记录id
+			// 璁板綍id
 			String initExerciseRecordId = answerResult.getExerciseRecordId();
 						
 			String recordData = JSONObject.toJSONString(answerResult);
 			
 			if(lstAnswers.isEmpty() 
 					&& !ExerciseRecord.STATUS_SUBMIT.equals(answerResult.getStatus()) 
-					&& answerResult.getSubmitType() != 1){// 提交状态
+					&& answerResult.getSubmitType() != 1){// 鎻愪氦鐘舵��
 				this.doSaveExerciseDataSubmitLog(recordData,
 						initExerciseRecordId, ExerciseDataSubmitLog.TYPE_SUBMIT_EXTEND_ANSWER,
 						ExerciseDataSubmitLog.STATUS_FAILED, "/exercise/Extend/exerExtendMutiAnswers");
 				continue;
 			}
 			
-			/**  1.---------记录提交的数据日志 */
-			// 记录提交的数据日志
+			/**  1.---------璁板綍鎻愪氦鐨勬暟鎹棩蹇� */
+			// 璁板綍鎻愪氦鐨勬暟鎹棩蹇�
 			String exerciseDataLogId = this.doSaveExerciseDataSubmitLog(recordData,
 					initExerciseRecordId, ExerciseDataSubmitLog.TYPE_SUBMIT_EXTEND_ANSWER, 
 					ExerciseDataSubmitLog.STATUS_SUCCESS, "/exercise/Extend/exerExtendMutiAnswers");
 						
-			/** 2.提交答案  */
+			/** 2.鎻愪氦绛旀  */
 			String exerciseType = answerResult.getType();
-			if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 错题本
-				// 更新 提交练习答案
+			if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 閿欓鏈�
+				// 鏇存柊 鎻愪氦缁冧範绛旀
 				returnMap = this.doSubmitExerFaultAnswerDataNew(answerResult);
 				
 				if(null == returnMap){
@@ -2758,8 +2758,8 @@
 				}
 				
 				faultBookId = (String) returnMap.get("exerciseBookId");
-			}else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 收藏
-				// 更新 提交练习答案
+			}else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 鏀惰棌
+				// 鏇存柊 鎻愪氦缁冧範绛旀
 				returnMap = this.doSubmitExerFavorAnswerDataNew(answerResult);
 				
 				if(null == returnMap){
@@ -2771,15 +2771,15 @@
 				continue;
 			}
 			
-			/** 3.发送 题目的全站统计  个人统计请求消息  */
+			/** 3.鍙戦�� 棰樼洰鐨勫叏绔欑粺璁�  涓汉缁熻璇锋眰娑堟伅  */
 			exerciseVerService.sendUpdateExerItemStatisticsMsg(answerResult.getExerciseGroupId(), answerResult);
 			
 			returnMap.put("type", exerciseType);
 			resultList.add(returnMap);
 			
-			// 4.---------更新本次提交的数据日志exerciseRecordId
+			// 4.---------鏇存柊鏈鎻愪氦鐨勬暟鎹棩蹇梕xerciseRecordId
 			if(StringUtils.isBlank(initExerciseRecordId) 
-					&& returnMap.get(EXERCISE_RECORD_ID) != null){// 为空 说明第一次提交  更新日志记录id
+					&& returnMap.get(EXERCISE_RECORD_ID) != null){// 涓虹┖ 璇存槑绗竴娆℃彁浜�  鏇存柊鏃ュ織璁板綍id
 				exerciseVerService.doUpdateExerciseDataSubmitLog(exerciseDataLogId, 
 						String.valueOf(returnMap.get(EXERCISE_RECORD_ID)));
 				
@@ -2787,66 +2787,66 @@
 						
 		}
 		
-		/** 4.判断是否全部做题时 统计全部做题信息  */
+		/** 4.鍒ゆ柇鏄惁鍏ㄩ儴鍋氶鏃� 缁熻鍏ㄩ儴鍋氶淇℃伅  */
 		this.doOperFaultBookBySubmitAllAnswer(
 				answerDataList.getCurrTitleNum(), answerDataList.getStatus(),faultBookId, answerDataList.getExerciseType());
 		
 		this.doOperFavorBookBySubmitAllAnswer(
 				answerDataList.getCurrTitleNum(), answerDataList.getStatus(),favoriteBookId, answerDataList.getExerciseType());
 		
-		/**  5.返回结果 */
+		/**  5.杩斿洖缁撴灉 */
 		resultMap.put("success", true);
 		resultMap.put("attrs", resultList);
-		resultMap.put("msg", "提交成功");
+		resultMap.put("msg", "鎻愪氦鎴愬姛");
 		
 		return resultMap;
 	}
 	
 	/**
-	 * 提交单套题答案结果到db 
+	 * 鎻愪氦鍗曞棰樼瓟妗堢粨鏋滃埌db 
 	 */
 	@Override
 	public Result doSubmitExerciseAnswerData(ExerciseSubmitAnswerData answerResult) {
-		// 用户本次做题提交的数据
+		// 鐢ㄦ埛鏈鍋氶鎻愪氦鐨勬暟鎹�
 		Result result = new Result(false);
 					
 		if(answerResult.getItems().isEmpty() 
 				&& !ExerciseRecord.STATUS_SUBMIT.equals(answerResult.getStatus()) 
-				&& answerResult.getSubmitType() != 1){// 提交状态
+				&& answerResult.getSubmitType() != 1){// 鎻愪氦鐘舵��
 			return result;
 		}
 		
 		String exerciseType = answerResult.getType();
 		
 		Map<String,Object> resultMap = null;
-		if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 错题本
-			// 更新 提交练习答案
+		if(Constants.EXERCISE_TYPE_FAULT.equals(exerciseType)){// 閿欓鏈�
+			// 鏇存柊 鎻愪氦缁冧範绛旀
 			resultMap = this.doSubmitExerFaultAnswerDataNew(answerResult);
 			
 			if(null == resultMap){
-				return new Result(false,"提交失败");
+				return new Result(false,"鎻愪氦澶辫触");
 			}
 			
-			// 统计全部做题信息/
+			// 缁熻鍏ㄩ儴鍋氶淇℃伅/
 			this.doOperFaultBookBySubmitAllAnswer(null,null,(String) resultMap.get("exerciseBookId"),null);
 			
-		}else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 收藏
-			// 更新 提交练习答案
+		}else if(Constants.EXERCISE_TYPE_FAVORT.equals(exerciseType)){// 鏀惰棌
+			// 鏇存柊 鎻愪氦缁冧範绛旀
 			resultMap = this.doSubmitExerFavorAnswerDataNew(answerResult);
 			
 			if(null == resultMap){
-				return new Result(false,"提交失败");
+				return new Result(false,"鎻愪氦澶辫触");
 			}
 			
-			// 统计全部做题信息/
+			// 缁熻鍏ㄩ儴鍋氶淇℃伅/
 			this.doOperFavorBookBySubmitAllAnswer(null,null, (String) resultMap.get("exerciseBookId"),null);
 		}else{
 			
-			return new Result(false, "exerciseType传值错误:exerciseType="+exerciseType);
+			return new Result(false, "exerciseType浼犲�奸敊璇細exerciseType="+exerciseType);
 		}
 		
 		
-		// 3.发送 题目的全站统计  个人统计请求消息
+		// 3.鍙戦�� 棰樼洰鐨勫叏绔欑粺璁�  涓汉缁熻璇锋眰娑堟伅
 		List<ExerciseItemAnswerData> lstAnswers= answerResult.getItems();
 		if(!lstAnswers.isEmpty()){
 			exerciseVerService.sendUpdateExerItemStatisticsMsg(answerResult.getExerciseGroupId(), answerResult);
@@ -2859,13 +2859,13 @@
 	}
 	
 	/**
-	 * 初始化错题统计数据
+	 * 鍒濆鍖栭敊棰樼粺璁℃暟鎹�
 	 */
 	@SuppressWarnings("unchecked")
 	@Override
 	public Result doInitFaultStatisData() {
-		log.info("---------------定时器 开始统计做题错题统计信息-----------start ------------------");
-		// 1.计算前一天 对应做题人的做题信息
+		log.info("---------------瀹氭椂鍣� 寮�濮嬬粺璁″仛棰橀敊棰樼粺璁′俊鎭�-----------start ------------------");
+		// 1.璁$畻鍓嶄竴澶� 瀵瑰簲鍋氶浜虹殑鍋氶淇℃伅
 		String sql = "SELECT"
 				+ " 	r.CLASS_ID,"
 				+ " 	t.USER_ID,"
@@ -2892,7 +2892,7 @@
 		List<Object[]> resultlst = this.findBySql(sql, CollectionUtils.newList(yesterday));
 		
 		
-		// 2.错题信息记录表
+		// 2.閿欓淇℃伅璁板綍琛�
 		List<ExerciseFaultStatistics> statisLst = new ArrayList<ExerciseFaultStatistics>(resultlst.size());
 		ExerciseFaultStatistics faultStatis = null;
 		for(Object[] objs:resultlst){
@@ -2914,8 +2914,8 @@
 		
 		this.saveOrUpdateAll(statisLst);
 		
-		log.info("---------------定时器 开始统计做题错题统计信息-----------end ------------------");
-		return new Result(true, "操作成功,统计记录总条数:"+statisLst.size());
+		log.info("---------------瀹氭椂鍣� 寮�濮嬬粺璁″仛棰橀敊棰樼粺璁′俊鎭�-----------end ------------------");
+		return new Result(true, "鎿嶄綔鎴愬姛,缁熻璁板綍鎬绘潯鏁帮細"+statisLst.size());
 	}
 
 	@Override
@@ -2958,7 +2958,7 @@
 		List<Object[]> lstData =this.findBySql(sql, new ArrayList<Object>());
 		
 		if(lstData.isEmpty()){
-			return new Result(false,"最近做题记录数据为空");
+			return new Result(false,"鏈�杩戝仛棰樿褰曟暟鎹负绌�");
 		}
 		
 		List<ExerciseRecentRecord> lstRecord = new ArrayList<ExerciseRecentRecord>(lstData.size());
@@ -2983,7 +2983,7 @@
 		
 		this.saveOrUpdateAll(lstRecord);
 		
-		return new Result(true,"此次插入ExerciseRecentRecord条数:"+lstRecord.size());
+		return new Result(true,"姝ゆ鎻掑叆ExerciseRecentRecord鏉℃暟锛�"+lstRecord.size());
 	}
 
 	@SuppressWarnings({ "unchecked" })
@@ -3003,7 +3003,7 @@
 		List<Object[]> lstData =this.findBySql(sql, new ArrayList<Object>());
 		
 		if(lstData.isEmpty()){
-			return new Result(false,"错题数据为空,本次没有需要更新的错题数据");
+			return new Result(false,"閿欓鏁版嵁涓虹┖,鏈娌℃湁闇�瑕佹洿鏂扮殑閿欓鏁版嵁");
 		}
 		
 		
@@ -3056,7 +3056,7 @@
 		
 		this.saveOrUpdateAll(lstRecord);
 		
-		return new Result(true, "插入ExerciseFaultRecord条数:"+lstRecord.size());
+		return new Result(true, "鎻掑叆ExerciseFaultRecord鏉℃暟锛�"+lstRecord.size());
 	}
 
 	@SuppressWarnings("unchecked")
@@ -3077,7 +3077,7 @@
 				List<Object[]> lstData =this.findBySql(sql, new ArrayList<Object>());
 				
 				if(lstData.isEmpty()){
-					return new Result(false,"收藏数据为空,本次没有需要更新的收藏数据");
+					return new Result(false,"鏀惰棌鏁版嵁涓虹┖,鏈娌℃湁闇�瑕佹洿鏂扮殑鏀惰棌鏁版嵁");
 				}
 				
 				String hql_existRecord = "from ExerciseFavoriteRecord where  favoriteBookId=? and exerciseGroupId=? ";
@@ -3130,7 +3130,7 @@
 				this.saveOrUpdateAll(lstRecord);
 				
 				
-				return new Result(true,"插入ExerciseFavoriteRecord条数:"+lstRecord.size());
+				return new Result(true,"鎻掑叆ExerciseFavoriteRecord鏉℃暟锛�"+lstRecord.size());
 	}
 
 	@Override
@@ -3143,8 +3143,8 @@
 		
 		List<Object[]> lstData2 =this.findwithRawResult(sql2, new ArrayList<Object>());
 		
-		if(lstData2.isEmpty()){//抛异常回滚
-			return new Result(false,"错题数据为空2222");
+		if(lstData2.isEmpty()){//鎶涘紓甯稿洖婊�
+			return new Result(false,"閿欓鏁版嵁涓虹┖2222");
 		}
 		
 		String hql_existRecord = "from ExerciseFaultRecord where  resumeBookId=? and exerciseGroupId=? ";
@@ -3184,7 +3184,7 @@
 		
 		this.saveOrUpdateAll(lstFaults);
 		
-		return new Result(true, "更新ExerciseFault条数:"+lstFaults.size());
+		return new Result(true, "鏇存柊ExerciseFault鏉℃暟锛�"+lstFaults.size());
 	}
 
 	@Override
@@ -3197,8 +3197,8 @@
 		
 		List<Object[]> lstData2 =this.findwithRawResult(sql2, new ArrayList<Object>());
 		
-		if(lstData2.isEmpty()){//抛异常回滚
-			return new Result(false,"收藏数据为空2222");
+		if(lstData2.isEmpty()){//鎶涘紓甯稿洖婊�
+			return new Result(false,"鏀惰棌鏁版嵁涓虹┖2222");
 		}
 		
 		String hql_existRecord = "from ExerciseFavoriteRecord where  favoriteBookId=? and exerciseGroupId=? ";
@@ -3239,7 +3239,7 @@
 		
 		this.saveOrUpdateAll(lstFavors);
 		
-		return new Result(true,"|更新ExerciseFavorite条数:"+lstFavors.size());
+		return new Result(true,"|鏇存柊ExerciseFavorite鏉℃暟锛�"+lstFavors.size());
 	}
 
 	@Override

--
Gitblit v1.8.0