From c80baef3aebcb2fa5dc75752041952f933ff6f39 Mon Sep 17 00:00:00 2001
From: EricsHu <hrr145632>
Date: 星期二, 28 三月 2023 13:03:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/qxueyou/scc/exercise/action/ExerciseController.java |  768 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 384 insertions(+), 384 deletions(-)

diff --git a/src/main/java/com/qxueyou/scc/exercise/action/ExerciseController.java b/src/main/java/com/qxueyou/scc/exercise/action/ExerciseController.java
index 3170c63..dd41866 100644
--- a/src/main/java/com/qxueyou/scc/exercise/action/ExerciseController.java
+++ b/src/main/java/com/qxueyou/scc/exercise/action/ExerciseController.java
@@ -70,33 +70,33 @@
 import com.qxueyou.scc.user.model.ExportUserScore;
 
 /**
- * 练习题目控制
+ * 缁冧範棰樼洰鎺у埗
  * @author zhiyong
  *
  */
 @Controller
 @RequestMapping(value = "/exercise/Exercise")
 public class ExerciseController {
-	/** 日志  */
+	/** 鏃ュ織  */
 	private static final Logger log = LogManager.getLogger("ExerciseController");
 	
 	/** commonDAO  */
 	@Autowired
 	private CommonDAO commonDAO;
 	
-	/** 练习 service */
+	/** 缁冧範 service */
 	@Autowired
 	private IExerciseService exerciseService;
 	
-	/** 练习导入 service */
+	/** 缁冧範瀵煎叆 service */
 	@Autowired
 	private IExercisePyService exercisePyService;
 	
-	/** 练习V2.0版本接口service */
+	/** 缁冧範V2.0鐗堟湰鎺ュ彛service */
 	@Autowired
 	private IExerciseVerService exerciseVerService;
 
-	/** 练习V2.0版本接口service */
+	/** 缁冧範V2.0鐗堟湰鎺ュ彛service */
 //	@Autowired
 //	IConfigService cfg;
 	
@@ -104,52 +104,52 @@
 	@Autowired
 	IOssService ossService;
 	
-	/** 消息发送 service */
+	/** 娑堟伅鍙戦�� service */
 //	@Autowired
 //	IMsgVenderService  easemobService;
 	
-	/** 组id */
+	/** 缁刬d */
 	private static final String GROUP_ID = "groupId";
 	
-	/** 做题记录id */
+	/** 鍋氶璁板綍id */
 	private static final String EXERCISE_RECORD_ID = "exerciseRecordId";
 	
-	/** ---------------------------APP V2.0接口 start----------------------*/
+	/** ---------------------------APP V2.0鎺ュ彛 start----------------------*/
 	/**
-	 * APP2.0: 获取家庭作业list
+	 * APP2.0: 鑾峰彇瀹跺涵浣滀笟list
 	 * URL:    /exercise/Exercise/homeWorkListNew
 	 * 
 	 * 
-	 *请求参数={
-			subjectId:课程id,//可选,用于高校版
-			page:当前页,//必传,大于0
-			limit:每页限制条数,//必传,大于0
+	 *璇锋眰鍙傛暟={
+			subjectId:璇剧▼id锛�//鍙�夛紝鐢ㄤ簬楂樻牎鐗�
+			page:褰撳墠椤�,//蹇呬紶,澶т簬0
+			limit:姣忛〉闄愬埗鏉℃暟,//蹇呬紶,澶т簬0
 		}
-		 返回参数=[
+		 杩斿洖鍙傛暟=[
 		    {
-		        GROUP_ID:"组id",
-		        "classId":班级id,
-		        "courseId":科目id,
-		        "orgId":机构id,
-		        "subjectId":课程id,
-		        "name":"组名",
-		        "type":组类型 ,
-		        "updateTime":更新时间,
-		        "answerUpdateTime":本套题答题更新时间,
-		        "allCount":题目总数,
-		        "exerciseTime":"考试时间",
-		        EXERCISE_RECORD_ID:"记录id",
-		        "doCount": 做题个数,
-		        "correctCount": 正确个数,
-		        "submitNumber":已提交人数(家庭作业),
-		        "currTitleNumber":当前做题序号,
-		        "status":做题状态(0:未提交 1:已提交),
-		        "completionRate": 完成率, 
-		        "accuracy": 正确率, 
-		        "score": 分数,
-		        "extendAllCount":错题本、收藏本总数
+		        GROUP_ID:"缁刬d",
+		        "classId":鐝骇id,
+		        "courseId":绉戠洰id,
+		        "orgId":鏈烘瀯id,
+		        "subjectId":璇剧▼id,
+		        "name":"缁勫悕",
+		        "type":缁勭被鍨� ,
+		        "updateTime":鏇存柊鏃堕棿,
+		        "answerUpdateTime":鏈棰樼瓟棰樻洿鏂版椂闂�,
+		        "allCount":棰樼洰鎬绘暟,
+		        "exerciseTime":"鑰冭瘯鏃堕棿",
+		        EXERCISE_RECORD_ID:"璁板綍id",
+		        "doCount": 鍋氶涓暟,
+		        "correctCount": 姝g‘涓暟,
+		        "submitNumber":宸叉彁浜や汉鏁�(瀹跺涵浣滀笟),
+		        "currTitleNumber":褰撳墠鍋氶搴忓彿,
+		        "status":鍋氶鐘舵��(0锛氭湭鎻愪氦 1锛氬凡鎻愪氦),
+		        "completionRate": 瀹屾垚鐜�, 
+		        "accuracy": 姝g‘鐜�, 
+		        "score": 鍒嗘暟,
+		        "extendAllCount":閿欓鏈�佹敹钘忔湰鎬绘暟
 		    },
-		    ...循环多个
+		    ...寰幆澶氫釜
 		]
 	 * 
 	 * @return
@@ -159,9 +159,9 @@
 			@RequestParam(value="subjectId", required = false) String subjectId,
 			@RequestParam(value="page") int page,
 			@RequestParam(value="limit") int limit,
-			@RequestParam(value="selected", required = false) Integer selected)  {// 0:全部  1:未开始 2:做题中 3:已提交
+			@RequestParam(value="selected", required = false) Integer selected)  {// 0:鍏ㄩ儴  1锛氭湭寮�濮� 2锛氬仛棰樹腑 3锛氬凡鎻愪氦
 
-		// 获取group data
+		// 鑾峰彇group data
 		List<ExerGroupResponseData> lstResult = getExericseListData(ExerciseGroup.TYPE_HOMEWORK, 
 				null, page, limit, selected, null);
 		
@@ -170,7 +170,7 @@
 	
 	
 	/**
-	 * APP2.0: 获取章节练习list
+	 * APP2.0: 鑾峰彇绔犺妭缁冧範list
 	 * URL:    /exercise/Exercise/chapterListNew
 	 * 
 	 * @return
@@ -182,7 +182,7 @@
 			@RequestParam(value="limit") int limit,
 			@RequestParam(value="selected", required = false) Integer selected, String chapterId)  {
 		
-		// 获取group data
+		// 鑾峰彇group data
 		List<ExerGroupResponseData> lstResult = getExericseListData(ExerciseGroup.TYPE_CHAPTER_ITEM, 
 				subjectId, page, limit, selected, chapterId);
 		
@@ -190,7 +190,7 @@
 	}
 	
 	/**
-	 * APP2.0: 获取模拟考试list
+	 * APP2.0: 鑾峰彇妯℃嫙鑰冭瘯list
 	 * URL:    /exercise/Exercise/examsListNew
 	 * 
 	 * @return
@@ -202,7 +202,7 @@
 			@RequestParam(value="limit") int limit,
 			@RequestParam(value="selected", required = false) Integer selected)  {
 		
-		// 获取group data
+		// 鑾峰彇group data
 		List<ExerGroupResponseData> lstResult = getExericseListData(ExerciseGroup.TYPE_MOCK_EXAM, 
 				null, page, limit, selected, null);
 		
@@ -210,7 +210,7 @@
 	}
 	
 	/**
-	 * APP2.0: 获取专题练习list
+	 * APP2.0: 鑾峰彇涓撻缁冧範list
 	 * URL:    /exercise/Exercise/topicListNew
 	 * 
 	 * @return
@@ -222,7 +222,7 @@
 			@RequestParam(value="limit") int limit,
 			@RequestParam(value="selected", required = false) Integer selected)  {
 		
-		// 获取group data
+		// 鑾峰彇group data
 		List<ExerGroupResponseData> lstResult = getExericseListData(ExerciseGroup.TYPE_EXERCISE_TOPIC, 
 				null, page, limit, selected, null);
 		
@@ -230,7 +230,7 @@
 	}
 	
 	/**
-	 * APP2.0: 获取专题练习list
+	 * APP2.0: 鑾峰彇涓撻缁冧範list
 	 * URL:    /exercise/Exercise/freeListNew
 	 * 
 	 * @return
@@ -242,7 +242,7 @@
 			@RequestParam(value="limit") int limit,
 			@RequestParam(value="selected", required = false) Integer selected)  {
 		
-		// 获取group data
+		// 鑾峰彇group data
 		List<ExerGroupResponseData> lstResult = getExericseListData(ExerciseGroup.TYPE_EXERCISE_FREE, 
 				null, page, limit, selected, null);
 		
@@ -250,12 +250,12 @@
 	}
 	
 	/**
-	 * 获取练习列表数据
+	 * 鑾峰彇缁冧範鍒楄〃鏁版嵁
 	 * @param exerType
 	 * @param subjectId
 	 * @param page
 	 * @param limit
-	 * @param selected // 0:全部  1:未开始 2:做题中 3:已提交
+	 * @param selected // 0:鍏ㄩ儴  1锛氭湭寮�濮� 2锛氬仛棰樹腑 3锛氬凡鎻愪氦
 	 * @return
 	 */
 	private List<ExerGroupResponseData> getExericseListData(short exerType, 
@@ -264,24 +264,24 @@
 		int pageSize = limit;
 		Integer iSelected = selected;
 		
-		// 1.分页信息
+		// 1.鍒嗛〉淇℃伅
 		if(pageNum < 1){
 			pageNum = 1;
 		}
 		if(pageSize < 1){
 			pageSize = 1;
 		}
-		if(iSelected == null){//为空设置为 全部
+		if(iSelected == null){//涓虹┖璁剧疆涓� 鍏ㄩ儴
 			iSelected = 0;
 		}
 		Pager pager = new Pager();
 		pager.setPageNum(pageNum);
 		pager.setPageSize(limit);
 		
-		// 2.得到列表数据
+		// 2.寰楀埌鍒楄〃鏁版嵁
 		List<ExerGroupResponseData> lstResult = exerciseVerService.queryExericseListData(exerType,subjectId,pager,iSelected, chapterId);
 		
-		if(null == lstResult){// 结果转换成 []
+		if(null == lstResult){// 缁撴灉杞崲鎴� []
 			lstResult = new ArrayList<ExerGroupResponseData>();
 		}
 		
@@ -289,40 +289,40 @@
 	}
 
 	/**
-	 * APP2.0: 查询做题记录
+	 * APP2.0: 鏌ヨ鍋氶璁板綍
 	 * URL:    /exercise/Exercise/exerRecord
-	 *  请求参数={
-			exerType:练习类型,//必传
-			subjectId:课程id,//可选,用于高校版
-			page:当前页,//必传,大于0
-			limit:每页限制条数,//必传,大于0
+	 *  璇锋眰鍙傛暟={
+			exerType:缁冧範绫诲瀷,//蹇呬紶
+			subjectId:璇剧▼id锛�//鍙�夛紝鐢ㄤ簬楂樻牎鐗�
+			page:褰撳墠椤�,//蹇呬紶,澶т簬0
+			limit:姣忛〉闄愬埗鏉℃暟,//蹇呬紶,澶т簬0
 		}
 		
-		返回参数=[
+		杩斿洖鍙傛暟=[
 			    {
-			        GROUP_ID:"组id",
-			        "classId":班级id,
-			        "courseId":科目id,
-			        "orgId":机构id,
-			        "subjectId":课程id,
-			        "name":"组名",
-			        "type":组类型 ,
-			        "updateTime":更新时间,
-			        "answerUpdateTime":本套题答题更新时间,
-			        "allCount":题目总数,
-			        "exerciseTime":"考试时间",
-			        EXERCISE_RECORD_ID:"记录id",
-			        "doCount": 做题个数,
-			        "correctCount": 正确个数,
-			        "submitNumber":已提交人数(家庭作业),
-			        "currTitleNumber":当前做题序号,
-			        "status":做题状态(0:未提交 1:已提交),
-			        "completionRate": 完成率, 
-			        "accuracy": 正确率, 
-			        "score": 分数,
-			        "extendAllCount":错题本、收藏本总数
+			        GROUP_ID:"缁刬d",
+			        "classId":鐝骇id,
+			        "courseId":绉戠洰id,
+			        "orgId":鏈烘瀯id,
+			        "subjectId":璇剧▼id,
+			        "name":"缁勫悕",
+			        "type":缁勭被鍨� ,
+			        "updateTime":鏇存柊鏃堕棿,
+			        "answerUpdateTime":鏈棰樼瓟棰樻洿鏂版椂闂�,
+			        "allCount":棰樼洰鎬绘暟,
+			        "exerciseTime":"鑰冭瘯鏃堕棿",
+			        EXERCISE_RECORD_ID:"璁板綍id",
+			        "doCount": 鍋氶涓暟,
+			        "correctCount": 姝g‘涓暟,
+			        "submitNumber":宸叉彁浜や汉鏁�(瀹跺涵浣滀笟),
+			        "currTitleNumber":褰撳墠鍋氶搴忓彿,
+			        "status":鍋氶鐘舵��(0锛氭湭鎻愪氦 1锛氬凡鎻愪氦),
+			        "completionRate": 瀹屾垚鐜�, 
+			        "accuracy": 姝g‘鐜�, 
+			        "score": 鍒嗘暟,
+			        "extendAllCount":閿欓鏈�佹敹钘忔湰鎬绘暟
 			    },
-			    ...循环多个
+			    ...寰幆澶氫釜
 			]
 	 * @param page
 	 * @param start
@@ -339,7 +339,7 @@
 		int pageNum = page;
 		int pageSize = limit;
 		
-		// 1.分页信息
+		// 1.鍒嗛〉淇℃伅
 		if(pageNum < 1){
 			pageNum = 1;
 		}
@@ -353,7 +353,7 @@
 		
 		
 		StringBuffer hql = new StringBuffer(512);
-		// 2.查询结果
+		// 2.鏌ヨ缁撴灉
 		hql.append("select g,"
 					+ "  r.recordId,r.updateTime,r.doCount,r.titleMaxNumber,r.status,"
 					+ "	 r.correctCount,r.completionRate,r.score,r.accuracy,e.repeatFlag,e.classAccuracy, "
@@ -379,10 +379,10 @@
 		
 		List<ExerGroupResponseData> lstResult = new ArrayList<ExerGroupResponseData>(lstRecord.size());
 		
-		// 3.重组字段
+		// 3.閲嶇粍瀛楁
 		for(Object[] obj:lstRecord){
 			
-			// 组装练习做题记录列表数据
+			// 缁勮缁冧範鍋氶璁板綍鍒楄〃鏁版嵁
 			lstResult.add(packagingExerciseRecordListData(exerType, obj));
 			
 		}
@@ -391,7 +391,7 @@
 	}
 
 	/**
-	 * 组装练习做题记录列表数据
+	 * 缁勮缁冧範鍋氶璁板綍鍒楄〃鏁版嵁
 	 * @param exerType
 	 * @param obj
 	 * @param group
@@ -403,7 +403,7 @@
 		ExerciseGroup group = (ExerciseGroup)obj[0];
 		ExerGroupResponseData result =  new ExerGroupResponseData();
 		
-		// 赋值字段值
+		// 璧嬪�煎瓧娈靛��
 		BeanUtils.copyProperties(group, result);
 		
 		result.setExerciseRecordId(String.valueOf(obj[1]));
@@ -416,26 +416,26 @@
 		result.setCurrTitleNumber(String.valueOf(obj[4]));
 		result.setStatus(String.valueOf(obj[5]));
 		
-		// 组装练习做题记录部分参数
+		// 缁勮缁冧範鍋氶璁板綍閮ㄥ垎鍙傛暟
 		packagingExerciseRecordListParam(obj, result);
 		
 		result.setExtendAllCount(group.getAllCount());
 		
 		if(obj[10] == null){
-			if(exerType == ExerciseGroup.TYPE_HOMEWORK){// 家庭作业
+			if(exerType == ExerciseGroup.TYPE_HOMEWORK){// 瀹跺涵浣滀笟
 				result.setRepeatFlag(false);
 			}else{
 				result.setRepeatFlag(true);
 			}
 		}else{
-			result.setRepeatFlag(!(boolean)obj[10]);// true 可以重做 false不能重做
+			result.setRepeatFlag(!(boolean)obj[10]);// true 鍙互閲嶅仛 false涓嶈兘閲嶅仛
 		}
 		
-		// 班级正确率
+		// 鐝骇姝g‘鐜�
 		result.setClassAccuracy(obj[11] == null ? "--" :obj[11]+"%");
 		
 		if(exerType == ExerciseGroup.TYPE_EXERCISE_FREE 
-				|| exerType == ExerciseGroup.TYPE_MOCK_EXAM ){// 自由练习 模拟考试
+				|| exerType == ExerciseGroup.TYPE_MOCK_EXAM ){// 鑷敱缁冧範 妯℃嫙鑰冭瘯
 			result.setExerciseTime(String.valueOf(obj[12]));
 			result.setExerciseStrategy(String.valueOf(obj[13]));
 			result.setExerciseSource(String.valueOf(obj[14]));
@@ -445,7 +445,7 @@
 	}
 
 	/**
-	 * 组装练习做题记录部分参数 拆分方法
+	 * 缁勮缁冧範鍋氶璁板綍閮ㄥ垎鍙傛暟 鎷嗗垎鏂规硶
 	 * @param obj
 	 * @param result
 	 */
@@ -474,88 +474,88 @@
 	}
 	
 	/**
-	 * APP2.0: 获取家庭作业练习题目数据
+	 * APP2.0: 鑾峰彇瀹跺涵浣滀笟缁冧範棰樼洰鏁版嵁
 	 * URL:    /exercise/Exercise/homeworkExercise
 	 * 
-	 * 请求参数={
-			groupId:组id,//必传
-			exerciseRecordId:当前页,//必传,没有传""
-			getExercise:是否更新题目,//必传,
-			boolean值,没有传false
-			getAnswer:是否更新答案,//必传,
-			boolean值,没有传false
+	 * 璇锋眰鍙傛暟={
+			groupId:缁刬d锛�//蹇呬紶
+			exerciseRecordId:褰撳墠椤�,//蹇呬紶,娌℃湁浼�""
+			getExercise:鏄惁鏇存柊棰樼洰,//蹇呬紶,
+			boolean鍊硷紝娌℃湁浼爁alse
+			getAnswer:鏄惁鏇存柊绛旀,//蹇呬紶,
+			boolean鍊硷紝娌℃湁浼爁alse
 		}
 	      
-		返回参数={
-	    "items":[// 题目集合
+		杩斿洖鍙傛暟={
+	    "items":[// 棰樼洰闆嗗悎
 	        {
-	            "exerciseId":练习id,
+	            "exerciseId":缁冧範id,
 	            "chapterId":null,
 	            "lessonId":null,
-	            "title":标题,
-	            "type":题目类型,
-	            "answer":正确答案,
+	            "title":鏍囬,
+	            "type":棰樼洰绫诲瀷,
+	            "answer":姝g‘绛旀,
 	            "options":[
 	                {
-	                    "optionId":选项id,
+	                    "optionId":閫夐」id,
 	                    "checked":true,
-	                    "content":内容,
-	                    "optionOrder":题目序号,
-	                    "exerciseItemId":"练习id",
+	                    "content":鍐呭,
+	                    "optionOrder":棰樼洰搴忓彿,
+	                    "exerciseItemId":"缁冧範id",
 	                    "imgs":[
 	                        {
-	                            "imgId":"图片id",
+	                            "imgId":"鍥剧墖id",
 	                            "exerciseObjectId":null,
-	                            "imgPath":图片路径,
-	                            "imgOrder":排序,
-	                            "objectType":图片类型 1:题目 2:选项
+	                            "imgPath":鍥剧墖璺緞,
+	                            "imgOrder":鎺掑簭,
+	                            "objectType":鍥剧墖绫诲瀷 1锛氶鐩� 2锛氶�夐」
 	                        },
-	                        ... 循环多个
+	                        ... 寰幆澶氫釜
 	                    ]
 	                },
-	                ... 循环多个
+	                ... 寰幆澶氫釜
 	            ],
 	            "scores":null,
 	            "itemNo":null,
 	            "analisisResult":{
-	                "allAccuracy":全站统计 正确率,
-	                "analysis":"解析",
-	                "submitAllNumber":全站 提交总数,
-	                "usualFaultAnswers":易错题,
+	                "allAccuracy":鍏ㄧ珯缁熻 姝g‘鐜�,
+	                "analysis":"瑙f瀽",
+	                "submitAllNumber":鍏ㄧ珯 鎻愪氦鎬绘暟,
+	                "usualFaultAnswers":鏄撻敊棰�,
 	                "exerciseAnalisisUId":null,
-	                "accuracy":个人统计 正确率,
-	                "submitNumber":个人统计  提交总数,
-	                "submitErrorNumber":个人统计  提交错误总数,
+	                "accuracy":涓汉缁熻 姝g‘鐜�,
+	                "submitNumber":涓汉缁熻  鎻愪氦鎬绘暟,
+	                "submitErrorNumber":涓汉缁熻  鎻愪氦閿欒鎬绘暟,
 	            },
 	            "imgs":[
 	                {
-	                   "imgId":"图片id",
+	                   "imgId":"鍥剧墖id",
 	                    "exerciseObjectId":null,
-	                    "imgPath":图片路径,
-	                    "imgOrder":排序,
-	                    "objectType":图片类型 1:题目 2:选项
+	                    "imgPath":鍥剧墖璺緞,
+	                    "imgOrder":鎺掑簭,
+	                    "objectType":鍥剧墖绫诲瀷 1锛氶鐩� 2锛氶�夐」
 	                },
-	                ... 循环多个
+	                ... 寰幆澶氫釜
 	            ],
 	            "commentFlag": null,
 	        }
 	    ],
-	    "answers":[// 个人答案集合
+	    "answers":[// 涓汉绛旀闆嗗悎
 	        {
-	            "answerUId":"主键id",
-	            "answer":选择答案  如:多选为(A,B,C),
+	            "answerUId":"涓婚敭id",
+	            "answer":閫夋嫨绛旀  濡傦細澶氶�変负(A,B,C),
 	            "correct":0,
-	            "exerciseItemId":练习id,
-	            EXERCISE_RECORD_ID:记录id,
-	            "userId":用户id
+	            "exerciseItemId":缁冧範id,
+	            EXERCISE_RECORD_ID:璁板綍id,
+	            "userId":鐢ㄦ埛id
 	        },
-	        ... 循环多个
+	        ... 寰幆澶氫釜
 	    ]
 	}
-	 * @param groupId 组id
-	 * @param exerciseRecordId 练习记录id
-	 * @param getExercise 是否获取练习题
-	 * @param getAnswer 是否获取答案
+	 * @param groupId 缁刬d
+	 * @param exerciseRecordId 缁冧範璁板綍id
+	 * @param getExercise 鏄惁鑾峰彇缁冧範棰�
+	 * @param getAnswer 鏄惁鑾峰彇绛旀
 	 * @return
 	 */
 	@RequestMapping(value = "homeworkExercise", method = RequestMethod.GET)
@@ -565,7 +565,7 @@
 			@RequestParam(value = "getExercise") boolean getExercise,
 			@RequestParam(value = "getAnswer") boolean getAnswer)  {
 		
-		// 获取结果
+		// 鑾峰彇缁撴灉
 		ExerItemResponseData result = exerciseVerService.queryExerItemResponseData(groupId,
 				exerciseRecordId, getExercise, getAnswer, ExerciseGroup.TYPE_HOMEWORK);
 		
@@ -573,12 +573,12 @@
 	}
 	
 	/**
-	 * APP2.0: 获取模拟考试练习题目数据
+	 * APP2.0: 鑾峰彇妯℃嫙鑰冭瘯缁冧範棰樼洰鏁版嵁
 	 * URL:    /exercise/Exercise/examExercise
-	 * @param groupId 组id
-	 * @param exerciseRecordId 练习记录id
-	 * @param getExercise 是否获取练习题
-	 * @param getAnswer 是否获取答案
+	 * @param groupId 缁刬d
+	 * @param exerciseRecordId 缁冧範璁板綍id
+	 * @param getExercise 鏄惁鑾峰彇缁冧範棰�
+	 * @param getAnswer 鏄惁鑾峰彇绛旀
 	 * @return
 	 */
 	@RequestMapping(value = "examExercise", method = RequestMethod.GET)
@@ -588,7 +588,7 @@
 			@RequestParam(value = "getExercise") boolean getExercise,
 			@RequestParam(value = "getAnswer") boolean getAnswer)  {
 		
-		// 获取结果
+		// 鑾峰彇缁撴灉
 		ExerItemResponseData result = exerciseVerService.queryExerItemResponseData(groupId,
 				exerciseRecordId, getExercise, getAnswer, ExerciseGroup.TYPE_MOCK_EXAM);
 		
@@ -597,12 +597,12 @@
 	
 	
 	/**
-	 * APP2.0: 获取章节练习题目数据
+	 * APP2.0: 鑾峰彇绔犺妭缁冧範棰樼洰鏁版嵁
 	 * URL:    /exercise/Exercise/chapterExercise
-	 * @param groupId 组id
-	 * @param exerciseRecordId 练习记录id
-	 * @param getExercise 是否获取练习题
-	 * @param getAnswer 是否获取答案
+	 * @param groupId 缁刬d
+	 * @param exerciseRecordId 缁冧範璁板綍id
+	 * @param getExercise 鏄惁鑾峰彇缁冧範棰�
+	 * @param getAnswer 鏄惁鑾峰彇绛旀
 	 * @return
 	 */
 	@RequestMapping(value = "chapterExercise", method = RequestMethod.GET)
@@ -612,7 +612,7 @@
 			@RequestParam(value = "getExercise") boolean getExercise,
 			@RequestParam(value = "getAnswer") boolean getAnswer)  {
 		
-		// 获取结果
+		// 鑾峰彇缁撴灉
 		ExerItemResponseData result = exerciseVerService.queryExerItemResponseData(groupId,
 				exerciseRecordId, getExercise, getAnswer, ExerciseGroup.TYPE_CHAPTER_ITEM);
 		
@@ -620,12 +620,12 @@
 	}
 	
 	/**
-	 * APP2.0: 获取专题练习题目数据
+	 * APP2.0: 鑾峰彇涓撻缁冧範棰樼洰鏁版嵁
 	 * URL:    /exercise/Exercise/topicExercise
-	 * @param groupId 组id
-	 * @param exerciseRecordId 练习记录id
-	 * @param getExercise 是否获取练习题
-	 * @param getAnswer 是否获取答案
+	 * @param groupId 缁刬d
+	 * @param exerciseRecordId 缁冧範璁板綍id
+	 * @param getExercise 鏄惁鑾峰彇缁冧範棰�
+	 * @param getAnswer 鏄惁鑾峰彇绛旀
 	 * @return
 	 */
 	@RequestMapping(value = "topicExercise", method = RequestMethod.GET)
