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