From 79ab2cbd31c022916a8e696903d5eb34b70aa403 Mon Sep 17 00:00:00 2001
From: EricsHu <hrr145632>
Date: 星期六, 25 十一月 2023 15:57:07 +0800
Subject: [PATCH] 讨论区关键字过滤、首页班级显示班级信息

---
 src/main/java/com/qxueyou/scc/teach/student/service/impl/StudentService.java  |    6 
 src/main/java/com/qxueyou/scc/Sensitive/SensitiveWordInit.java                |  162 ++++++++++++++++++
 src/main/java/com/qxueyou/scc/teach/student/service/IStudentService.java      |    1 
 src/main/java/com/qxueyou/scc/Sensitive/SensitiveFilterService.java           |  199 ++++++++++++++++++++++
 src/main/java/com/qxueyou/scc/controller/IndexController.java                 |   24 +
 src/main/java/com/qxueyou/scc/exam/dao/ExamResultVDao.java                    |    7 
 src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClsClassService.java |   22 ++
 src/main/java/com/qxueyou/scc/admin/score/dao/HomeworkScoreVDAO.java          |    2 
 src/main/java/com/qxueyou/scc/admin/score/service/impl/ScoreService.java      |   37 +++
 src/main/java/com/qxueyou/scc/operation/topic/action/StuTopicController.java  |    9 
 src/main/java/com/qxueyou/scc/admin/classes/service/IClassService.java        |    2 
 src/main/resources/SensitiveWordList.txt                                      |    1 
 src/main/java/com/qxueyou/scc/admin/score/dao/ExamScoreVDAO.java              |    1 
 src/main/java/com/qxueyou/scc/controller/ClassController.java                 |   16 +
 14 files changed, 473 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/qxueyou/scc/Sensitive/SensitiveFilterService.java b/src/main/java/com/qxueyou/scc/Sensitive/SensitiveFilterService.java