@@ -635,7 +635,7 @@
 			@RequestParam(value = "getExercise") boolean getExercise,
 			@RequestParam(value = "getAnswer") boolean getAnswer)  {
 		
-		// 获取结果
+		// 鑾峰彇缁撴灉
 		ExerItemResponseData result = exerciseVerService.queryExerItemResponseData(groupId,
 				exerciseRecordId, getExercise, getAnswer, ExerciseGroup.TYPE_EXERCISE_TOPIC);
 		
@@ -644,12 +644,12 @@
 	
 	
 	/**
-	 * APP2.0: 获取专题练习题目数据
+	 * APP2.0: 鑾峰彇涓撻缁冧範棰樼洰鏁版嵁
 	 * URL:    /exercise/Exercise/freeExercise
-	 * @param groupId 组id
-	 * @param exerciseRecordId 练习记录id
-	 * @param getExercise 是否获取练习题
-	 * @param getAnswer 是否获取答案
+	 * @param groupId 缁刬d
+	 * @param exerciseRecordId 缁冧範璁板綍id
+	 * @param getExercise 鏄惁鑾峰彇缁冧範棰�
+	 * @param getAnswer 鏄惁鑾峰彇绛旀
 	 * @return
 	 */
 	@RequestMapping(value = "freeExercise", method = RequestMethod.GET)
@@ -659,7 +659,7 @@
 			@RequestParam(value = "getExercise") boolean getExercise,
 			@RequestParam(value = "getAnswer") boolean getAnswer)  {
 		
-		// 获取结果
+		// 鑾峰彇缁撴灉
 		ExerItemResponseData result = exerciseVerService.queryExerItemResponseData(groupId,
 				exerciseRecordId, getExercise, getAnswer, ExerciseGroup.TYPE_EXERCISE_FREE);
 		
@@ -668,15 +668,15 @@
 	}
 	
 	/**
-	 * APP2.0: 获取专题练习题目数据
+	 * APP2.0: 鑾峰彇涓撻缁冧範棰樼洰鏁版嵁
 	 * URL:    /exercise/Exercise/newFreeExercise
 	 * 
 	 * {
-	 * 	source: 练习来源(1:练习题库 2:考试题库  3:家庭作业)   多个以逗号分开
-		strategy:做题方式(1:未做题优先  2:错题优先)
-		mode:做题模式(1:练习模式 2:考试模式)
-		count:数量(30 50 100 200)
-		exerciseTime:练习时间
+	 * 	source: 缁冧範鏉ユ簮(1:缁冧範棰樺簱 2锛氳�冭瘯棰樺簱  3锛氬搴綔涓�)   澶氫釜浠ラ�楀彿鍒嗗紑
+		strategy:鍋氶鏂瑰紡锛�1锛氭湭鍋氶浼樺厛  2锛氶敊棰樹紭鍏堬級
+		mode:鍋氶妯″紡(1:缁冧範妯″紡 2锛氳�冭瘯妯″紡)
+		count:鏁伴噺锛�30 50 100 200锛�
+		exerciseTime:缁冧範鏃堕棿
 	 * }
 	 * 
 	 * @return
@@ -697,7 +697,7 @@
 			return null;
 		}
 		
-		// 根据条件获取自由练习
+		// 鏍规嵁鏉′欢鑾峰彇鑷敱缁冧範
 		ExerItemResponseData result = exerciseVerService.doGetFreeExercise(
 				null, source, strategy, mode, count, exerciseTime);
 		
@@ -706,41 +706,41 @@
 	
 	
 	/**
-	 * APP2.0: 提交练习答案
+	 * APP2.0: 鎻愪氦缁冧範绛旀
 	 * URL:    /exercise/Exercise/exerAnswers
 	 * 
-	 * 请求参数={
-	    "exerciseGroupId": 组id, 
-	    EXERCISE_RECORD_ID: 记录id, 
+	 * 璇锋眰鍙傛暟={
+	    "exerciseGroupId": 缁刬d, 
+	    EXERCISE_RECORD_ID: 璁板綍id, 
 	    "exerciseExtendId": null, 
-	    "currTitleNum": "当前题号", 
-	    "status": 状态,
-	    "type": 练习类型,// 整型
-	    "doCount": 练习类型,
-	    "correctCount": 正确个数, 
-	    "allCount":题目总数,
+	    "currTitleNum": "褰撳墠棰樺彿", 
+	    "status": 鐘舵��,
+	    "type": 缁冧範绫诲瀷,// 鏁村瀷
+	    "doCount": 缁冧範绫诲瀷,
+	    "correctCount": 姝g‘涓暟, 
+	    "allCount":棰樼洰鎬绘暟,
 	    "items": [
 	        {
-	            "exerciseId": "练习id", 
-	            "type": 练习类型,// 整数型
-	            "answer": "选择答案", 
-	            "correct": 是否正确(0:错误 1:正确 2:未知)
+	            "exerciseId": "缁冧範id", 
+	            "type": 缁冧範绫诲瀷,// 鏁存暟鍨�
+	            "answer": "閫夋嫨绛旀", 
+	            "correct": 鏄惁姝g‘(0:閿欒 1锛氭纭� 2:鏈煡)
 	        }, 
 	        {
-	            "exerciseId": "练习id", 
-	            "type": 练习类型, 
-	            "answer": "选择答案", 
-	            "correct": 是否正确(0:错误 1:正确 2:未知)
+	            "exerciseId": "缁冧範id", 
+	            "type": 缁冧範绫诲瀷, 
+	            "answer": "閫夋嫨绛旀", 
+	            "correct": 鏄惁姝g‘(0:閿欒 1锛氭纭� 2:鏈煡)
 	        }
 	    ]
 		}
 		
-		返回参数={
-			"success":true,//true:成功 false:失败
-			"attrs":{EXERCISE_RECORD_ID:练习记录id,
-					"updateTime":修改时间
+		杩斿洖鍙傛暟={
+			"success":true,//true:鎴愬姛 false:澶辫触
+			"attrs":{EXERCISE_RECORD_ID:缁冧範璁板綍id,
+					"updateTime":淇敼鏃堕棿
 			 },
-			"msg":"提交成功",//结果信息
+			"msg":"鎻愪氦鎴愬姛",//缁撴灉淇℃伅
 			}
 
 	 * 
@@ -751,7 +751,7 @@
 	public @ResponseBody Object doSubmitExerAnswer(
 			@RequestParam(value = "answers")  String answers)  {
 		
-		// 用户本次做题提交的数据
+		// 鐢ㄦ埛鏈鍋氶鎻愪氦鐨勬暟鎹�
 		List<ExerciseItemAnswerData> lstAnswers = null;
 		
 		Result result = new Result(false);
@@ -759,12 +759,12 @@
 		try {
 			ObjectMapper mapper = new ObjectMapper();
 			
-			// 装换json到对象
+			// 瑁呮崲json鍒板璞�
 			ExerciseSubmitAnswerData answerData = mapper.readValue(answers, ExerciseSubmitAnswerData.class);
 			
 			lstAnswers = answerData.getItems();
 			
-			// 记录id
+			// 璁板綍id
 			String initExerciseRecordId = answerData.getExerciseRecordId();
 						
 			if(lstAnswers.isEmpty() 
@@ -775,38 +775,38 @@
 						initExerciseRecordId, ExerciseDataSubmitLog.TYPE_SUBMIT_ANSWER,
 						ExerciseDataSubmitLog.STATUS_FAILED, "/exercise/Exercise/exerAnswers");
 				
-				return new Result(false,"提交数据异常");
+				return new Result(false,"鎻愪氦鏁版嵁寮傚父");
 			}
 				
-			// 1.---------记录提交的数据日志
-			// 记录提交的数据日志
+			// 1.---------璁板綍鎻愪氦鐨勬暟鎹棩蹇�
+			// 璁板綍鎻愪氦鐨勬暟鎹棩蹇�
 			String exerciseDataLogId = exerciseVerService.doSaveExerciseDataSubmitLog(answers,
 					initExerciseRecordId, ExerciseDataSubmitLog.TYPE_SUBMIT_ANSWER, 
 					ExerciseDataSubmitLog.STATUS_SUCCESS,"/exercise/Exercise/exerAnswers");
 			
-			// 2.-------- 提交答案
-			// 操作练习数据
+			// 2.-------- 鎻愪氦绛旀
+			// 鎿嶄綔缁冧範鏁版嵁
 			Map<String,Object> resultMap = exerciseVerService.doOperExerciseAnswerData(answerData);
 			
-			result = new Result(true, "答案提交成功");
+			result = new Result(true, "绛旀鎻愪氦鎴愬姛");
 			result.setData(resultMap);
 			
-			// 3.-------- 班级统计数据
+			// 3.-------- 鐝骇缁熻鏁版嵁
 			if(resultMap.get("exerciseGroupId") != null){
 				
 				String exerciseGroupId = String.valueOf(resultMap.get("exerciseGroupId"));
 				
-				// 2.发送班级排名请求
+				// 2.鍙戦�佺彮绾ф帓鍚嶈姹�
 				exerciseVerService.sendUpdateClassRankMsg(exerciseGroupId);
 				
-				// 3.发送 题目的全站统计 、个人统计、班级正确率请求消息
+				// 3.鍙戦�� 棰樼洰鐨勫叏绔欑粺璁� 銆佷釜浜虹粺璁°�佺彮绾ф纭巼璇锋眰娑堟伅
 				exerciseVerService.sendUpdateExerItemStatisticsMsg(exerciseGroupId, answerData);
 				//exerciseVerService.doStatisUserExerciseItemData(ClientUtils.getUserId(), ClientUtils.getUserName(), answerData);
 			}
 			
-			// 4.---------更新本次提交的数据日志exerciseRecordId
+			// 4.---------鏇存柊鏈鎻愪氦鐨勬暟鎹棩蹇梕xerciseRecordId
 			if(StringUtils.isBlank(initExerciseRecordId) 
-					&& resultMap.get(EXERCISE_RECORD_ID) != null){// 为空 说明第一次提交  更新日志记录id
+					&& resultMap.get(EXERCISE_RECORD_ID) != null){// 涓虹┖ 璇存槑绗竴娆℃彁浜�  鏇存柊鏃ュ織璁板綍id
 				
 				exerciseRecordId = String.valueOf(resultMap.get(EXERCISE_RECORD_ID));
 				
@@ -815,8 +815,8 @@
 			
 		} catch (Exception e) {
 			
-			result = new Result(false, "提交练习答案请求异常");
-			log.error("提交练习答案请求异常===",e);
+			result = new Result(false, "鎻愪氦缁冧範绛旀璇锋眰寮傚父");
+			log.error("鎻愪氦缁冧範绛旀璇锋眰寮傚父===",e);
 			
 			exerciseVerService.doSaveExerciseDataSubmitLog(answers,
 					exerciseRecordId, ExerciseDataSubmitLog.TYPE_SUBMIT_ANSWER, 
@@ -828,44 +828,44 @@
 	
 	
 	/**
-	 * APP2.0: 提交练习答案
+	 * APP2.0: 鎻愪氦缁冧範绛旀
 	 * URL:    /exercise/Exercise/exerAnswers
 	 * 
-	 * 请求参数=[{
-	    "exerciseGroupId": 组id, 
-	    EXERCISE_RECORD_ID: 记录id, 
+	 * 璇锋眰鍙傛暟=[{
+	    "exerciseGroupId": 缁刬d, 
+	    EXERCISE_RECORD_ID: 璁板綍id, 
 	    "exerciseExtendId": null, 
-	    "currTitleNum": "当前题号", 
-	    "status": 状态,
-	    "type": 练习类型,// 整型
-	    "doCount": 练习类型,
-	    "correctCount": 正确个数, 
-	    "allCount":题目总数,
+	    "currTitleNum": "褰撳墠棰樺彿", 
+	    "status": 鐘舵��,
+	    "type": 缁冧範绫诲瀷,// 鏁村瀷
+	    "doCount": 缁冧範绫诲瀷,
+	    "correctCount": 姝g‘涓暟, 
+	    "allCount":棰樼洰鎬绘暟,
 	    "items": [
 	        {
-	            "exerciseId": "练习id", 
-	            "type": 练习类型,// 整数型
-	            "answer": "选择答案", 
-	            "correct": 是否正确(0:错误 1:正确 2:未知)
+	            "exerciseId": "缁冧範id", 
+	            "type": 缁冧範绫诲瀷,// 鏁存暟鍨�
+	            "answer": "閫夋嫨绛旀", 
+	            "correct": 鏄惁姝g‘(0:閿欒 1锛氭纭� 2:鏈煡)
 	        }, 
 	        {
-	            "exerciseId": "练习id", 
-	            "type": 练习类型, 
-	            "answer": "选择答案", 
-	            "correct": 是否正确(0:错误 1:正确 2:未知)
+	            "exerciseId": "缁冧範id", 
+	            "type": 缁冧範绫诲瀷, 
+	            "answer": "閫夋嫨绛旀", 
+	            "correct": 鏄惁姝g‘(0:閿欒 1锛氭纭� 2:鏈煡)
 	        }
 	    ]
 		},
 		   ...
 		]
 		
-		返回参数={"success":true,//true:成功 false:失败
-			"attrs":[{EXERCISE_RECORD_ID:练习记录id,
-			exerciseGroupId:练习组id,
-			isNewRecord:是否为新增的record(true:是 false:否)
-			"updateTime":修改时间
+		杩斿洖鍙傛暟={"success":true,//true:鎴愬姛 false:澶辫触
+			"attrs":[{EXERCISE_RECORD_ID:缁冧範璁板綍id,
+			exerciseGroupId:缁冧範缁刬d锛�
+			isNewRecord锛氭槸鍚︿负鏂板鐨剅ecord(true:鏄� false:鍚�)
+			"updateTime":淇敼鏃堕棿
 			},...],
-			"msg":"提交成功",//结果信息
+			"msg":"鎻愪氦鎴愬姛",//缁撴灉淇℃伅
 			}
 
 	 * 
@@ -876,7 +876,7 @@
 	public @ResponseBody Object doSubmitMutiExerAnswer(
 			@RequestParam(value = "answers")  String answers)  {
 		
-		// 用户本次做题提交的数据
+		// 鐢ㄦ埛鏈鍋氶鎻愪氦鐨勬暟鎹�
 		List<ExerciseSubmitAnswerData> lstRecord = null;
 		List<ExerciseItemAnswerData> lstAnswers= null;
 		String exerciseRecordId = null;
@@ -890,7 +890,7 @@
 		try {
 			ObjectMapper mapper = new ObjectMapper();
 			
-			// 装换json到对象
+			// 瑁呮崲json鍒板璞�
 			ExerciseSubmitAnswerDataList answerDataList = mapper.readValue(answers, ExerciseSubmitAnswerDataList.class);
 			
 			lstRecord = answerDataList.getDatas();
@@ -903,17 +903,17 @@
 					continue;
 				}
 				
-				// 记录id
+				// 璁板綍id
 				String initExerciseRecordId = answerData.getExerciseRecordId();
 							
-				// 记录提交的数据日志
+				// 璁板綍鎻愪氦鐨勬暟鎹棩蹇�
 				String recordData = JSONObject.toJSONString(answerData);
 				
 				lstAnswers = answerData.getItems();
 						
 				if(lstAnswers.isEmpty() 
 						&& !ExerciseRecord.STATUS_SUBMIT.equals(answerData.getStatus())
-						&& answerData.getSubmitType() != 1){// 仅提交 或仅仅本地无网重做
+						&& answerData.getSubmitType() != 1){// 浠呮彁浜� 鎴栦粎浠呮湰鍦版棤缃戦噸鍋�
 					
 					exerciseVerService.doSaveExerciseDataSubmitLog(recordData,
 							initExerciseRecordId, ExerciseDataSubmitLog.TYPE_SUBMIT_ANSWER,
@@ -922,36 +922,36 @@
 					continue;
 				}
 				
-				// 1.---------记录提交的数据日志
+				// 1.---------璁板綍鎻愪氦鐨勬暟鎹棩蹇�
 				String exerciseDataLogId = exerciseVerService.doSaveExerciseDataSubmitLog(recordData,
 						initExerciseRecordId, ExerciseDataSubmitLog.TYPE_SUBMIT_ANSWER,
 						ExerciseDataSubmitLog.STATUS_SUCCESS,"/exercise/Exercise/exerMutiAnswers");
 				
-				// 2.-------- 提交答案
-				// 操作练习数据
+				// 2.-------- 鎻愪氦绛旀
+				// 鎿嶄綔缁冧範鏁版嵁
 				returnMap = exerciseVerService.doOperExerciseAnswerData(answerData);
-				if(StringUtils.isBlank(initExerciseRecordId)){// 表示recordId为新增
+				if(StringUtils.isBlank(initExerciseRecordId)){// 琛ㄧずrecordId涓烘柊澧�
 					returnMap.put("isNewRecord", true);
 				}else{
 					returnMap.put("isNewRecord", false);
 				}
 				
 				resultList.add(returnMap);
-				// 3.-------- 班级统计数据;
+				// 3.-------- 鐝骇缁熻鏁版嵁;
 				if(returnMap.get("exerciseGroupId") != null){
 					
 					String exerciseGroupId = String.valueOf(returnMap.get("exerciseGroupId"));
 					
-					// 2.发送班级排名请求
+					// 2.鍙戦�佺彮绾ф帓鍚嶈姹�
 					exerciseVerService.sendUpdateClassRankMsg(exerciseGroupId);
 					
-					// 3.发送 题目的全站统计  个人统计请求消息
+					// 3.鍙戦�� 棰樼洰鐨勫叏绔欑粺璁�  涓汉缁熻璇锋眰娑堟伅
 					exerciseVerService.sendUpdateExerItemStatisticsMsg(exerciseGroupId, answerData);
 				}
 				
-				// 4.---------更新本次提交的数据日志exerciseRecordId
+				// 4.---------鏇存柊鏈鎻愪氦鐨勬暟鎹棩蹇梕xerciseRecordId
 				if(StringUtils.isBlank(initExerciseRecordId) 
-						&& returnMap.get(EXERCISE_RECORD_ID) != null){// 为空 说明第一次提交  更新日志记录id
+						&& returnMap.get(EXERCISE_RECORD_ID) != null){// 涓虹┖ 璇存槑绗竴娆℃彁浜�  鏇存柊鏃ュ織璁板綍id
 					
 					exerciseRecordId = String.valueOf(returnMap.get(EXERCISE_RECORD_ID));
 					
@@ -962,12 +962,12 @@
 			
 			resultMap.put("success", true);
 			resultMap.put("attrs", resultList);
-			resultMap.put("msg", "提交成功");
+			resultMap.put("msg", "鎻愪氦鎴愬姛");
 			
 		} catch (Exception e) {
 			
-			log.error("提交练习答案请求异常===",e);
-			resultMap.put("msg", "提交练习答案请求异常");
+			log.error("鎻愪氦缁冧範绛旀璇锋眰寮傚父===",e);
+			resultMap.put("msg", "鎻愪氦缁冧範绛旀璇锋眰寮傚父");
 			
 			exerciseVerService.doSaveExerciseDataSubmitLog(answers,
 					"exerMutiAnswers", ExerciseDataSubmitLog.TYPE_SUBMIT_ANSWER,
@@ -978,10 +978,10 @@
 	}
 	
 	/**
-	 * APP2.0: 更新练习家庭作业、模拟考试是否提交
+	 * APP2.0: 鏇存柊缁冧範瀹跺涵浣滀笟銆佹ā鎷熻�冭瘯鏄惁鎻愪氦
 	 * URL:    /exercise/Exercise/updateHomeExerSubmitNew
 	 * 
-	 * @param exerciseRecordId     练习记录ID
+	 * @param exerciseRecordId     缁冧範璁板綍ID
 	 * @return
 	 */
 	@RequestMapping(value = "updateHomeExerSubmitNew", method = RequestMethod.GET)
