From 8d0e57a64fe6c31559ffcf38859fb1f5084e1e23 Mon Sep 17 00:00:00 2001 From: Administrator <2863138610@qq.com> Date: 星期一, 21 十一月 2022 11:09:20 +0800 Subject: [PATCH] 课程管理学习端修改And用户信息缓存修改 --- src/main/java/com/qxueyou/scc/admin/progress/service/IProgressService.java | 12 src/main/java/com/qxueyou/scc/sys/action/LoginController.java | 13 + src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureDocProgressService.java | 14 src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java | 20 +- src/main/java/com/qxueyou/scc/admin/progress/service/impl/StudyProgressUtils.java | 32 +- src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectLectureService.java | 17 + src/main/java/com/qxueyou/scc/admin/progress/model/SubjectLectureProgressDetail.java | 18 +- src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java | 103 +++++----- src/main/java/com/qxueyou/scc/base/util/ClientUtils.java | 42 +++- src/main/java/com/qxueyou/scc/controller/CoursewareController.java | 40 ++-- src/main/java/com/qxueyou/scc/sys/utils/SpringContextHolder.java | 76 ++++++++ src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/SubjectProgressService.java | 2 src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClassLectureService.java | 18 + src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/ChapterProgressService.java | 2 src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java | 32 +- target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst | 5 src/main/java/com/qxueyou/scc/admin/progress/service/impl/ProgressService.java | 4 src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectService.java | 9 src/main/java/com/qxueyou/scc/admin/progress/dao/ProgressDAO.java | 20 +- src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/ClassProgressService.java | 2 src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureVideoProgressService.java | 12 src/main/java/com/qxueyou/scc/admin/progress/service/IDetailProgressService.java | 6 22 files changed, 315 insertions(+), 184 deletions(-) diff --git a/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClassLectureService.java b/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClassLectureService.java index 0e48283..09a8854 100644 --- a/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClassLectureService.java +++ b/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClassLectureService.java @@ -95,20 +95,22 @@ @Override public List<MyLectureV> listLectureV(String learnerId, String chapterId, String keyword, Integer pageSize, Integer pageNum, String type) { - StringBuffer hql1 = new StringBuffer("from MyLectureV where subjectId=? and id.userId=?"); - List<Object> args1 = CollectionUtils.newList(chapterId, learnerId); - List<MyLectureV> myLectureVList = findList(hql1.toString(), new Pager(pageSize, pageNum), args1, MyLectureV.class); + StringBuffer hql = new StringBuffer("from MyLectureV where subjectId=? and id.userId=?"); + List<Object> args = CollectionUtils.newList(chapterId, learnerId); + List<MyLectureV> myLectureVList = findList(hql.toString(), new Pager(pageSize, pageNum), args, MyLectureV.class); - StringBuffer hql = new StringBuffer("from MyLectureV where chapterId=? and id.userId=? order by lectureCreateTime desc"); - List<Object> args = CollectionUtils.newList(myLectureVList.get(0).getChapterId(), learnerId); + if(myLectureVList.size() < 1){ + + }else { + hql = new StringBuffer("from MyLectureV where chapterId=? and id.userId=? order by lectureCreateTime desc"); + args = CollectionUtils.newList(myLectureVList.get(0).getChapterId(), learnerId); + } if (StringUtils.isNotEmpty(type)) { hql.append(" and lectureType=?"); args.add(type); } - List<MyLectureV> result = findList(hql.toString(), new Pager(pageSize, pageNum), args, MyLectureV.class); - return result; } @@ -565,7 +567,7 @@ @Override public Result doStudy(String clsLectureId, Double from, Double to) { - return progressService.addProgress(Progress.PROGRESS_TYPE_LECTURE, clsLectureId, from.intValue(), to.intValue(), + return progressService.addProgress(Progress.PROGRESS_TYPE_LECTURE, clsLectureId, from.doubleValue(), to.doubleValue(), ClientUtils.getUserId()); } diff --git a/src/main/java/com/qxueyou/scc/admin/progress/dao/ProgressDAO.java b/src/main/java/com/qxueyou/scc/admin/progress/dao/ProgressDAO.java index 9702edb..e51010d 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/dao/ProgressDAO.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/dao/ProgressDAO.java @@ -30,7 +30,7 @@ /** * 根据targetId和learnerId获取进度 - * + * * @param targetId * targetId * @param learnerId @@ -38,29 +38,29 @@ * @return */ @Cacheable(value = "progress", key = "#targetId+#learnerId") - public int[][] getProgress(String targetId, String learnerId) { + public Double[][] getProgress(String targetId, String learnerId) { List<SubjectLectureProgressDetail> lstDetail = this.find("from SubjectLectureProgressDetail where targetId = ? and learnerId = ? and deleteFlag is false", CollectionUtils.newList(targetId, learnerId), SubjectLectureProgressDetail.class); if(lstDetail == null || lstDetail.isEmpty()) { - return new int[][] {}; + return new Double[][] {}; }else { - int[][] progress = new int[lstDetail.size()][2]; + Double[][] progress = new Double[lstDetail.size()][2]; int i = 0; for(SubjectLectureProgressDetail objDetail : lstDetail) { - progress[i++] = new int[] {objDetail.getStart(), objDetail.getEnd()}; + progress[i++] = new Double[] {objDetail.getStart(), objDetail.getEnd()}; } - + return progress; } } @CachePut(value = "progress", key = "#targetId+#learnerId") - public int[][] mergeProgress(String targetId, String learnerId, int start, int end, int[][] origProgress) { + public Double[][] mergeProgress(String targetId, String learnerId, Double start, Double end, Double[][] origProgress) { return StudyProgressUtils.merge(origProgress, start, end); } /** * 获取学生的各个节点的学习进度,进度值 - * + * * @param parentId * @param userId * @return @@ -76,7 +76,7 @@ /** * 获取当前节点下的父节点 - * + * * @param nodeId * @return */ @@ -89,7 +89,7 @@ /** * 根据subjectId获取章节列表 - * + * * @param parentId * @param userId * @return diff --git a/src/main/java/com/qxueyou/scc/admin/progress/model/SubjectLectureProgressDetail.java b/src/main/java/com/qxueyou/scc/admin/progress/model/SubjectLectureProgressDetail.java index 7b3a8db..ea48602 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/model/SubjectLectureProgressDetail.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/model/SubjectLectureProgressDetail.java @@ -19,7 +19,7 @@ /** * 学习进度明细 - * + * * @author sven * */ @@ -30,8 +30,8 @@ private static final long serialVersionUID = -1565188126862586738L; private String detailId; private String progressId; - private int start; - private int end; + private Double start; + private Double end; private String learnerId; private String targetId; private Date createTime; @@ -41,8 +41,8 @@ private String updator; private String updateId; private boolean deleteFlag; - - + + public SubjectLectureProgressDetail() { } @@ -55,25 +55,25 @@ this.progressId = progressId; } - public int getStart() { + public Double getStart() { return start; } - public void setStart(int start) { + public void setStart(Double start) { this.start = start; } - public int getEnd() { + public Double getEnd() { return end; } - public void setEnd(int end) { + public void setEnd(Double end) { this.end = end; } diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/IDetailProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/IDetailProgressService.java index 20cbc47..41ac6b4 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/IDetailProgressService.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/IDetailProgressService.java @@ -3,7 +3,7 @@ import com.qxueyou.scc.base.model.Result; public interface IDetailProgressService { - + /** * 新增学习记录 * @param type 进度类型 @@ -13,8 +13,8 @@ * @param end 学习结束位置 * @return */ - Result addProgress(String targetId,String learnerId,int start,int end); - + Result addProgress(String targetId,String learnerId,Double start,Double end); + /** * 返回进度类型 * @return diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/IProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/IProgressService.java index a85b5cf..1dd400f 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/IProgressService.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/IProgressService.java @@ -10,21 +10,21 @@ /** * 查询学习进度 - * + * * @return */ List<Progress> query(String type, String learnerId, List<String> targetId); /** * 查询学习进度 - * + * * @return */ List<Progress> query(String type, List<String> learnerId, String targetId); /** * 查询学习记录 - * + * * @param type * 进度类型 * @param targetId @@ -37,7 +37,7 @@ /** * 新增学习记录 - * + * * @param type * 进度类型 * @param targetId @@ -48,8 +48,8 @@ * 学习结束位置 * @return */ - Result addProgress(String type, String targetId, int start, int end, String userId); - + Result addProgress(String type, String targetId, Double start, Double end, String userId); + List<SubjectProgressTreeV> getSubjectChapterTreeVList(String parentId,String userId); } diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/ProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/ProgressService.java index 3089db1..d3a44a8 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/ProgressService.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/ProgressService.java @@ -84,7 +84,7 @@ } @Override - public Result addProgress(String type, String targetId, int start, int end, String userId) { + public Result addProgress(String type, String targetId, Double start, Double end, String userId) { String userId_ = StringUtils.isBlank(userId) ? ClientUtils.getUserId() : userId; return resItemServiceMap.get(type).addProgress(targetId, userId_, start, end); } @@ -109,7 +109,7 @@ BigDecimal progressValue = new BigDecimal(itemProgress.get("progressValue").toString()); if (progress == null) { String nodeType = subjectProgressTreeV.getNodeType(); - this.addProgress(nodeType, nodeId, 0, 0, userId); + this.addProgress(nodeType, nodeId, 0.0, 0.0, userId); cacheService.lstRightPush(SUBJECT_PROGRESS_STATISTIC, nodeIdOrUserId); return; } diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/StudyProgressUtils.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/StudyProgressUtils.java index 9caad71..90e5d02 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/StudyProgressUtils.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/StudyProgressUtils.java @@ -3,7 +3,7 @@ /** * 学习进度工具计算类 - * + * * @author xiadehu * */ @@ -32,7 +32,7 @@ /** * 合并学习进度 - * + * * @param orig * 已学习进度 * @param start @@ -41,10 +41,10 @@ * 结束位置 * @return */ - public static int[][] merge(int[][] orig, int start, int end) { + public static Double[][] merge(Double[][] orig, Double start, Double end) { // 中间合并结果 - int[][] result = new int[orig.length + 1][2]; + Double[][] result = new Double[orig.length + 1][2]; int j = 0; int i = 0; @@ -57,13 +57,13 @@ switch (action) { case ACTION_INSERT: { - result[j++] = new int[] { start, end }; + result[j++] = new Double[] { start, end }; result[j++] = orig[i]; breakFlag = true; break; } case ACTION_MERGE_01: { - result[j++] = new int[] { start, orig[i][1] }; + result[j++] = new Double[] { start, orig[i][1] }; breakFlag = true; break; } @@ -95,12 +95,14 @@ } // 如果本次学习终止位置超出以往所有学习进度,则添加到最后 - if (orig.length == 0 || pos(end, orig[orig.length - 1]) == POS_AFTER) { - result[j++] = new int[] { start, end }; + if (orig.length == 0 ) { + result[j++] = new Double[] { start, end }; + }else if(pos(end, orig[orig.length - 1]) == POS_AFTER){ + result[j++] = new Double[] { start, end }; } // 最终合并结果,去掉中间合并结果的多出为空的元素 - int[][] finalResult = new int[j][2]; + Double[][] finalResult = new Double[j][2]; for (int k = 0; k < result.length; k++) { if (result[k][0] == 0 && result[k][1] == 0 && k>0) { @@ -115,23 +117,23 @@ /** * 统计学习进度 - * + * * @param orig * 全部学习进度 * @return */ - public static int sum(int[][] orig) { + public static Double sum(Double[][] orig) { - int sum = 0; + Double sum = 0.0; - for (int[] item : orig) { + for (Double[] item : orig) { sum += (item[1] - item[0] + 1); } return sum; } - private static int action(int[] segment, int start, int end) { + private static int action(Double[] segment, Double start, Double end) { int startPos = pos(start, segment); int endPos = pos(end, segment); @@ -163,7 +165,7 @@ } - private static int pos(int index, int[] range) { + private static int pos(Double index, Double[] range) { if (index < range[0]) { return POS_BEFORE; } diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/ChapterProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/ChapterProgressService.java index 073637e..5ca3a11 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/ChapterProgressService.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/ChapterProgressService.java @@ -15,7 +15,7 @@ public class ChapterProgressService extends CommonAppService implements IDetailProgressService { @Override - public Result addProgress(String targetId, String learnerId, int start, int end) { + public Result addProgress(String targetId, String learnerId, Double start, Double end) { Progress p = new Progress(); TraceUtils.setCreateTrace(p); p.setLearnerId(learnerId); diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/ClassProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/ClassProgressService.java index 8135abd..0b53d63 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/ClassProgressService.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/ClassProgressService.java @@ -15,7 +15,7 @@ public class ClassProgressService extends CommonAppService implements IDetailProgressService { @Override - public Result addProgress(String targetId, String learnerId, int start, int end) { + public Result addProgress(String targetId, String learnerId, Double start, Double end) { Progress p = new Progress(); TraceUtils.setCreateTrace(p); p.setLearnerId(learnerId); diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java index f447c80..5e41983 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java @@ -19,15 +19,15 @@ @Service("LectureProgressService") public class LectureProgressService extends CommonAppService implements IDetailProgressService { - + @Autowired IClassLectureService lectureService; - + /** * 各类型课件进度服务实现 */ private Map<String, IDetailProgressService> resItemServiceMap = new HashMap<String, IDetailProgressService>(6); - + @Autowired private ApplicationContext appContext; @@ -37,27 +37,27 @@ addLectureProgressService(appContext.getBean("LectureAudioProgressService",IDetailProgressService.class)); addLectureProgressService(appContext.getBean("LectureDocProgressService",IDetailProgressService.class)); } - + private void addLectureProgressService(IDetailProgressService service) { resItemServiceMap.put(service.getType(), service); } - + @Override - public Result addProgress(String targetId,String learnerId, int start, int end) { + public Result addProgress(String targetId,String learnerId, Double start, Double end) { ClsSubjectLecture lecture = lectureService.readClsLecture(targetId); - + String lectureType = null; if(lecture == null) { lectureType = this.read(SubjectLecture.class, targetId).getLectureType(); }else { lectureType = lecture.getLectureType(); } - + return resItemServiceMap.get(lectureType).addProgress(targetId, learnerId, start, end); - + } - + @Override public String getType() { return Progress.PROGRESS_TYPE_LECTURE; diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/SubjectProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/SubjectProgressService.java index 652dea4..0263098 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/SubjectProgressService.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/SubjectProgressService.java @@ -15,7 +15,7 @@ public class SubjectProgressService extends CommonAppService implements IDetailProgressService { @Override - public Result addProgress(String targetId, String learnerId, int start, int end) { + public Result addProgress(String targetId, String learnerId, Double start, Double end) { Progress p = new Progress(); TraceUtils.setCreateTrace(p); p.setLearnerId(learnerId); diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java index eb463b0..6257600 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java @@ -29,19 +29,19 @@ ProgressDAO dao; @Override - public Result addProgress(String targetId, String learnerId, int start, int end) { + public Result addProgress(String targetId, String learnerId, Double start, Double end) { if (start > end || start < 0 || end < 0) { return new Result(false, "invalid arguments"); } - int[][] progress = dao.mergeProgress(targetId, learnerId, start, end , dao.getProgress(targetId, learnerId)); + Double[][] progress = dao.mergeProgress(targetId, learnerId, start, end , dao.getProgress(targetId, learnerId)); if (!checkLecture(targetId).isSuccess()) { return checkLecture(targetId); } - int sum = StudyProgressUtils.sum(progress); + Double sum = StudyProgressUtils.sum(progress); Progress p = dao.getProgress(Progress.PROGRESS_TYPE_LECTURE, targetId, learnerId); @@ -50,7 +50,7 @@ } else { updateProgress(targetId, p, sum); } - + //保存学习记录明细 this.saveProgressDetail(start, end, targetId, p.getProgressId(), learnerId); @@ -67,17 +67,17 @@ protected Result checkLecture(String targetId) { return new Result(true); } - + /** * 保存学习记录明细 - * + * * @param start * @param end * @param targetId * @param progressId * @param learnerId */ - private void saveProgressDetail(int start, int end, String targetId, String progressId, String learnerId) { + private void saveProgressDetail(Double start, Double end, String targetId, String progressId, String learnerId) { SubjectLectureProgressDetail detail = new SubjectLectureProgressDetail(); detail.setDeleteFlag(false); detail.setEnd(end); @@ -85,20 +85,20 @@ detail.setTargetId(targetId); detail.setProgressId(progressId); detail.setLearnerId(learnerId); - + TraceUtils.setCreateTrace(detail); - + this.save(detail); } /** * 获取进度百分比 - * + * * @param targetId * @param sum * @return */ - protected double getProgressPercent(String targetId, int sum) { + protected double getProgressPercent(String targetId, Double sum) { return 1.00d; } @@ -107,17 +107,17 @@ return Progress.PROGRESS_TYPE_LECTURE; } - protected void updateProgress(String targetId, Progress p, int sum) { + protected void updateProgress(String targetId, Progress p, Double sum) { TraceUtils.setUpdateTrace(p); - p.setProgressValue(BigDecimal.valueOf(Long.valueOf(sum))); + p.setProgressValue(BigDecimal.valueOf(Double.valueOf(sum))); p.setProgressPercent(1d); save(p); } - protected Progress newProgress(String targetId, String learnerId, int sum) { + protected Progress newProgress(String targetId, String learnerId, Double sum) { Progress p = new Progress(); TraceUtils.setCreateTrace(p); @@ -125,12 +125,12 @@ p.setLearnerId(learnerId); p.setLearnerName(ClientUtils.getUserName()); p.setProgressUnit("s"); - p.setProgressValue(BigDecimal.valueOf(Long.valueOf(sum))); + p.setProgressValue(BigDecimal.valueOf(Double.valueOf(sum))); p.setTargetId(targetId); p.setType(Progress.PROGRESS_TYPE_LECTURE); p.setProgressPercent(1d); save(p); - + return p; } diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureDocProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureDocProgressService.java index a743f45..bc19ac7 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureDocProgressService.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureDocProgressService.java @@ -25,13 +25,13 @@ /** * 获取进度百分比 - * + * * @param targetId * @param sum * @return */ @Override - public double getProgressPercent(String targetId, int sum) { + public double getProgressPercent(String targetId, Double sum) { LectureDocV LectureDoc = lectureService.readDocLecture(targetId); @@ -39,7 +39,7 @@ } @Override - public Progress newProgress(String targetId, String learnerId, int sum) { + public Progress newProgress(String targetId, String learnerId, Double sum) { Progress p = new Progress(); TraceUtils.setCreateTrace(p); @@ -47,21 +47,21 @@ p.setLearnerId(learnerId); p.setLearnerName(ClientUtils.getUserName()); p.setProgressUnit("s"); - p.setProgressValue(BigDecimal.valueOf(Long.valueOf(sum))); + p.setProgressValue(BigDecimal.valueOf(Double.valueOf(sum))); p.setTargetId(targetId); p.setType(Progress.PROGRESS_TYPE_LECTURE); p.setProgressPercent(getProgressPercent(targetId, sum)); save(p); - + return p; } @Override - public void updateProgress(String targetId, Progress p, int sum) { + public void updateProgress(String targetId, Progress p, Double sum) { TraceUtils.setUpdateTrace(p); - p.setProgressValue(BigDecimal.valueOf(Long.valueOf(sum))); + p.setProgressValue(BigDecimal.valueOf(Double.valueOf(sum))); if(p.getProgressPercent() == null || getProgressPercent(targetId, sum)>p.getProgressPercent()) { p.setProgressPercent(getProgressPercent(targetId, sum)); } diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureVideoProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureVideoProgressService.java index 5b507a7..d3a7745 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureVideoProgressService.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureVideoProgressService.java @@ -25,7 +25,7 @@ /** * 获取进度百分比 - * + * * @param targetId * @param sum * @return @@ -38,7 +38,7 @@ } @Override - public Progress newProgress(String targetId, String learnerId, int sum) { + public Progress newProgress(String targetId, String learnerId, Double sum) { Progress p = new Progress(); TraceUtils.setCreateTrace(p); @@ -46,21 +46,21 @@ p.setLearnerId(learnerId); p.setLearnerName(ClientUtils.getUserName()); p.setProgressUnit("s"); - p.setProgressValue(BigDecimal.valueOf(Long.valueOf(sum))); + p.setProgressValue(BigDecimal.valueOf(Double.valueOf(sum))); p.setTargetId(targetId); p.setType(Progress.PROGRESS_TYPE_LECTURE); p.setProgressPercent(getProgressPercent(targetId, sum)); save(p); - + return p; } @Override - public void updateProgress(String targetId, Progress p, int sum) { + public void updateProgress(String targetId, Progress p, Double sum) { TraceUtils.setUpdateTrace(p); - p.setProgressValue(BigDecimal.valueOf(Long.valueOf(sum))); + p.setProgressValue(BigDecimal.valueOf(Double.valueOf(sum))); if(p.getProgressPercent() == null || getProgressPercent(targetId, sum)>p.getProgressPercent()) { p.setProgressPercent(getProgressPercent(targetId, sum)); } diff --git a/src/main/java/com/qxueyou/scc/base/util/ClientUtils.java b/src/main/java/com/qxueyou/scc/base/util/ClientUtils.java index ca4ad36..42adb45 100644 --- a/src/main/java/com/qxueyou/scc/base/util/ClientUtils.java +++ b/src/main/java/com/qxueyou/scc/base/util/ClientUtils.java @@ -3,7 +3,11 @@ import java.util.List; import java.util.Map; +import com.qxueyou.scc.base.dao.AbstractRedisTemplate; +import com.qxueyou.scc.base.dao.CommonRedisTemplate; import com.qxueyou.scc.base.model.UserInfoWrapper; +import com.qxueyou.scc.base.service.impl.RedisCacheBean; +import com.qxueyou.scc.sys.utils.SpringContextHolder; import org.apache.commons.lang3.StringUtils; import com.qxueyou.scc.base.model.Constants; @@ -11,9 +15,17 @@ import com.qxueyou.scc.sys.model.ResponseResult; import com.qxueyou.scc.sys.model.SysMenu; import com.qxueyou.scc.user.model.User; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.cache.RedisCache; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.core.RedisAccessor; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Repository; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @@ -32,18 +44,26 @@ private static ThreadLocal<UserInfoWrapper> threadLocalUserInfo = new ThreadLocal<UserInfoWrapper>(); private static UserInfoWrapper wrapper = threadLocalUserInfo.get(); + private static RedisTemplate redisTemplate = (RedisTemplate)SpringContextHolder.getBean("redisTemplate"); + /** 得到用户信息*/ public static UserInfoWrapper getUserInfo() { - UserInfoWrapper wrapper = threadLocalUserInfo.get(); - if(wrapper == null){ - wrapper = new UserInfoWrapper(); - User user = new User(); - //默认值,上传可以作为默认上传者 - user.setUserId(Constants.VISITOR_USER_ID); - user.setName(Constants.VISITOR_USER_ID); - wrapper.setUser(user); - setUserInfo(wrapper); - } +// UserInfoWrapper wrapper = threadLocalUserInfo.get(); +// if(wrapper == null) { + wrapper = (UserInfoWrapper)redisTemplate.opsForValue().get(UserInfoWrapper.SESSION_USER_INFO_KEY); + if (wrapper == null) { + wrapper = new UserInfoWrapper(); + User user = new User(); + //默认值,上传可以作为默认上传者 + user.setUserId(Constants.VISITOR_USER_ID); + user.setName(Constants.VISITOR_USER_ID); + wrapper.setUser(user); + setUserInfo(wrapper); + } +// } +// else{ +// redisTemplate.opsForValue().set(UserInfoWrapper.SESSION_USER_INFO_KEY,wrapper); +// } return wrapper; } @@ -62,8 +82,6 @@ String info = getUserInfo().getInfo(UserInfoWrapper.INF_USER_ID); if(info.equals("visitor_001")){ info= (String) session.getAttribute(UserInfoWrapper.INF_USER_ID); - }else { - session.setAttribute(UserInfoWrapper.INF_USER_ID,info); } return info; } diff --git a/src/main/java/com/qxueyou/scc/controller/CoursewareController.java b/src/main/java/com/qxueyou/scc/controller/CoursewareController.java index 81b356a..0e80ceb 100644 --- a/src/main/java/com/qxueyou/scc/controller/CoursewareController.java +++ b/src/main/java/com/qxueyou/scc/controller/CoursewareController.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Map; +import com.qxueyou.scc.admin.classes.service.IClassLectureService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -31,7 +32,7 @@ /** * 课件控制器 - * + * * @author chenjunliang * */ @@ -44,6 +45,9 @@ ILectureService lectureService; @Autowired + IClassLectureService classLectureService; + + @Autowired IResService resService; @Autowired @@ -51,7 +55,7 @@ /** * 加载课件tree - * + * * @param parentId * 父节点id */ @@ -66,7 +70,7 @@ /** * 获取课件列表 - * + * * @param chapterId * 章节id * @param type @@ -97,7 +101,7 @@ /** * 查看课件 - * + * * @param id * 课件id * @param attribute @@ -122,7 +126,7 @@ /** * 删除课件 - * + * * @param id * 课件ids */ @@ -135,7 +139,7 @@ /** * 课件的复制 - * + * * @param id * 课件id * @param type @@ -156,7 +160,7 @@ /** * 课件的移动 - * + * * @param id * 课件id * @param type @@ -175,7 +179,7 @@ /** * 课件管理 新增下级,同级 - * + * * @param type * (add:新增,edit :编辑) * @param chapterId @@ -186,7 +190,7 @@ * 名称 * @param childFlag * 是否操作下级 - * + * */ @PostMapping(value = "addOrUpdateChapter") public Result addOrUpdateChapter(String type, String name, String chapterId, String subjectId, boolean childFlag) { @@ -204,7 +208,7 @@ /** * 课件管理 目录删除 - * + * * @param chapterId * 目录id */ @@ -215,7 +219,7 @@ /** * 添加/更新(视频,讲义,音频) - * + * * @param name * 名称 * @param coverUrl @@ -256,7 +260,7 @@ /** * 编辑 获取内容 - * + * * @param id * 课件id */ @@ -275,7 +279,7 @@ /** * 课件获取资源列表 - * + * * @param dirId * 目录Id * @param limit @@ -298,12 +302,12 @@ /** * 课件从资源选择后保存 - * + * * @param resId * 资源文件id * @param sectionId * 小节id - * + * */ @GetMapping(value = "saveCourseware4Res") public Result saveCourseware4Res(String resId, String sectionId) { @@ -321,7 +325,7 @@ /** * 获取练习成绩列表 - * + * * @param subjectId * 课程id * @param exerciseId @@ -330,7 +334,7 @@ * 每页显示几条 * @param pageNum * 页码 - * + * */ @GetMapping(value = "lstExerciseScore") public Result lstExerciseScore(String subjectId, String exerciseId, Integer pageSize, Integer pageNum) { @@ -349,7 +353,7 @@ /** * 练习成绩的导出 - * + * * @param subjectId * 课程id * @param exerciseId练习id diff --git a/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java b/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java index df8746e..fe85608 100644 --- a/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java +++ b/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java @@ -39,7 +39,7 @@ /** * 学习端 课程前端控制器 - * + * * @author chenjunliang * */ @@ -63,17 +63,17 @@ @Autowired ProgressDAO progressDao; - + @Autowired ITopicService topicService; - + @Autowired IEvaluateService evaluateService; - + //--------------------------------------------------------------app端接口--------------------------------------------------------------------------------------------------- /** * 学习端获取 所有课件 - * + * * @param classId * @return 状态说明(0,视频。1,音频。2,文档。3,练习。) */ @@ -87,11 +87,11 @@ System.out.println(classId); return clsLectureService.listSubjectLecture(CommonUtils.getClassId(classId), sort, pager); } - + /** - * + * * 学习端获取课程列表 - * + * */ @ApiOperation(value = "学习端获取课程学年列表") @ApiImplicitParams({ @@ -107,14 +107,14 @@ List<Map<String, Object>> lstSubject = subjectService.clsSubjectlist(classId, null, null); //组装的学期和课程 List<Map<String, Object>> lstTerm = subjectService.termSubjectList(classId, lstSubject); - + return new Result(true, "success",CollectionUtils.newObjectMap("termList", lstTerm, "allSubject", lstSubject)); } - + /** - * + * * 学习端获取课程列表 - * + * */ @ApiOperation(value = "我的课程按学期分类") @ApiImplicitParams({ @@ -129,11 +129,11 @@ } return new Result(true, "success",subjectService.myTermSubjectList(classId)); } - + /** - * + * * 学习端获取课程列表 - * + * */ @ApiOperation(value = "我的课程按时间排序") @ApiImplicitParams({ @@ -147,10 +147,10 @@ return new Result(true, "success", CollectionUtils.newObjectMap("count", count, "listData", subjectService.mySubjectList(classId, pager))); } - + /** * 我的课程详情 - * + * * @param subjectId * @param classId * @return @@ -171,11 +171,11 @@ } return new Result(true, "success", subjectService.mySubjectInfo(subjectId, classId)); } - + /** - * + * * 学习端获取课程列表 - * + * */ @ApiOperation(value = "我的班级信息") @ApiImplicitParams({ @@ -189,11 +189,11 @@ } return new Result(true, "success",subjectService.myClassInfo(classId)); } - + /** - * + * * 学习端获取课程列表 - * + * */ @ApiOperation(value = "学习端获取课程列表") @ApiImplicitParams({ @@ -205,11 +205,11 @@ public Result subjectList(String classId, Integer schoolYear, Integer term) { return new Result(true, "success",subjectService.clsSubjectlist(CommonUtils.getClassId(classId), schoolYear, term)); } - + /** - * + * * 学习端获取课程列表 - * + * */ @ApiOperation(value = "学习端获取课程下课件,按创建时间排序") @ApiImplicitParams({ @@ -220,11 +220,11 @@ public Result listLectureBySubject(String subjectId, String classId, @RequestParam(defaultValue="desc")String sort, Pager pager) { return new Result(true, "success",clsLectureService.listLectureBySubjectOrderCreateTime(subjectId, CommonUtils.getClassId(classId), sort, pager)); } - + /** - * + * * 学习端获取其他课件统计 - * + * */ @ApiOperation(value = "学习端获取其他课件统计") @GetMapping(value = "/app/otherLectureCount") @@ -232,11 +232,11 @@ return new Result(true, "success", CollectionUtils.newObjectMap("topicCount", topicService.getClassTopicCount(ClientUtils.getClassId()), "evaluate", this.evaluateService.queryStuEvaluateCount())); } - + /** - * + * * 学习端获取课程列表 - * + * */ @ApiOperation(value = "学习端获取课程下课件,按目录分类", notes = "") @ApiImplicitParams({ @@ -247,45 +247,45 @@ @GetMapping(value = "/app/coursewareList") public Result coursewareList(String classId,String subjectId, String type) { classId = CommonUtils.getClassId(classId); - + if(StringUtils.isEmpty(subjectId)) { return new Result(false, "课程id不能为空"); } - + return this.clsLectureService.coursewareChapterList(classId, subjectId, type); - + } - + /** * 我的公开课列表 - * + * */ @ApiOperation(value = "我的公开课列表", notes = "") @GetMapping(value = "/app/myOpenSubjectList") public Result myOpenSubjectList(Pager pager, @RequestParam(defaultValue = "")String keyword) { return new Result(true, "success", this.subjectService.myOpenSubjectList(pager.getOffset(), pager.getPageSize(), keyword)); } - + /** * 公开课列表 - * + * */ @ApiOperation(value = "公开课列表", notes = "") @GetMapping(value = "/app/openSubjectList") public Result openSubjectList(Pager pager, @RequestParam(defaultValue = "")String keyword) { return new Result(true, "success", this.subjectService.openSubjectList(pager.getOffset(), pager.getPageSize(), keyword)); } - + /** * 公开课详情 - * + * */ @ApiOperation(value = "公开课详情", notes = "") @GetMapping(value = "/app/openSubjectInfo") public Result openSubjectInfo(@RequestParam(defaultValue = "")String subjectId) { return new Result(true, "success", this.subjectService.openSubjectInfo(subjectId)); } - + //--------------------------------------------------------后台端接口--------------------------------------------------------------------------------------------------- /** @@ -303,14 +303,14 @@ for (SubjectProgressTreeV v : chapterLst) { v.setNodeName(v.getNodeName() + "(" + String.format("%.2f", v.getPercent()*100) + "%)"); //保留两位小数 } - + return new Result(true, "success", QBeanUtils.listBean2ListMap(chapterLst, CollectionUtils .newStringMap("nodeName", "name", "id.nodeId", "id", "parentId", "parentId", "percent", "percent"))); } - + /** * 学习端获取 所有课件 - * + * * @param classId * @return 状态说明(0,视频。1,音频。2,文档。3,练习。) */ @@ -331,7 +331,7 @@ /** * 获取课件列表 - * + * * @param chapterId * 章节id * @param type @@ -365,7 +365,7 @@ /** * 课件学习进度提交 stu/subject/study - * + * * @param lectureId * 课件id * @param from @@ -394,7 +394,7 @@ /** * 音频时长提交 stu/subject/submitAudioDuration - * + * * @param lectureId * 课件id * @param seconds @@ -417,7 +417,7 @@ /** * 课程列表 - * + * * @param clssId * 班级id * @param startTime @@ -431,6 +431,9 @@ @GetMapping(value = "getSubjectLst") public Result getList(String userId,String classId, String startTime, Integer limit, @RequestParam(defaultValue="1")Integer pageNum, HttpServletRequest request) { userId = StringUtils.isEmpty(userId)?ClientUtils.getUserId():userId; + if(userId == null || userId == ""){ + userId = ClientUtils.getUserId(); + } classId = StringUtils.isEmpty(classId)?ClientUtils.getClassId():classId; List<MySubjectV> result = subjectService.listMySubjectV(classId,userId); return new Result(true, "success", @@ -442,7 +445,7 @@ /** * 进入课程 - * + * * @param subjectId * 课程id */ diff --git a/src/main/java/com/qxueyou/scc/sys/action/LoginController.java b/src/main/java/com/qxueyou/scc/sys/action/LoginController.java index 7207676..917dbe2 100644 --- a/src/main/java/com/qxueyou/scc/sys/action/LoginController.java +++ b/src/main/java/com/qxueyou/scc/sys/action/LoginController.java @@ -3,6 +3,7 @@ import java.util.List; import java.util.Map; +import javax.annotation.Resource; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -13,6 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -85,6 +88,9 @@ @Autowired IStudentService studentService; + + @Resource + RedisTemplate redisTemplate; @Autowired private IOrganizationService organizationService; @@ -216,6 +222,7 @@ public void khdloginout(HttpServletRequest request, HttpServletResponse response) { System.out.println("清除session"); HttpSession session = request.getSession(); + redisTemplate.delete(UserInfoWrapper.SESSION_USER_INFO_KEY); System.out.println(session.getAttribute("userId")); System.out.println(session.getAttribute("classId")); session.invalidate(); @@ -255,7 +262,10 @@ param.setIp(RequestClientUtils.getRemoteIP(request)); // 缓存到请求线程 UserInfoWrapper wrapper = cacheUserInfo(param, null); + // 存到redis + redisTemplate.opsForValue().set(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper); request.getSession().setAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper); + return new Result(true, "success", CollectionUtils.newObjectMap("userId", user.getUserId(), "userName", user.getName(), "imgPath", user.getImgPath(), "orgName", ClientUtils.getOrgName(),"orgId", ClientUtils.getOrgId(), "orgLogo", @@ -358,6 +368,8 @@ param.setIp(RequestClientUtils.getRemoteIP(request)); // 缓存到请求线程 UserInfoWrapper wrapper = cacheUserInfo(param, null); + // 存到redis + redisTemplate.opsForValue().set(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper); request.getSession().setAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper); if ("study".equals(logType)) { /*if (StringUtils.isEmpty(ClientUtils.getClassId()) && user.getRoles() == null) { @@ -505,6 +517,7 @@ private void doRelease(HttpServletRequest httpRequest, HttpServletResponse response) { HttpSession se = httpRequest.getSession(); se.removeAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY); + redisTemplate.delete(UserInfoWrapper.SESSION_USER_INFO_KEY); se.invalidate(); } diff --git a/src/main/java/com/qxueyou/scc/sys/utils/SpringContextHolder.java b/src/main/java/com/qxueyou/scc/sys/utils/SpringContextHolder.java new file mode 100644 index 0000000..ca31083 --- /dev/null +++ b/src/main/java/com/qxueyou/scc/sys/utils/SpringContextHolder.java @@ -0,0 +1,76 @@ +package com.qxueyou.scc.sys.utils; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +import java.util.Map; + +@Component +public class SpringContextHolder implements ApplicationContextAware { + + /** + * 以静态变量保存ApplicationContext,可在任意代码中取出ApplicaitonContext. + */ + private static ApplicationContext context; + + /** + * 实现ApplicationContextAware接口的context注入函数, 将其存入静态变量. + */ + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + SpringContextHolder.context = applicationContext; + } + + /** + * 获取applicationContext + * @return + */ + public ApplicationContext getApplicationContext() { + return context; + } + + /** + * 通过name获取 Bean. + * @param name + * @return + */ + public static Object getBean(String name){ + return context.getBean(name); + } + + /** + * 通过class获取Bean. + * @param <T> + * @param clazz + * @return + */ + public static <T> Map<String, T> getBeans(Class<T> clazz){ + return context.getBeansOfType(clazz); + } + + /** + * 通过class获取Bean. + * @param clazz + * @param <T> + * @return + */ + public static <T> T getBean(Class<T> clazz){ + return context.getBean(clazz); + } + + /** + * 通过name,以及Clazz返回指定的Bean + * @param name + * @param clazz + * @param <T> + * @return + */ + public static <T> T getBean(String name, Class<T> clazz){ + return context.getBean(name, clazz); + } +} + + diff --git a/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectLectureService.java b/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectLectureService.java index 37b1585..9fc2b12 100644 --- a/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectLectureService.java +++ b/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectLectureService.java @@ -2,6 +2,7 @@ import java.util.List; +import com.qxueyou.scc.admin.classes.service.IClassLectureService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; @@ -47,6 +48,9 @@ @Autowired IProgressService progressService; + @Autowired + IClassLectureService clsLectureService; + @Override public Result addChapter(String subjectId, String parentChapterId, String name) { @@ -87,7 +91,7 @@ /** * 删除单个章节 - * + * * @param chapterId * 章节id * @return @@ -138,7 +142,7 @@ /** * 初始化 - * + * * @param subjectId * @return */ @@ -173,6 +177,7 @@ lecture.setRemark(res.getRemark()); lecture.setSubjectId(chapter.getSubjectId()); lecture.setResItemId(res.getResId()); + save(lecture); @@ -209,7 +214,7 @@ } /** - * + * * @param lectureId * 课件id * @return @@ -277,14 +282,14 @@ @Override public int listLectureCount(String chapterId, String keyword, String type) { StringBuffer hql = new StringBuffer("from SubjectLecture where chapterId=? and name like ? and deleteFlag is false"); - + List<Object> args = CollectionUtils.newList(chapterId,'%' + keyword.trim() + '%'); if (StringUtils.isNotEmpty(type)) { hql.append(" and lectureType=?"); args.add(type); } - + return findCount(hql.toString(),args); } @@ -365,7 +370,7 @@ @Override public Result doStudy(String lectureId, Double from, Double to) { String userId = null; - return progressService.addProgress(Progress.PROGRESS_TYPE_LECTURE, lectureId, from.intValue(), to.intValue(), + return progressService.addProgress(Progress.PROGRESS_TYPE_LECTURE, lectureId, from.doubleValue(), to.doubleValue(), userId); } diff --git a/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectService.java b/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectService.java index 1a79549..ab5edb5 100644 --- a/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectService.java +++ b/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectService.java @@ -108,6 +108,7 @@ @Autowired private IMediaLiveService mediaLiveService; + @Override public Result add(String subjectName,String coverPageFileId, String contentFileId,int type) { @@ -445,8 +446,8 @@ @Override public MySubjectV getMy1stSubjectVById(String subjectId) { String hql = "from MySubjectV p where p.id.userId=? and p.id.subjectId=?"; - - MySubjectV result = findUnique(hql, CollectionUtils.newList(ClientUtils.getUserId(), subjectId), + String UserId = ClientUtils.getUserId(); + MySubjectV result = findUnique(hql, CollectionUtils.newList(UserId, subjectId), MySubjectV.class); return result; @@ -522,8 +523,10 @@ //清理并复制原课程 clsLectureService.doClearLecturesToClass(classId,subjectId); clsLectureService.doCopyLecturesToClass(origSubjectId, subjectId, classId); + }else { + clsLectureService.doClearLecturesToClass(classId,subjectId); + clsLectureService.doCopyLecturesToClass(origSubjectId, subjectId, classId); } - TraceUtils.setUpdateTrace(subject); subject.setTeacherId(teacherId); subject.setTeacherName(teacher.getName()); diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index ae282df..f24321d 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -316,6 +316,7 @@ com\qxueyou\scc\base\dao\BaseDAO$2.class com\qxueyou\scc\teach\subject\dao\SubjectDAO.class com\qxueyou\scc\exercise\action\ExerciseDeepAnaController.class +com\qxueyou\scc\exam\dao\ExamResultVDao.class com\qxueyou\scc\exercise\service\impl\ExerciseGroupService$1.class com\qxueyou\scc\admin\score\dao\HomeworkScoreVDAO.class com\qxueyou\scc\operation\comment\mode\QSnsMyPraise.class @@ -382,6 +383,7 @@ com\qxueyou\scc\user\service\IUserService.class com\qxueyou\scc\sys\service\IPrivilegeService.class com\qxueyou\scc\school\model\SchClassCard.class +com\qxueyou\scc\admin\schoolRoll\ISchoolRollService.class com\qxueyou\scc\base\dao\ReidsSharedPoolWrapper.class com\qxueyou\scc\user\model\User.class com\qxueyou\scc\org\service\IOrganizationService.class @@ -534,6 +536,7 @@ com\qxueyou\scc\media\dao\MediaVideoDAO.class com\qxueyou\scc\school\model\StudentEvaCategory.class com\qxueyou\scc\stucontroller\StuExamController.class +com\qxueyou\scc\admin\schoolRoll\impl\SchoolRollServiceImpl.class com\qxueyou\scc\operation\topic\service\impl\TopicService.class com\qxueyou\scc\sys\service\ITestService.class com\qxueyou\scc\org\model\OrgCourseData.class @@ -566,6 +569,7 @@ com\qxueyou\scc\school\service\impl\SchoolDayService.class com\qxueyou\scc\user\model\QUserRole.class com\qxueyou\scc\school\service\IScoreChangeService.class +com\qxueyou\scc\controller\SchoolRollController.class com\qxueyou\scc\controller\EvaluateController.class com\qxueyou\scc\base\util\Base64Utils.class com\qxueyou\scc\base\util\TraceUtils.class @@ -782,6 +786,7 @@ com\qxueyou\scc\exercise\model\ExerciseExtendRecordData.class com\qxueyou\scc\school\service\impl\NoteService.class com\qxueyou\scc\exercise\model\QExerciseFaultBook.class +com\qxueyou\scc\admin\score\action\ScoreController.class com\qxueyou\scc\base\handler\QCacheRedis.class com\qxueyou\scc\school\model\QSchRankHis.class com\qxueyou\scc\school\dao\RankDAO.class -- Gitblit v1.8.0