new file mode 100644
index 0000000..98012e7
--- /dev/null
+++ b/src/main/java/com/qxueyou/scc/Sensitive/SensitiveFilterService.java
@@ -0,0 +1,199 @@
+package com.qxueyou.scc.Sensitive;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+
+//鏁忔劅璇嶈繃婊ゅ櫒锛氬埄鐢―FA绠楁硶  杩涜鏁忔劅璇嶈繃婊�
+
+
+@SuppressWarnings("rawtypes")
+public class SensitiveFilterService {
+
+
+    private Map sensitiveWordMap = null;
+
+
+    // 鏈�灏忓尮閰嶈鍒�
+    public static int minMatchTYpe = 1;
+
+
+    // 鏈�澶у尮閰嶈鍒�
+    public static int maxMatchType = 2;
+
+
+    // 鍗曚緥
+    private static SensitiveFilterService instance = null;
+
+
+    // 鏋勯�犲嚱鏁帮紝鍒濆鍖栨晱鎰熻瘝搴�
+    private SensitiveFilterService() {
+
+
+        sensitiveWordMap = new SensitiveWordInit().initKeyWord();
+    }
+
+
+    // 鑾峰彇鍗曚緥
+    public static SensitiveFilterService getInstance() {
+        if (null == instance) {
+            instance = new SensitiveFilterService();
+        }
+        return instance;
+    }
+
+
+// 鑾峰彇鏂囧瓧涓殑鏁忔劅璇�
+
+
+    public Set<String> getSensitiveWord(String txt, int matchType) {
+        Set<String> sensitiveWordList = new HashSet<String>();
+
+
+        for (int i = 0; i < txt.length(); i++) {
+
+
+// 鍒ゆ柇鏄惁鍖呭惈鏁忔劅瀛楃
+            int length = CheckSensitiveWord(txt, i, matchType);
+
+// 瀛樺湪,鍔犲叆list涓�
+            if (length > 0) {
+                sensitiveWordList.add(txt.substring(i, i + length));
+
+// 鍑�1鐨勫師鍥狅紝鏄洜涓篺or浼氳嚜澧�
+                i = i + length - 1;
+            }
+        }
+
+        return sensitiveWordList;
+    }
+// 鏇挎崲鏁忔劅瀛楀瓧绗�
+
+    public String replaceSensitiveWord(String txt, int matchType,
+                                       String replaceChar) {
+        String resultTxt = txt;
+// 鑾峰彇鎵�鏈夌殑鏁忔劅璇�
+        Set<String> set = getSensitiveWord(txt, matchType);
+        Iterator<String> iterator = set.iterator();
+        String word = null;
+        String replaceString = null;
+        while (iterator.hasNext()) {
+            word = iterator.next();
+            replaceString = getReplaceChars(replaceChar, word.length());
+            resultTxt = resultTxt.replaceAll(word, replaceString);
+        }
+        return resultTxt;
+    }
+
+    /**
+     * 杩斿洖 瀛楃涓插惈鏈夌殑鎷︽埅璇�  閫楀彿闅斿紑
+     *
+     * @param txt
+     * @return
+     */
+    public String returnSensitiveWord(String txt) {
+        String resultTxt = txt;
+        StringBuilder sensitiveWord = new StringBuilder("");
+        // 鑾峰彇鎵�鏈夌殑鏁忔劅璇�
+        Set<String> set = getSensitiveWord(txt, 1);
+        Iterator<String> iterator = set.iterator();
+        String word = null;
+        String replaceString = null;
+        while (iterator.hasNext()) {
+            String str = resultTxt;
+            word = iterator.next();
+            replaceString = getReplaceChars("*", word.length());
+            resultTxt = resultTxt.replaceAll(word, replaceString);
+            if (!resultTxt.equals(str)){
+                sensitiveWord.append(word);
+                sensitiveWord.append(",");
+            }
+        }
+        return sensitiveWord.toString();
+    }
+    /**
+     * 鑾峰彇鏇挎崲瀛楃涓�
+
+     *
+     * @param replaceChar
+     * @param length
+     * @return
+     */
+    private String getReplaceChars(String replaceChar, int length) {
+        String resultReplace = replaceChar;
+        for (int i = 1; i < length; i++) {
+            resultReplace += replaceChar;
+        }
+
+        return resultReplace;
+    }
+
+    /**
+     * 鍒ゆ柇鏂囨湰涓寘鍚晱鎰熻瘝涓暟
+     * @param
+     */
+    public static boolean checkContainCount(String txt) {
+        SensitiveFilterService filter = SensitiveFilterService.getInstance();
+        Set<java.lang.String> hou = filter.getSensitiveWord(txt, 1);
+        return hou.size() > 0;
+    }
+    /**
+
+     * 妫�鏌ユ枃瀛椾腑鏄惁鍖呭惈鏁忔劅瀛楃锛屾鏌ヨ鍒欏涓嬶細<br>
+     * 濡傛灉瀛樺湪锛屽垯杩斿洖鏁忔劅璇嶅瓧绗︾殑闀垮害锛屼笉瀛樺湪杩斿洖0
+     *
+     * @param txt
+     * @param beginIndex
+     * @param matchType
+     * @return
+     */
+    public int CheckSensitiveWord(String txt, int beginIndex, int matchType) {
+
+// 鏁忔劅璇嶇粨鏉熸爣璇嗕綅锛氱敤浜庢晱鎰熻瘝鍙湁1浣嶇殑鎯呭喌
+        boolean flag = false;
+
+// 鍖归厤鏍囪瘑鏁伴粯璁や负0
+        int matchFlag = 0;
+        Map nowMap = sensitiveWordMap;
+        for (int i = beginIndex; i < txt.length(); i++) {
+            char word = txt.charAt(i);
+// 鑾峰彇鎸囧畾key
+            nowMap = (Map) nowMap.get(word);
+
+// 瀛樺湪锛屽垯鍒ゆ柇鏄惁涓烘渶鍚庝竴涓�
+            if (nowMap != null) {
+
+// 鎵惧埌鐩稿簲key锛屽尮閰嶆爣璇�+1
+                matchFlag++;
+
+// 濡傛灉涓烘渶鍚庝竴涓尮閰嶈鍒�,缁撴潫寰幆锛岃繑鍥炲尮閰嶆爣璇嗘暟
+                if ("1".equals(nowMap.get("isEnd"))) {
+
+// 缁撴潫鏍囧織浣嶄负true
+                    flag = true;
+
+// 鏈�灏忚鍒欙紝鐩存帴杩斿洖,鏈�澶ц鍒欒繕闇�缁х画鏌ユ壘
+                    if (SensitiveFilterService.minMatchTYpe == matchType) {
+                        break;
+                    }
+                }
+            }
+
+
+// 涓嶅瓨鍦紝鐩存帴杩斿洖
+            else {
+                break;
+            }
+        }
+
+
+        if (matchFlag < 2 && !flag) { // 闀垮害蹇呴』澶т簬绛変簬1锛屼负璇�
+            matchFlag = 0;
+        }
+        return matchFlag;
+    }
+
+
+}
diff --git a/src/main/java/com/qxueyou/scc/Sensitive/SensitiveWordInit.java b/src/main/java/com/qxueyou/scc/Sensitive/SensitiveWordInit.java
new file mode 100644
index 0000000..5306fa8
--- /dev/null
+++ b/src/main/java/com/qxueyou/scc/Sensitive/SensitiveWordInit.java
@@ -0,0 +1,162 @@
+package com.qxueyou.scc.Sensitive;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+
+//灞忚斀鏁忔劅璇嶅垵濮嬪寲
+
+
+@SuppressWarnings({"rawtypes", "unchecked"})
+public class SensitiveWordInit {
+    // 瀛楃缂栫爜
+    private String ENCODING = "UTF-8";
+
+    // 鍒濆鍖栨晱鎰熷瓧搴�
+    public Map initKeyWord() {
+// 璇诲彇鏁忔劅璇嶅簱 ,瀛樺叆Set涓�
+        Set<String> wordSet = readSensitiveWordFile();
+// 灏嗘晱鎰熻瘝搴撳姞鍏ュ埌HashMap涓�//纭畾鏈夌┓鑷姩鏈篋FA
+        return addSensitiveWordToHashMap(wordSet);
+    }
+
+
+    /**
+     * 璇诲彇鏁忔劅璇嶅簱锛屽皢鏁忔劅璇嶆斁鍏ashSet涓紝鏋勫缓涓�涓狣FA绠楁硶妯″瀷锛�<br>
+     * 涓� = {
+     * isEnd = 0
+     * 鍥� = {
+     * isEnd = 1
+     * 浜� = {isEnd = 0
+     * 姘� = {isEnd = 1}
+     * }
+     * 鐢�  = {
+     * isEnd = 0
+     * 浜� = {
+     * isEnd = 1
+     * }
+     * }
+     * }
+     * }
+     * 浜� = {
+     * isEnd = 0
+     * 鏄� = {
+     * isEnd = 0
+     * 绾� = {
+     * isEnd = 0
+     * 鏃� = {
+     * isEnd = 1
+     * }
+     * }
+     * }
+     * }
+     */
+
+
+    // 璇诲彇鏁忔劅璇嶅簱 ,瀛樺叆HashMap涓�
+    private Set<String> readSensitiveWordFile() {
+
+
+        Set<String> wordSet = null;
+// app涓洪」鐩湴鍧�
+        /*
+         * String app = System.getProperty("user.dir"); System.out.println(app);
+         * URL resource = Thread.currentThread().getContextClassLoader()
+         * .getResource("/"); String path = resource.getPath().substring(1);
+         * System.out.println(path); File file = new File(path +
+         * "censorwords.txt");
+         */
+
+
+//鏁忔劅璇嶅簱
+        File file = new File(
+                "src/main/resources/SensitiveWordList.txt");
+        try {
+// 璇诲彇鏂囦欢杈撳叆娴�
+            InputStreamReader read = new InputStreamReader(new FileInputStream(
+                    file), ENCODING);
+
+// 鏂囦欢鏄惁鏄枃浠� 鍜� 鏄惁瀛樺湪
+            if (file.isFile() && file.exists()) {
+
+                wordSet = new HashSet<String>();
+// StringBuffer sb = new StringBuffer();
+// BufferedReader鏄寘瑁呯被锛屽厛鎶婂瓧绗﹁鍒扮紦瀛橀噷锛屽埌缂撳瓨婊′簡锛屽啀璇诲叆鍐呭瓨锛屾彁楂樹簡璇荤殑鏁堢巼銆�
+                BufferedReader br = new BufferedReader(read);
+                String txt = null;
+
+
+// 璇诲彇鏂囦欢锛屽皢鏂囦欢鍐呭鏀惧叆鍒皊et涓�
+                while ((txt = br.readLine()) != null) {
+                    wordSet.add(txt);
+                }
+
+
+                br.close();
+
+
+                /*
+                 * String str = sb.toString(); String[] ss = str.split("锛�"); for
+                 * (String s : ss) { wordSet.add(s); }
+                 */
+            }
+
+
+// 鍏抽棴鏂囦欢娴�
+            read.close();
+
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+
+        return wordSet;
+    }
+
+
+    // 灏咹ashSet涓殑鏁忔劅璇�,瀛樺叆HashMap涓�
+    private Map addSensitiveWordToHashMap(Set<String> wordSet) {
+
+
+// 鍒濆鍖栨晱鎰熻瘝瀹瑰櫒锛屽噺灏戞墿瀹规搷浣�
+        Map wordMap = new HashMap(wordSet.size());
+
+
+        for (String word : wordSet) {
+            Map nowMap = wordMap;
+            for (int i = 0; i < word.length(); i++) {
+// 杞崲鎴恈har鍨�
+                char keyChar = word.charAt(i);
+// 鑾峰彇
+                Object tempMap = nowMap.get(keyChar);
+// 濡傛灉瀛樺湪璇ey锛岀洿鎺ヨ祴鍊�
+                if (tempMap != null) {
+                    nowMap = (Map) tempMap;
+                }
+// 涓嶅瓨鍦ㄥ垯锛屽垯鏋勫缓涓�涓猰ap锛屽悓鏃跺皢isEnd璁剧疆涓�0锛屽洜涓轰粬涓嶆槸鏈�鍚庝竴涓�
+                else {
+// 璁剧疆鏍囧織浣�
+                    Map<String, String> newMap = new HashMap<String, String>();
+                    newMap.put("isEnd", "0");
+// 娣诲姞鍒伴泦鍚�
+                    nowMap.put(keyChar, newMap);
+                    nowMap = newMap;
+                }
+// 鏈�鍚庝竴涓�
+                if (i == word.length() - 1) {
+                    nowMap.put("isEnd", "1");
+                }
+            }
+        }
+        return wordMap;
+    }
+
+
+}
diff --git a/src/main/java/com/qxueyou/scc/admin/classes/service/IClassService.java b/src/main/java/com/qxueyou/scc/admin/classes/service/IClassService.java
index edeb893..8a61f3f 100644
--- a/src/main/java/com/qxueyou/scc/admin/classes/service/IClassService.java
+++ b/src/main/java/com/qxueyou/scc/admin/classes/service/IClassService.java
@@ -145,4 +145,6 @@
 	List<Map<String, Object>> queryAllClassIdAndName();
 
 	ClsClass getReClass(String classTypes);
+
+	List<ClsClass> getTeacherClassLst(String teacherId);
 }