@@ -992,7 +992,7 @@
 		ExerciseRecord record = commonDAO.read(ExerciseRecord.class, exerciseRecordId);
 		if(record == null 
 				|| !ClientUtils.getUserId().equals(record.getUserId())){
-			return new Result(false, "非法操作,不是当前用户操作");
+			return new Result(false, "闈炴硶鎿嶄綔锛屼笉鏄綋鍓嶇敤鎴锋搷浣�");
 		}
 		
 		record.setStatus(ExerciseRecord.STATUS_SUBMIT);
@@ -1002,10 +1002,10 @@
 	} 
 	
 	/**
-	 * APP2.0: 更新练习家庭作业、模拟考试是否提交
+	 * APP2.0: 鏇存柊缁冧範瀹跺涵浣滀笟銆佹ā鎷熻�冭瘯鏄惁鎻愪氦
 	 * URL:    /exercise/Exercise/updateExerciseRecord
 	 * 
-	 * @param exerciseRecordId     练习记录ID
+	 * @param exerciseRecordId     缁冧範璁板綍ID
 	 * @return
 	 */
 	@RequestMapping(value = "updateExerciseRecord", method = RequestMethod.GET)
@@ -1020,10 +1020,10 @@
 	} 
 	
 	/**
-	 * APP2.0: 更新练习作业题号 app端重新开始做题
+	 * APP2.0: 鏇存柊缁冧範浣滀笟棰樺彿 app绔噸鏂板紑濮嬪仛棰�
 	 * URL:    /exercise/Exercise/updateNewExerRecordNew
 	 * 
-	 * @param groupId         习题组ID
+	 * @param groupId         涔犻缁処D
 	 * @return
 	 */
 	@RequestMapping(value = "updateNewExerRecordNew", method = RequestMethod.GET)
@@ -1032,26 +1032,26 @@
 		
 		Map<String,Object> map = exerciseVerService.doInsertExerRecord(groupId);
 
-		Result result = new Result(true, "状态更新成功");
+		Result result = new Result(true, "鐘舵�佹洿鏂版垚鍔�");
 		result.setData(map);
 		
 		return result;
 	} 
 	
 	/**
-	 * APP2.0: 题目答案分析
+	 * APP2.0: 棰樼洰绛旀鍒嗘瀽
 	 * URL:    /exercise/Exercise/itemstatisics
 	 * 
 	 * 
 	 * 
-	 * @param groupId         习题组ID
+	 * @param groupId         涔犻缁処D
 	 * @return
 	 */
 	@RequestMapping(value = "itemStatisics", method = RequestMethod.GET)
 	public @ResponseBody List<Map<String, Object>> doQueryExerciseItemStatisics(
 			@RequestParam(value = GROUP_ID)  String groupId)  {
 		
-		// 查询结果
+		// 鏌ヨ缁撴灉
 		List<Map<String, Object>> resultLst = exerciseVerService.queryExerciseItemStatisics(groupId);
 		
 		return resultLst;
@@ -1059,13 +1059,13 @@
 	
 	
 	
-	/** -----------------------------------------------APP V2.0接口 end--------------------------------------------------------*/
+	/** -----------------------------------------------APP V2.0鎺ュ彛 end--------------------------------------------------------*/
 	
 	
-	/**------------------------------  web 后端------------------------------------------------------------------------*/
+	/**------------------------------  web 鍚庣------------------------------------------------------------------------*/
 	
 	/**
-	 * 练习管理主页
+	 * 缁冧範绠$悊涓婚〉
 	 * 
 	 * @return
 	 */
@@ -1075,7 +1075,7 @@
 	}
 	
 	/**
-	 * 机构练习管理主页
+	 * 鏈烘瀯缁冧範绠$悊涓婚〉
 	 * 
 	 * @return
 	 */