diff --git a/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClsClassService.java b/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClsClassService.java
index 056deb8..429f9d3 100644
--- a/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClsClassService.java
+++ b/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClsClassService.java
@@ -108,6 +108,25 @@
     }
 
     @Override
+    public List<ClsClass> getTeacherClassLst(String teacherId) {
+        String sql = "select c.* " +
+                "from cls_class as c  " +
+                "where  c.DELETE_FLAG is false  and c.CLASS_ID in " +
+                "(select  cs.CLASS_ID " +
+                "from cls_class_re_subject as cs " +
+                "LEFT JOIN  subject as s on s.SUBJECT_ID =cs.SUBJECT_ID " +
+                "where cs.DELETE_FLAG is false  and s.DELETE_FLAG is false  and s.TEACHER_ID=:teacherId )";
+        List<Object[]> list = findByComplexSql(sql, CollectionUtils.newObjectMap("teacherId", teacherId), Object[].class);
+        List<ClsClass> clsClassList=new ArrayList<>();
+        for (Object[] objects : list) {
+            ClsClass clsClass = new ClsClass();
+            clsClass.setClassId(objects[0].toString());
+            clsClassList.add(clsClass);
+        }
+        return clsClassList;
+    }
+
+    @Override
     public Result updateClass(String classId, String className, String classNumber, Date startTime, Date endTime,
                               String subjectId, boolean needJoinAudit, boolean needQuitAudit, boolean showAnalysisAfterExer,
                               boolean canMultiExer, boolean needForum, String teacherId, String chargeClassName) {
@@ -319,7 +338,8 @@
     public Map<String, Object> getClassActivityInfo(String classId) {
 
         Map<String, Object> result = scoreService.queryClassHomeworkScoreInfo(classId);
-        result.putAll(scoreService.queryClassExamScoreInfo(classId));
+        Map<String, Object> stringObjectMap = scoreService.queryClassExamScoreInfo(classId);
+        result.putAll(stringObjectMap);
 
         ClsClass cls = read(classId);
 
diff --git a/src/main/java/com/qxueyou/scc/admin/score/dao/ExamScoreVDAO.java b/src/main/java/com/qxueyou/scc/admin/score/dao/ExamScoreVDAO.java
index 759c3b4..716533d 100644
--- a/src/main/java/com/qxueyou/scc/admin/score/dao/ExamScoreVDAO.java
+++ b/src/main/java/com/qxueyou/scc/admin/score/dao/ExamScoreVDAO.java
@@ -21,4 +21,5 @@
 
 		return this.findCount(hql, CollectionUtils.newList(classId));
 	}
+
 }