@@ -1085,9 +1085,9 @@
 	}
 	
 	/**
-	 * (后台管理系统)
+	 * 锛堝悗鍙扮鐞嗙郴缁燂級
 	 * 
-	 * 练习管理列表,获取列表数据
+	 * 缁冧範绠$悊鍒楄〃锛岃幏鍙栧垪琛ㄦ暟鎹�
 	 * 
 	 * @return
 	 */
@@ -1111,7 +1111,7 @@
 		}
 		sql = sql.concat(" order by g.order_num asc");
 		
-		//剔除互动及教学评估
+		//鍓旈櫎浜掑姩鍙婃暀瀛﹁瘎浼�
 		List<ExerciseGroup> result = new ArrayList<ExerciseGroup>();
 		if(StringUtils.isNotBlank(tid)){
 			result = exerciseService.queryExerciceGroupList(sql, CollectionUtils.newList(ExerciseGroup.TYPE_EXERCISE_FREE,
@@ -1135,9 +1135,9 @@
 	}
 	
 	/**
-	 * (后台管理系统)
+	 * 锛堝悗鍙扮鐞嗙郴缁燂級
 	 * 
-	 * 机构练习管理列表,获取列表数据
+	 * 鏈烘瀯缁冧範绠$悊鍒楄〃锛岃幏鍙栧垪琛ㄦ暟鎹�
 	 * 
 	 * @return
 	 */
@@ -1183,7 +1183,7 @@
 	}
 	
 	/**
-	 * 查看练习已经指定的机构和班级
+	 * 鏌ョ湅缁冧範宸茬粡鎸囧畾鐨勬満鏋勫拰鐝骇
 	 * @param groupId
 	 * @return
 	 */
@@ -1233,7 +1233,7 @@
 		return result;
 	}
 	/**
-	 * 获取练习组数据
+	 * 鑾峰彇缁冧範缁勬暟鎹�
 	 * 
 	 * @return
 	 */