diff --git a/src/main/java/com/qxueyou/scc/admin/score/dao/HomeworkScoreVDAO.java b/src/main/java/com/qxueyou/scc/admin/score/dao/HomeworkScoreVDAO.java
index 6481c54..ed9db3c 100644
--- a/src/main/java/com/qxueyou/scc/admin/score/dao/HomeworkScoreVDAO.java
+++ b/src/main/java/com/qxueyou/scc/admin/score/dao/HomeworkScoreVDAO.java
@@ -13,7 +13,7 @@
 
 		String hql = "select count(distinct id.homeworkId) from HomeworkScoreV where classId=?";
 
-		return this.findCount(hql, CollectionUtils.newList(classId));
+		return  this.findCount(hql, CollectionUtils.newList(classId));
 	}
 	
 	public int getHomeworkToAuditCount(String classId) {
diff --git a/src/main/java/com/qxueyou/scc/admin/score/service/impl/ScoreService.java b/src/main/java/com/qxueyou/scc/admin/score/service/impl/ScoreService.java
index b2fefea..7f47114 100644
--- a/src/main/java/com/qxueyou/scc/admin/score/service/impl/ScoreService.java
+++ b/src/main/java/com/qxueyou/scc/admin/score/service/impl/ScoreService.java
@@ -7,6 +7,7 @@
 import com.qxueyou.scc.exam.dao.ExamResultVDao;
 import com.qxueyou.scc.exam.model.ExamResultV;
 import com.qxueyou.scc.exercise.dao.ExerciseResultDAO;
+import com.qxueyou.scc.exercise.model.ExerciseRecord;
 import com.qxueyou.scc.exercise.model.ExerciseResultV;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -36,14 +37,42 @@
 	public Map<String,Object> queryClassExamScoreInfo(String classId) {
 
 		return CollectionUtils.newObjectMap(
-				"examCount",examDao.getExamCount(classId),
-				"examHasAuditCount",examDao.getExamCount(classId),
-				"examToAuditCount",0,
-				"examNoSubmitCount",examDao.getToSubmitExamCount(classId)
+				"examCount",examResultVDao.getExamCount(classId),//鑰冭瘯娆℃暟
+				"examHasAuditCount",getCommitExamCount(classId, Integer.parseInt(ExerciseRecord.STATUS_CHECK)),//宸叉壒闃�
+				"examToAuditCount",getCommitExamCount(classId, Integer.parseInt(ExerciseRecord.STATUS_SUBMIT)),//寰呮壒闃�
+				"examNoSubmitCount",getCommitExamCount(classId, Integer.parseInt(ExerciseRecord.STATUS_NOT_SUBMIT))//鏈彁浜�
 				);
 
 	}
 
+	public int getUnCommitExamCount(String classId) {
+		String sql = "SELECT c.exam_id, c.exam_name, c.exam_batch_Id, c.start_Time, c.end_Time, "
+				+ "c.class_id, d.exercise_Group_Id, d.score, d. STATUS FROM ( SELECT i.exam_Id, "
+				+ "i.exam_Name, b.exam_Batch_Id, b.start_Time,b.end_Time, r.class_Id FROM Exam_Info i, "
+				+ "Exam_Batch_Info b, Exam_Class_Re r WHERE i.exam_Id = b.exam_Id AND b.exam_Batch_Id "
+				+ "= r.exam_Batch_Id AND r.class_Id =:classId AND i.exam_status = 1 AND b.delete_Flag"
+				+ "= 0 AND r.delete_Flag = 0 ) c LEFT OUTER JOIN ( SELECT * FROM Exercise_Record "
+				+ "d WHERE d.delete_Flag = 0  ) d ON c.exam_Batch_Id = d.exam_Batch_Id "
+				+ "AND c.class_id = d.class_id where ifnull(d.status,0)= 0 and (c.end_Time - CURRENT_TIMESTAMP ()) < 0 ";
+		List<Object[]> list = findByComplexSql(sql, CollectionUtils.newObjectMap("classId", classId),
+				Object[].class);
+		return list.size();
+
+	}
+
+	public int getCommitExamCount(String classId,Integer status) {
+		String sql = "SELECT c.exam_id, c.exam_name, c.exam_batch_Id, c.start_Time, c.end_Time, "
+				+ "c.class_id, d.exercise_Group_Id, d.score, d. STATUS FROM ( SELECT i.exam_Id, "
+				+ "i.exam_Name, b.exam_Batch_Id, b.start_Time,b.end_Time, r.class_Id FROM Exam_Info i, "
+				+ "Exam_Batch_Info b, Exam_Class_Re r WHERE i.exam_Id = b.exam_Id AND b.exam_Batch_Id "
+				+ "= r.exam_Batch_Id AND r.class_Id =:classId AND i.exam_status = 1 AND b.delete_Flag"
+				+ "= 0 AND r.delete_Flag = 0 ) c LEFT OUTER JOIN ( SELECT * FROM Exercise_Record "
+				+ "d WHERE d.delete_Flag = 0 ) d ON c.exam_Batch_Id = d.exam_Batch_Id "
+				+ "AND c.class_id = d.class_id where d.status = :status ";
+		List<Object[]> list = findByComplexSql(sql, CollectionUtils.newObjectMap("classId", classId,"status",status),
+				Object[].class);
+		return list.size();
+	}
 	@Override
 	public Map<String,Object> queryClassHomeworkScoreInfo(String classId) {
 
diff --git a/src/main/java/com/qxueyou/scc/controller/ClassController.java b/src/main/java/com/qxueyou/scc/controller/ClassController.java
index 54fcd38..e755e93 100644
--- a/src/main/java/com/qxueyou/scc/controller/ClassController.java
+++ b/src/main/java/com/qxueyou/scc/controller/ClassController.java
@@ -8,6 +8,7 @@
 import java.util.List;
 import java.util.Map;
 
+import com.qxueyou.scc.teach.student.model.StuStudent;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -63,6 +64,21 @@
     @Autowired
     IClassLectureService clsLectureService;
 
+    /**
+     * 鑾峰彇姝e父鐝骇鍒楄〃
+     *
+     * @param keyword
+     * @param limit
+     * @param pageNum
+     * @return
+     */
+    @ApiOperation(value = "鑾峰彇瀛︾敓璇︽儏鎺ュ彛", notes = "")
+    @GetMapping(value = "/student/getStudentDetails")
+    public Result getStudentDetails() {
+
+        StuStudent stu = this.studentService.getStudentDetails(ClientUtils.getUserId());
+        return new Result(true, "success", stu);
+    }
     //---------------------------------------------------------------------------------app鎺ュ彛--------------------------------------------------------------------------------------------------------------------/
 
     /**
diff --git a/src/main/java/com/qxueyou/scc/controller/IndexController.java b/src/main/java/com/qxueyou/scc/controller/IndexController.java
index 73694c4..9158f6e 100644
--- a/src/main/java/com/qxueyou/scc/controller/IndexController.java
+++ b/src/main/java/com/qxueyou/scc/controller/IndexController.java
@@ -9,6 +9,8 @@
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
+import com.qxueyou.scc.admin.teacher.service.ITeacherService;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -35,7 +37,8 @@
 
 	@Autowired
 	IClassService classService;
-	
+	@Autowired
+	private ITeacherService teacherService;
 	@Value("${server.context-index}")
 	private String WEB_INDEX;
 	
@@ -49,14 +52,21 @@
 
 //		request.getSession().invalidate();
 //		ClientUtils.isAdmin()=true;
-		String teacherId = ClientUtils.isAdmin()?null:ClientUtils.getUserId();
-		
-		List<ClsClass> clsLst =  classService.getClassLst("",teacherId, 2000, 1, 1);
-		
+		//鍒ゆ柇鏄惁鏄暀甯�
+		String teacherId = ClientUtils.isAdmin() ? null : teacherService.getTeacherIdByUserId(ClientUtils.getUserId());
+
+		List<ClsClass> clsLst = new ArrayList<>();
+		if (StringUtils.isNotBlank(teacherId)) {
+			//鑾峰彇璇ヨ�佸笀涓嬪彂甯冪殑璇剧▼鐨勬墍灞炵彮绾�
+		 clsLst =  classService.getTeacherClassLst(teacherId);
+		}else{
+			//绠$悊鍛樻煡璇㈡墍鏈夌彮绾�
+			clsLst =classService.getClassLst("",teacherId, 2000, 1, 1);
+		}
 		List<Map<String,Object>> result = new ArrayList<Map<String,Object>>(clsLst.size()*2);
-		
 		for(ClsClass cls:clsLst) {
-			result.add(classService.getClassActivityInfo(cls.getClassId()));
+			Map<String, Object> classActivityInfo = classService.getClassActivityInfo(cls.getClassId());
+			result.add(classActivityInfo);
 		}
 		
 		return new Result(true,null,result);
diff --git a/src/main/java/com/qxueyou/scc/exam/dao/ExamResultVDao.java b/src/main/java/com/qxueyou/scc/exam/dao/ExamResultVDao.java
index cfc4134..04a4ca9 100644
--- a/src/main/java/com/qxueyou/scc/exam/dao/ExamResultVDao.java
+++ b/src/main/java/com/qxueyou/scc/exam/dao/ExamResultVDao.java
@@ -16,5 +16,12 @@
         return this.find(hql,CollectionUtils.newList(classId),ExamResultV.class);
     }
 
+    public int getExamCount(String classId) {
+        //id.
+        String hql = "select count(distinct examId) from ExamResultV where class_Id=?";
+
+        return this.findCount(hql, CollectionUtils.newList(classId));
+    }
+
 
 }
diff --git a/src/main/java/com/qxueyou/scc/operation/topic/action/StuTopicController.java b/src/main/java/com/qxueyou/scc/operation/topic/action/StuTopicController.java
index 28f4dfd..4fdccd4 100644
--- a/src/main/java/com/qxueyou/scc/operation/topic/action/StuTopicController.java
+++ b/src/main/java/com/qxueyou/scc/operation/topic/action/StuTopicController.java
@@ -1,6 +1,7 @@
 
 package com.qxueyou.scc.operation.topic.action;
 
+import com.qxueyou.scc.Sensitive.SensitiveFilterService;
 import com.qxueyou.scc.Sensitive.SensitiveWordFilter;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -355,9 +356,11 @@
 	@GetMapping(value = "addComment")
 	public Result addComment(String content, String commentObjectId, String commentParentId, String commentedId,
 			String commentedName) {
-		SensitiveWordFilter.loadWordFromFile("D:\\宸ヤ綔\\SensitiveWord\\SensitiveWordList.txt");
-		String filter = SensitiveWordFilter.Filter(content);
-		return topicService.addComment(filter, commentObjectId, commentParentId, commentedId, commentedName);
+//		SensitiveWordFilter.loadWordFromFile("C:\\Users\\Administrator\\Desktop\\SensitiveWordList.txt");
+//		String filter = SensitiveWordFilter.Filter(content);
+		SensitiveFilterService filter = SensitiveFilterService.getInstance();
+		String filterContentHou = filter.replaceSensitiveWord(content, 1, "*");
+		return topicService.addComment(filterContentHou, commentObjectId, commentParentId, commentedId, commentedName);
 	}
 
 	/**
diff --git a/src/main/java/com/qxueyou/scc/teach/student/service/IStudentService.java b/src/main/java/com/qxueyou/scc/teach/student/service/IStudentService.java
index f1f6b86..36f0386 100644
--- a/src/main/java/com/qxueyou/scc/teach/student/service/IStudentService.java
+++ b/src/main/java/com/qxueyou/scc/teach/student/service/IStudentService.java
@@ -109,4 +109,5 @@
 
 	StuStudent getStudentByNo(String studentNo);
 
+	StuStudent getStudentDetails(String userId);
 }
diff --git a/src/main/java/com/qxueyou/scc/teach/student/service/impl/StudentService.java b/src/main/java/com/qxueyou/scc/teach/student/service/impl/StudentService.java
index b8f5223..cebc39c 100644
--- a/src/main/java/com/qxueyou/scc/teach/student/service/impl/StudentService.java
+++ b/src/main/java/com/qxueyou/scc/teach/student/service/impl/StudentService.java
@@ -358,6 +358,12 @@
     public StuStudent getStudentByNo(String studentNo) {
         return this.findUnique("from StuStudent where studentNo=? ", CollectionUtils.newList(studentNo), StuStudent.class);
     }
+
+    @Override
+    public StuStudent getStudentDetails(String userId) {
+          return this.findUnique("from StuStudent where  deleteFlag is false and userId=?  ", CollectionUtils.newList(userId), StuStudent.class);
+    }
+
     @Override
     public List<StuStudent> getStudentByclassId(String classId) {
         QStuStudent qClassStudent=QStuStudent.stuStudent;
diff --git a/src/main/resources/SensitiveWordList.txt b/src/main/resources/SensitiveWordList.txt
index 9e19b1d..5b4bf4d 100644
--- a/src/main/resources/SensitiveWordList.txt
+++ b/src/main/resources/SensitiveWordList.txt
@@ -14594,3 +14594,4 @@
 涓嬩笁鐖�
 瀹㈡埛鏈嶅姟
 鍏嶈垂灏忔帆铏�
+鍌婚��
\ No newline at end of file

--
Gitblit v1.8.0