@@ -1250,7 +1250,7 @@
 	}
 	
 	/**
-	 * 获取练习数据
+	 * 鑾峰彇缁冧範鏁版嵁
 	 * 
 	 * @return
 	 */
@@ -1265,7 +1265,7 @@
 	}
 	
 	/**
-	 * 获取练习数据
+	 * 鑾峰彇缁冧範鏁版嵁
 	 * 
 	 * @return
 	 */
@@ -1316,10 +1316,10 @@
 	
 	
 	/**
-	 * (后台管理系统)
-	 * 删除练习组(优化)
+	 * 锛堝悗鍙扮鐞嗙郴缁燂級
+	 * 鍒犻櫎缁冧範缁�(浼樺寲)
 	 * 
-	 * 更新20150907:更新习题组最后修改时间
+	 * 鏇存柊20150907锛氭洿鏂颁範棰樼粍鏈�鍚庝慨鏀规椂闂�
 	 * @return
 	 */
 	@RequestMapping(value = "deleteNew", method = RequestMethod.POST)
@@ -1330,10 +1330,10 @@
 	}
 	
 	/**
-	 * (后台管理系统)
-	 * 删除练习组(优化)
+	 * 锛堝悗鍙扮鐞嗙郴缁燂級
+	 * 鍒犻櫎缁冧範缁�(浼樺寲)
 	 * 
-	 * 更新20150907:更新习题组最后修改时间
+	 * 鏇存柊20150907锛氭洿鏂颁範棰樼粍鏈�鍚庝慨鏀规椂闂�
 	 * @return
 	 */
 	@RequestMapping(value = "deleteOrg", method = RequestMethod.POST)
@@ -1346,7 +1346,7 @@
 	
 	
 	/**
-	 * 获取习题列表
+	 * 鑾峰彇涔犻鍒楄〃
 	 * 
 	 * @return
 	 */
@@ -1361,8 +1361,8 @@
 	}
 	
 	/**
-	 * (后台管理系统)
-	 *  管理员同步习题到班级
+	 * 锛堝悗鍙扮鐞嗙郴缁燂級
+	 *  绠$悊鍛樺悓姝ヤ範棰樺埌鐝骇
 	 * 
 	 * @param exerciseItemId
 	 * @return
@@ -1376,10 +1376,10 @@
 	}
 	
 	/**
-	 * (后台管理系统)
-	 * 增加习题
+	 * 锛堝悗鍙扮鐞嗙郴缁燂級
+	 * 澧炲姞涔犻
 	 * 
-	 * 更新20150617:更新习题组最后修改时间
+	 * 鏇存柊20150617锛氭洿鏂颁範棰樼粍鏈�鍚庝慨鏀规椂闂�
 	 * @return
 	 */
 	@RequestMapping(value = "item/addOrUpdate", method = RequestMethod.POST)
@@ -1422,7 +1422,7 @@
 			createItemOption(getOptionOrder(type,'N'),params.getOptionN(), checkN, params.getOptionN_Id(), params.getOptionN_imgIds(), lstOptions);
 			createItemOption(getOptionOrder(type,'O'),params.getOptionO(), checkO, params.getOptionO_Id(), params.getOptionO_imgIds(), lstOptions);
 			
-			// 得到正确答案
+			// 寰楀埌姝g‘绛旀
 			if(StringUtils.isBlank(params.getOptionE())){
 				checkE=false;
 			}
@@ -1438,10 +1438,10 @@
 				item.setTitle(params.getTitle());
 				item.setType(type);
 				item.setImgs(getExerciseTitleImgs(params.getTitle_imgsIds()));
-				if(groupId.contains("#")){// groupid结尾多#
+				if(groupId.contains("#")){// groupid缁撳熬澶�#
 					groupId = groupId.substring(0, groupId.indexOf('#'));
 				}
-				// 练习不发系统通知
+				// 缁冧範涓嶅彂绯荤粺閫氱煡
 				//sendSysNotice(0, groupId);
 				return exerciseService.insertExerciseItem(groupId, item, lstOptions,params.getAnalysis());	
 			}else{
@@ -1449,7 +1449,7 @@
 				item.setAnswer(answer);
 				item.setTitle(params.getTitle());
 				item.setType(type);
-				// 练习不发系统通知
+				// 缁冧範涓嶅彂绯荤粺閫氱煡
 				//sendSysNotice(1, groupId);
 				return exerciseService.updateExerciseItem(item, lstOptions,params.getAnalysis());	
 			}
@@ -1458,7 +1458,7 @@
 	
 	
 	/**
-	 * 得到正确答案
+	 * 寰楀埌姝g‘绛旀
 	 * @param checkA
 	 * @param checkB
 	 * @param checkC
@@ -1470,7 +1470,7 @@
 	private String getCorrectAnswer(ExerciseAddItemParams params,short type){
 		StringBuffer answer = new StringBuffer(64);
 		
-		if(ExerciseItem.TYPE_TRUE_OR_FALSE==type){//判断
+		if(ExerciseItem.TYPE_TRUE_OR_FALSE==type){//鍒ゆ柇
 			return params.getCheckA()?"True":params.getCheckB()?"False":null;
 		}
 		
@@ -1481,7 +1481,7 @@
 			answer.append(',').append('B');
 		}
 		
-		// 组装余下正确答案
+		// 缁勮浣欎笅姝g‘绛旀
 		packagingCorrectAnswer(params, answer);
 		
 		String answers = answer.toString();
@@ -1494,7 +1494,7 @@
 	}
 
 	/**
-	 * 组装正确答案
+	 * 缁勮姝g‘绛旀
 	 * @param checkC
 	 * @param checkD
 	 * @param checkE
@@ -1524,7 +1524,7 @@
 	}
 	
 	/**
-	 * 组装正确答案
+	 * 缁勮姝g‘绛旀
 	 * @param checkC
 	 * @param checkD
 	 * @param checkE
@@ -1556,12 +1556,12 @@
 	}
 	
 	/**
-	 * 得到练习题目图片list
+	 * 寰楀埌缁冧範棰樼洰鍥剧墖list
 	 * @param title_imgsIds
 	 * @return
 	 */
 	private List<ExerciseObjectImg> getExerciseTitleImgs(String title_imgsIds){
-		if(StringUtils.isBlank(title_imgsIds)){//新增图片
+		if(StringUtils.isBlank(title_imgsIds)){//鏂板鍥剧墖
 			return null;
 		}
 		String[] strImgsId = title_imgsIds.split(",");
@@ -1576,7 +1576,7 @@
 	}
 	
 	/**
-	 * 创建习题选项
+	 * 鍒涘缓涔犻閫夐」
 	 * @param option
 	 * @param check
 	 * @param lstOptions
@@ -1590,7 +1590,7 @@
 		}
 		
 		ExerciseItemOption a = new ExerciseItemOption();
-		if(StringUtils.isNotBlank(optionId)){// 更新
+		if(StringUtils.isNotBlank(optionId)){// 鏇存柊
 			a.setOptionId(optionId);
 		}else{
 			if(StringUtils.isEmpty(option)){
@@ -1598,7 +1598,7 @@
 			}
 		}
 		
-		if(StringUtils.isNotBlank(imgsId)){//新增图片
+		if(StringUtils.isNotBlank(imgsId)){//鏂板鍥剧墖
 			String[] strImgsId = imgsId.split(",");
 			List<ExerciseObjectImg> imgs = new ArrayList<ExerciseObjectImg>(strImgsId.length);
 			ExerciseObjectImg objImg = null;
@@ -1627,7 +1627,7 @@
 	}
 	
 	/**
-	 * 更新习题
+	 * 鏇存柊涔犻
 	 * 
 	 * @return
 	 */
@@ -1638,9 +1638,9 @@
 	}
 	
 	/**
-	 * (后台管理)
-	 * 删除习题
-	 * 更新20150617:更新习题组最后修改时间
+	 * 锛堝悗鍙扮鐞嗭級
+	 * 鍒犻櫎涔犻
+	 * 鏇存柊20150617锛氭洿鏂颁範棰樼粍鏈�鍚庝慨鏀规椂闂�
 	 * 
 	 * @return
 	 */
@@ -1651,7 +1651,7 @@
 	}
 	
 	/**
-	 * 根据classID获取所有课程
+	 * 鏍规嵁classID鑾峰彇鎵�鏈夎绋�
 	 * 
 	 * @return
 	 */ 
@@ -1666,7 +1666,7 @@
 	}
 	
 	/**
-	 * 获取组名称
+	 * 鑾峰彇缁勫悕绉�
 	 * 
 	 * @return
 	 */ 
@@ -1677,7 +1677,7 @@
 		List<Map<String,Object>> lstMap = new ArrayList<Map<String,Object>>(1);
 		Map<String,Object> map = null;
 		
-		if(group.getType() == ExerciseGroup.TYPE_CHAPTER_ITEM || group.getType() == ExerciseGroup.TYPE_EXERCISE_TOPIC || group.getType() == ExerciseGroup.TYPE_EXERCISE_EXAM){ // 章节练习 、 专项练习
+		if(group.getType() == ExerciseGroup.TYPE_CHAPTER_ITEM || group.getType() == ExerciseGroup.TYPE_EXERCISE_TOPIC || group.getType() == ExerciseGroup.TYPE_EXERCISE_EXAM){ // 绔犺妭缁冧範 銆� 涓撻」缁冧範
 			map = new HashMap<String, Object>(7);
 			map.put("groupId", group.getGroupId());
 			map.put("name", group.getName());
@@ -1710,7 +1710,7 @@
 	}
 	
 	/**
-	 * 编辑练习保存
+	 * 缂栬緫缁冧範淇濆瓨
 	 * 
 	 * @return
 	 */ 
@@ -1721,7 +1721,7 @@
 	}
 	
 	/**
-	 * 根据lessionId获取所有章节,排除掉当前班级
+	 * 鏍规嵁lessionId鑾峰彇鎵�鏈夌珷鑺�,鎺掗櫎鎺夊綋鍓嶇彮绾�
 	 * 
 	 * @return
 	 */ 
@@ -1743,7 +1743,7 @@
 	}
 	
 	/**
-	 * 根据classID获取顺序练习
+	 * 鏍规嵁classID鑾峰彇椤哄簭缁冧範
 	 * 
 	 * @return
 	 */ 
@@ -1754,7 +1754,7 @@
 		
 		int result = commonDAO.findCount(hql, CollectionUtils.newList(ClientUtils.getClassId(),ExerciseGroup.TYPE_EXERCISE_SEQUENCE));
 		List<ClsClass> lstResult = new ArrayList<ClsClass>();
-		//存在顺序练习,将班级信息传回
+		//瀛樺湪椤哄簭缁冧範锛屽皢鐝骇淇℃伅浼犲洖
 		if( result > 0){
 			hql = "from ClsClass where classId = ? ";
 			lstResult = commonDAO.find(hql, CollectionUtils.newList(ClientUtils.getClassId()), ClsClass.class);
@@ -1764,7 +1764,7 @@
 	}
 	
 	/**
-	 * 根据classID获取顺序练习
+	 * 鏍规嵁classID鑾峰彇椤哄簭缁冧範
 	 * 
 	 * @return
 	 */ 
@@ -1780,7 +1780,7 @@
 	}
 	
 	/**
-	 * 新增练习
+	 * 鏂板缁冧範
 	 * 
 	 * @return
 	 */
@@ -1791,7 +1791,7 @@
 	}
 	
 	/**
-	 * 机构新增练习
+	 * 鏈烘瀯鏂板缁冧範
 	 * 
 	 * @return
 	 */
@@ -1802,7 +1802,7 @@
 	}
 	
 	/**
-	 * 机构指定练习
+	 * 鏈烘瀯鎸囧畾缁冧範
 	 * 
 	 * @return
 	 */
@@ -1813,7 +1813,7 @@
 	}
 	
 	/**
-	 * ORG 获取机构科目列表
+	 * ORG 鑾峰彇鏈烘瀯绉戠洰鍒楄〃
 	 * 
 	 * @return
 	 */
@@ -1832,7 +1832,7 @@
 	}
 	
 	/**
-	 * 新增图片路径到数据库
+	 * 鏂板鍥剧墖璺緞鍒版暟鎹簱
 	 * @param fullPaths
 	 * @param imgObjId
 	 * @param imgObjType
@@ -1849,13 +1849,13 @@
 		}
 		String[] imgPaths = fullPaths.split(";");
 		
-		// 更新路径到数据库
+		// 鏇存柊璺緞鍒版暟鎹簱
 		List<Map<String,Object>> lstResult = exerciseService.doAddExerciseObjImg(imgPaths, imgObjId, imgObjType);
 		
 		return lstResult;
 	}
 	
-	/** 新增图片路径到数据库 */
+	/** 鏂板鍥剧墖璺緞鍒版暟鎹簱 */
 	@RequestMapping(value = "delExerObjImg",method = RequestMethod.POST)
 	public @ResponseBody Result dodelExerciseObjImg(
 			@RequestParam("imgId") String imgId){
@@ -1865,7 +1865,7 @@
 		return result;
 	}
 	
-	/** 查询图片路径 */
+	/** 鏌ヨ鍥剧墖璺緞 */
 	@RequestMapping(value = "queryExerObjImg",method = RequestMethod.POST)
 	public @ResponseBody List<Map<String,Object>> doQueryExerciseObjImg(
 			@RequestParam("imgObjId") String imgObjId,
@@ -1874,7 +1874,7 @@
 			return null;
 		}
 		String hql = "from ExerciseObjectImg where deleteFlag is false and exerciseObjectId=? and objectType=? order by imgOrder";
-		// 查询此练习是否已经存在记录
+		// 鏌ヨ姝ょ粌涔犳槸鍚﹀凡缁忓瓨鍦ㄨ褰�
 		List<ExerciseObjectImg> lstObjImg = commonDAO.find(hql,
 				CollectionUtils.newList(imgObjId,imgObjType), ExerciseObjectImg.class);
 		
@@ -1894,12 +1894,12 @@
 	}
 	
 	/**
-	 * (后台管理系统:导入习题模块)
-	 *  导入习题-习题导入深度解析
+	 * 锛堝悗鍙扮鐞嗙郴缁�:瀵煎叆涔犻妯″潡锛�
+	 *  瀵煎叆涔犻-涔犻瀵煎叆娣卞害瑙f瀽
 	 * 
-	 * @param groupId 习题组ID
+	 * @param groupId 涔犻缁処D
 	 * @param uuid uuid
-	 * @param fileName 文件名称
+	 * @param fileName 鏂囦欢鍚嶇О
 	 * @return
 	 */
 	@RequestMapping(value = "/item/deepAnalysisDoc", method = RequestMethod.POST)
@@ -1912,12 +1912,12 @@
 	
 	
 	/**
-	 * (后台管理系统:导入习题模块)
-	 *  导入习题-第一次将word解析结果返回给前台,并不保存到数据库
+	 * 锛堝悗鍙扮鐞嗙郴缁�:瀵煎叆涔犻妯″潡锛�
+	 *  瀵煎叆涔犻-绗竴娆″皢word瑙f瀽缁撴灉杩斿洖缁欏墠鍙帮紝骞朵笉淇濆瓨鍒版暟鎹簱
 	 *  
-	 * @param groupId 习题组ID
+	 * @param groupId 涔犻缁処D
 	 * @param uuid uuid
-	 * @param fileName 文件名称
+	 * @param fileName 鏂囦欢鍚嶇О
 	 * @return
 	 */
 	@RequestMapping(value = "/item/import/parser/{groupId}", method = RequestMethod.POST)
@@ -1929,10 +1929,10 @@
 	}
 	
 	/**
-	 * (后台管理系统:导入习题模块)
-	 *  校验内容,返回解析结果
+	 * 锛堝悗鍙扮鐞嗙郴缁�:瀵煎叆涔犻妯″潡锛�
+	 *  鏍¢獙鍐呭锛岃繑鍥炶В鏋愮粨鏋�
 	 * 
-	 * @param content 文本内容
+	 * @param content 鏂囨湰鍐呭
 	 * @return
 	 */
 	@RequestMapping(value = "/item/import/validateExercise", method = RequestMethod.POST)
@@ -1943,7 +1943,7 @@
 	}
 	
 	/**
-	 * 获取所有班级,当前班级除外,增加过滤没有习题的班级
+	 * 鑾峰彇鎵�鏈夌彮绾э紝褰撳墠鐝骇闄ゅ,澧炲姞杩囨护娌℃湁涔犻鐨勭彮绾�
 	 * @return
 	 */
 	@RequestMapping(value = "loadClasses", method = RequestMethod.GET)
@@ -1969,7 +1969,7 @@
 	}
 	
 	/**
-	 * 复制习题
+	 * 澶嶅埗涔犻
 	 * @param fromClassId
 	 * @return
 	 */
@@ -1981,7 +1981,7 @@
 	}
 	
 	/**
-	 * 学员得分详情列表
+	 * 瀛﹀憳寰楀垎璇︽儏鍒楄〃
 	 * @param groupId
 	 * @return
 	 */
@@ -1995,7 +1995,7 @@
 	}
 	
 	/**
-	 * 初始化平均成绩和最高成绩
+	 * 鍒濆鍖栧钩鍧囨垚缁╁拰鏈�楂樻垚缁�
 	 * @param groupId
 	 * @return
 	 */
@@ -2008,7 +2008,7 @@
 	}
 	
 	/**
-	 * 每道题得分详情
+	 * 姣忛亾棰樺緱鍒嗚鎯�
 	 * @param groupId
 	 * @return
 	 */
@@ -2021,7 +2021,7 @@
 	}
 	
 	/**
-	 * 加载题目选项详情 - 班级、机构
+	 * 鍔犺浇棰樼洰閫夐」璇︽儏 - 鐝骇銆佹満鏋�
 	 * @param groupId
 	 * @return
 	 */
@@ -2034,7 +2034,7 @@
 	}
 	
 	/**
-	 * 刷新更新统计
+	 * 鍒锋柊鏇存柊缁熻
 	 * @param groupId
 	 * @return
 	 */
@@ -2047,7 +2047,7 @@
 	}
 	
 	/**
-	 * 导出练习每道题得分详情
+	 * 瀵煎嚭缁冧範姣忛亾棰樺緱鍒嗚鎯�
 	 * 
 	 * @return
 	 * @throws IOException 
@@ -2056,13 +2056,13 @@
 	public String exportItemStatis(@PathVariable String groupId,HttpServletResponse response) throws IOException {
 		ExerciseGroup exeGroup= this.commonDAO.read(ExerciseGroup.class, groupId);
 		
-		//获取每道题得分详情列表
+		//鑾峰彇姣忛亾棰樺緱鍒嗚鎯呭垪琛�
 		List<ExerciseItemStatistics> itemStatisLst = exerciseService.itemDetailList(groupId);
 		
 		ExcelExportUtils<ExerciseItemStatistics> ex = new ExcelExportUtils<ExerciseItemStatistics>();
 		ExcelExportParam<ExerciseItemStatistics> obj = new ExcelExportParam<ExerciseItemStatistics>();
 		obj.setColData(itemStatisLst);
-		String[] headers = { "序号","题号","题目", "类型", "正确答案","班级正确率","全站正确率"};
+		String[] headers = { "搴忓彿","棰樺彿","棰樼洰", "绫诲瀷", "姝g‘绛旀","鐝骇姝g‘鐜�","鍏ㄧ珯姝g‘鐜�"};
 		
 		obj.setHeaders(headers);
 		obj.setLstColumn(new ArrayList<String>(Arrays.asList("itemNo","exerciseItemTitel","itemTypeName","correctAnswer","classAccuracyShow","orgAccuracyShow")));
@@ -2070,7 +2070,7 @@
 		
 		response.reset();
 		response.setContentType("application/vnd.ms-excel;charset=utf-8");
-		response.setHeader("Content-Disposition", "attachment;filename="+ new String((ClientUtils.getClassName()+ "_" + exeGroup.getName() + "_详情.xls").getBytes(), "iso-8859-1"));
+		response.setHeader("Content-Disposition", "attachment;filename="+ new String((ClientUtils.getClassName()+ "_" + exeGroup.getName() + "_璇︽儏.xls").getBytes(), "iso-8859-1"));
 		response.setCharacterEncoding("utf-8");
 		OutputStream ouputStream = response.getOutputStream();
 		obj.setOut(ouputStream);
@@ -2082,23 +2082,23 @@
 	}
 	
 	/**
-	 * 导出练习学员得分详情
+	 * 瀵煎嚭缁冧範瀛﹀憳寰楀垎璇︽儏
 	 * 
 	 * @return
 	 * @throws IOException 
 	 */
 	@RequestMapping(value = "userScoreStatis/data/{groupId}", method = RequestMethod.GET)
 	public String exportUserScore(@PathVariable String groupId,HttpServletResponse response) throws IOException {
-		// 获取组名称
+		// 鑾峰彇缁勫悕绉�
 		ExerciseGroup exeGroup= this.commonDAO.read(ExerciseGroup.class, groupId);
 		
-		// 获取之前组装的排名List<Map<String, Object>>列表
+		// 鑾峰彇涔嬪墠缁勮鐨勬帓鍚峀ist<Map<String, Object>>鍒楄〃
 		List<Map<String, Object>> userScoreMap = exerciseService.resultList(groupId);
 		List<ExportUserScore> userLst = new ArrayList<ExportUserScore>(userScoreMap.size());
 		ExportUserScore user = null;
 		
 		if(userScoreMap != null){
-			// 将获取的Map列表转换为List列表
+			// 灏嗚幏鍙栫殑Map鍒楄〃杞崲涓篖ist鍒楄〃
 			for(Map<String, Object> userScore:userScoreMap){
 				user = new ExportUserScore();
 				user.setName(String.valueOf(userScore.get("name")));
@@ -2113,7 +2113,7 @@
 			ExcelExportUtils<ExportUserScore> ex = new ExcelExportUtils<ExportUserScore>();
 			ExcelExportParam<ExportUserScore> obj = new ExcelExportParam<ExportUserScore>();
 			obj.setColData(userLst);
-			String[] headers = { "排名","学员姓名","报名码","报名时间","手机号码", "提交时间", "成绩"};
+			String[] headers = { "鎺掑悕","瀛﹀憳濮撳悕","鎶ュ悕鐮�","鎶ュ悕鏃堕棿","鎵嬫満鍙风爜", "鎻愪氦鏃堕棿", "鎴愮哗"};
 			
 			obj.setHeaders(headers);
 			obj.setLstColumn(new ArrayList<String>(Arrays.asList("name","salesCode","createTime","mobilePhone","submitTime","score")));
@@ -2121,7 +2121,7 @@
 			
 			response.reset();
 			response.setContentType("application/vnd.ms-excel;charset=utf-8");
-			response.setHeader("Content-Disposition", "attachment;filename="+ new String((ClientUtils.getClassName() + "_" + exeGroup.getName() + "_成绩.xls").getBytes(), "iso-8859-1"));
+			response.setHeader("Content-Disposition", "attachment;filename="+ new String((ClientUtils.getClassName() + "_" + exeGroup.getName() + "_鎴愮哗.xls").getBytes(), "iso-8859-1"));
 			response.setCharacterEncoding("utf-8");
 			OutputStream ouputStream = response.getOutputStream();
 			obj.setOut(ouputStream);
@@ -2136,7 +2136,7 @@
 	
 	
 	/**
-	 * 习题组排序
+	 * 涔犻缁勬帓搴�
 	 * 
 	 * @param key
 	 * @return
@@ -2148,7 +2148,7 @@
 	}
 	
 	/**
-	 * 习题排序
+	 * 涔犻鎺掑簭
 	 * 
 	 * @param key
 	 * @return
@@ -2161,14 +2161,14 @@
 	
 	
 	
-	/******************************************py导入******************************************************************/
+	/******************************************py瀵煎叆******************************************************************/
 	/**
-	 * (后台管理系统:导入习题模块)
-	 *  导入习题-第一次将word解析结果返回给前台,并不保存到数据库
+	 * 锛堝悗鍙扮鐞嗙郴缁�:瀵煎叆涔犻妯″潡锛�
+	 *  瀵煎叆涔犻-绗竴娆″皢word瑙f瀽缁撴灉杩斿洖缁欏墠鍙帮紝骞朵笉淇濆瓨鍒版暟鎹簱
 	 *  
-	 * @param groupId 习题组ID
+	 * @param groupId 涔犻缁処D
 	 * @param uuid uuid
-	 * @param fileName 文件名称
+	 * @param fileName 鏂囦欢鍚嶇О
 	 * @return
 	 */
 	@RequestMapping(value = "/item/importpy/parse/{groupId}", method = RequestMethod.POST)
@@ -2179,10 +2179,10 @@
 	}
 	
 	/**
-	 * (后台管理系统:导入习题模块)
-	 *  校验内容,返回解析结果
+	 * 锛堝悗鍙扮鐞嗙郴缁�:瀵煎叆涔犻妯″潡锛�
+	 *  鏍¢獙鍐呭锛岃繑鍥炶В鏋愮粨鏋�
 	 * 
-	 * @param content 文本内容
+	 * @param content 鏂囨湰鍐呭
 	 * @return
 	 */
 	@RequestMapping(value = "/item/importpy/validate", method = RequestMethod.POST)
@@ -2192,10 +2192,10 @@
 	}
 	
 	/**
-	 * (后台管理系统:导入习题模块)
-	 *  导入内容,返回解析结果
+	 * 锛堝悗鍙扮鐞嗙郴缁�:瀵煎叆涔犻妯″潡锛�
+	 *  瀵煎叆鍐呭锛岃繑鍥炶В鏋愮粨鏋�
 	 * 
-	 * @param content 文本内容
+	 * @param content 鏂囨湰鍐呭
 	 * @return
 	 */
 	@SuppressWarnings("unchecked")
@@ -2211,18 +2211,18 @@
 			return exercisePyService.doImportPyExercise(lst,groupId);
 			
 		} catch (Exception e) {
-			log.error("提交数据有误" + e );
+			log.error("鎻愪氦鏁版嵁鏈夎" + e );
 		}
 		
-		return new Result(false,"解析json失败");
+		return new Result(false,"瑙f瀽json澶辫触");
 	}
 	
 	
 	
 	
-	/**-----------------  问卷调查----start-----------------------------------*/
+	/**-----------------  闂嵎璋冩煡----start-----------------------------------*/
 	/**
-	 * 评估模块添加问答
+	 * 璇勪及妯″潡娣诲姞闂瓟
 	 * 
 	 * @param jsonExerciseItemDTO
 	 * @return
@@ -2237,19 +2237,19 @@
 		boolean mustAnswer = jsonObject.getBooleanValue("mustAnswer");
 		short type = jsonObject.getShort("type");
 		String analysis = jsonObject.getString("analysis");
-		JSONArray titleImgs = jsonObject.getJSONArray("imags");// 题目的图片路径
+		JSONArray titleImgs = jsonObject.getJSONArray("imags");// 棰樼洰鐨勫浘鐗囪矾寰�
 		
-		//获取选项
+		//鑾峰彇閫夐」
 		List<ExerciseItemOption> lstOptions = JSONArray.parseArray(jsonObject.getString("lstOptions"), ExerciseItemOption.class);
 		ExerciseItem item = null;
 		
-		if(StringUtils.isEmpty(exerciseId)){// 新增
+		if(StringUtils.isEmpty(exerciseId)){// 鏂板
 			item = new ExerciseItem();
 			item.setTitle(title);
 			item.setType(type);
 			item.setMustAnswer(mustAnswer);
 			exerciseService.insertExerciseItem4Evaluate(groupId, item, lstOptions,analysis,titleImgs);
-		}else{// 编辑
+		}else{// 缂栬緫
 			item = this.commonDAO.read(ExerciseItem.class, exerciseId);
 			item.setTitle(title);
 			item.setType(type);
@@ -2264,7 +2264,7 @@
 	
 	
 	/**
-	 * 获取问卷习题列表
+	 * 鑾峰彇闂嵎涔犻鍒楄〃
 	 * 
 	 * @return
 	 */
@@ -2277,9 +2277,9 @@
 	}
 	
 	/**
-	 * 查看学员答卷情况
+	 * 鏌ョ湅瀛﹀憳绛斿嵎鎯呭喌
 	 * 
-	 * @param recordId 答题记录id
+	 * @param recordId 绛旈璁板綍id
 	 * @param schEvaluateId
 	 * @return
 	 */
@@ -2289,14 +2289,14 @@
 		return exerciseService.queryUserEvaExerciseDetail(recordId, evaluateId);
 	}
 	
-	/** 查询图片路径 */
+	/** 鏌ヨ鍥剧墖璺緞 */
 	@RequestMapping(value = "evaluate/queryExerObjImg",method = RequestMethod.GET)
 	public @ResponseBody ResultJson queryEvaExerciseObjImg(
 			@RequestParam("imgObjId") String imgObjId,
 			@RequestParam("imgObjType") int imgObjType){
 		
 		if(StringUtils.isBlank(imgObjId)){
-			return new ResultJson(false,"参数为空");
+			return new ResultJson(false,"鍙傛暟涓虹┖");
 		}
 		
 		List<Map<String,Object>> lstResult =  exerciseService.queryEvaExerciseObjImg(imgObjId, imgObjType);
@@ -2305,7 +2305,7 @@
 	}
 	
 	/**
-	 * 新增图片路径到数据库
+	 * 鏂板鍥剧墖璺緞鍒版暟鎹簱
 	 * @param fullPaths
 	 * @param imgObjId
 	 * @param imgObjType
@@ -2322,13 +2322,13 @@
 		}
 		String[] imgPaths = fullPaths.split(";");
 		
-		// 更新路径到数据库
+		// 鏇存柊璺緞鍒版暟鎹簱
 		List<Map<String,Object>> lstResult = exerciseService.doAddEvaExerciseObjImg(imgPaths, imgObjId, imgObjType);
 		
 		return new ResultJson(true,"success",lstResult);
 	}
 	
-	/** 删除图片路径到数据库 */
+	/** 鍒犻櫎鍥剧墖璺緞鍒版暟鎹簱 */
 	@RequestMapping(value = "evaluate/delExerObjImg",method = RequestMethod.POST)
 	public @ResponseBody ResultJson dodelEvaExerciseObjImg(
 			@RequestParam("imgId") String imgId){
@@ -2337,9 +2337,9 @@
 		
 		return result;
 	}
-	/**------------------  问卷调查----end------------------------------------*/
+	/**------------------  闂嵎璋冩煡----end------------------------------------*/
 	
 	
-	/**------------------------------  web 后端----end--------------------------------------------------------------------*/
+	/**------------------------------  web 鍚庣----end--------------------------------------------------------------------*/
 	
 }
\ No newline at end of file

--
Gitblit v1.8.0