mingfu 4 недель назад
Родитель
Сommit
740b0470f6

+ 1 - 1
ie-admin/src/main/java/com/ruoyi/web/controller/front/FrontPaperController.java

@@ -85,7 +85,7 @@ public class FrontPaperController {
         if(directed) {
         if(directed) {
             LearnStudent learnStudent = learnStudentService.selectLearnStudentByStudentId(sysUser.getUserId());
             LearnStudent learnStudent = learnStudentService.selectLearnStudentByStudentId(sysUser.getUserId());
             if(null != learnStudent) {
             if(null != learnStudent) {
-                knowledgeIdSet = learnTeacherService.getKnowledgeIdSet(learnStudent.getMajorPlanId(), dzControlService.selectDzControl(sysUser).getPlanYear(), sysUser.getExamType().name());
+                knowledgeIdSet = learnTeacherService.getKnowledgeIdSet(subjectId, learnStudent.getMajorPlanId(), dzControlService.selectDzControl(sysUser).getPlanYear(), sysUser.getExamType().name());
             }
             }
         }
         }
         List<LearnTeacherService.TreeNode> nodeList = learnTeacherService.getKnowledgeTree(sysUser.getExamType().title(), subjectId, knowledgeIdSet, sysUser.getUserId(), questionType);
         List<LearnTeacherService.TreeNode> nodeList = learnTeacherService.getKnowledgeTree(sysUser.getExamType().title(), subjectId, knowledgeIdSet, sysUser.getUserId(), questionType);

+ 1 - 1
ie-admin/src/main/java/com/ruoyi/web/controller/learn/LearnTeacherController.java

@@ -101,7 +101,7 @@ public class LearnTeacherController extends BaseController {
     {
     {
         Set<Long> knowledgeIdSet = null;
         Set<Long> knowledgeIdSet = null;
         if("ExactHand".equals(buildType)) {
         if("ExactHand".equals(buildType)) {
-            knowledgeIdSet = learnTeacherService.getKnowledgeIdSet(majorPlanId, null, examType);
+            knowledgeIdSet = learnTeacherService.getKnowledgeIdSet(subjectId, majorPlanId, null, examType);
         }
         }
         return AjaxResult.success(learnTeacherService.getKnowledgeTree(examType, subjectId, knowledgeIdSet, null, null));
         return AjaxResult.success(learnTeacherService.getKnowledgeTree(examType, subjectId, knowledgeIdSet, null, null));
     }
     }

+ 3 - 0
ie-admin/src/main/java/com/ruoyi/web/service/CommService.java

@@ -115,6 +115,9 @@ public class CommService {
             LearnTeacherService.TreeNode parent = teMap.get(kt.getPid());
             LearnTeacherService.TreeNode parent = teMap.get(kt.getPid());
             LearnTeacherService.TreeNode node = teMap.get(kt.getId());
             LearnTeacherService.TreeNode node = teMap.get(kt.getId());
             if(null != node.getQuestionCount()) {
             if(null != node.getQuestionCount()) {
+                if(null == parent) {
+                    continue;
+                }
                 parent.setQuestionCount(parent.getQuestionCount() + node.getQuestionCount());
                 parent.setQuestionCount(parent.getQuestionCount() + node.getQuestionCount());
                 parent.setFinishedCount(parent.getFinishedCount() + node.getFinishedCount());
                 parent.setFinishedCount(parent.getFinishedCount() + node.getFinishedCount());
                 parent.setRightCount(parent.getRightCount() + node.getRightCount());
                 parent.setRightCount(parent.getRightCount() + node.getRightCount());

+ 1 - 1
ie-admin/src/main/java/com/ruoyi/web/service/LearnStatService.java

@@ -85,7 +85,7 @@ public class LearnStatService {
 
 
     public List<JSONObject> getRecordKnowledge(Long studentId, Integer planYear) {
     public List<JSONObject> getRecordKnowledge(Long studentId, Integer planYear) {
         LearnStudent learnStudent = learnStudentService.selectLearnStudentByStudentId(studentId);
         LearnStudent learnStudent = learnStudentService.selectLearnStudentByStudentId(studentId);
-        Set<Long> knowledgeIdSet = null != learnStudent ? learnTeacherService.getKnowledgeIdSet(learnStudent.getMajorPlanId(), planYear, learnStudent.getExamType()) : Sets.newHashSet(0L);
+        Set<Long> knowledgeIdSet = null != learnStudent ? learnTeacherService.getKnowledgeIdSet(null, learnStudent.getMajorPlanId(), planYear, learnStudent.getExamType()) : Sets.newHashSet(0L);
         knowledgeIdSet.add(0L);
         knowledgeIdSet.add(0L);
         List<JSONObject> list = answerMapper.selectKnowledgeStats(Dict.create().set("studentId", studentId).set("knowIds", knowledgeIdSet));
         List<JSONObject> list = answerMapper.selectKnowledgeStats(Dict.create().set("studentId", studentId).set("knowIds", knowledgeIdSet));
         list.forEach(o -> {
         list.forEach(o -> {

+ 61 - 4
ie-admin/src/main/java/com/ruoyi/web/service/LearnTeacherService.java

@@ -1,6 +1,7 @@
 package com.ruoyi.web.service;
 package com.ruoyi.web.service;
 
 
 import cn.hutool.core.lang.Dict;
 import cn.hutool.core.lang.Dict;
+import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.alibaba.fastjson2.JSONObject;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Maps;
@@ -27,6 +28,7 @@ import com.ruoyi.ie.mapper.AMarjorPlanMapper;
 import com.ruoyi.learn.domain.*;
 import com.ruoyi.learn.domain.*;
 import com.ruoyi.learn.mapper.*;
 import com.ruoyi.learn.mapper.*;
 import com.ruoyi.learn.service.ILearnTestService;
 import com.ruoyi.learn.service.ILearnTestService;
+import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.syzy.domain.BBusiWishUniversities;
 import com.ruoyi.syzy.domain.BBusiWishUniversities;
 import com.ruoyi.syzy.mapper.BBusiWishUniversitiesMapper;
 import com.ruoyi.syzy.mapper.BBusiWishUniversitiesMapper;
 import com.ruoyi.web.domain.TestRecordCond;
 import com.ruoyi.web.domain.TestRecordCond;
@@ -52,6 +54,7 @@ public class LearnTeacherService {
     private final AMarjorPlanMapper marjorPlanMapper;
     private final AMarjorPlanMapper marjorPlanMapper;
     private final BBusiWishUniversitiesMapper busiWishUniversitiesMapper;
     private final BBusiWishUniversitiesMapper busiWishUniversitiesMapper;
     private final LearnDirectedKnowledgeMapper learnDirectedKnowledgeMapper;
     private final LearnDirectedKnowledgeMapper learnDirectedKnowledgeMapper;
+    private final LearnCultureKnowledgeMapper learnCultureKnowledgeMapper;
     private final PaperService paperService;
     private final PaperService paperService;
     private final CommService commService;
     private final CommService commService;
     private final LearnTestPaperMapper learnTestPaperMapper;
     private final LearnTestPaperMapper learnTestPaperMapper;
@@ -62,8 +65,9 @@ public class LearnTeacherService {
     private final ILearnTestService learnTestService;
     private final ILearnTestService learnTestService;
     private final LearnAnswerMapper learnAnswerMapper;
     private final LearnAnswerMapper learnAnswerMapper;
     private final DzTeacherMapper dzTeacherMapper;
     private final DzTeacherMapper dzTeacherMapper;
+    private final SysUserMapper sysUserMapper;
 
 
-    public LearnTeacherService(DzClassesMapper dzClassesMapper, LearnKnowledgeTreeMapper learnKnowledgeTreeMapper, LearnStudentMapper learnStudentMapper, AMarjorPlanMapper marjorPlanMapper, BBusiWishUniversitiesMapper busiWishUniversitiesMapper, LearnDirectedKnowledgeMapper learnDirectedKnowledgeMapper, PaperService paperService, CommService commService, LearnTestPaperMapper learnTestPaperMapper, LearnQuestionsMapper learnQuestionsMapper, LearnKnowledgeCourseMapper learnKnowledgeCourseMapper, LearnTestStudentMapper learnTestStudentMapper, IDzSubjectService dzSubjectService, ILearnTestService learnTestService, LearnAnswerMapper learnAnswerMapper, DzTeacherMapper dzTeacherMapper) {
+    public LearnTeacherService(DzClassesMapper dzClassesMapper, LearnKnowledgeTreeMapper learnKnowledgeTreeMapper, LearnStudentMapper learnStudentMapper, AMarjorPlanMapper marjorPlanMapper, BBusiWishUniversitiesMapper busiWishUniversitiesMapper, LearnDirectedKnowledgeMapper learnDirectedKnowledgeMapper, PaperService paperService, CommService commService, LearnTestPaperMapper learnTestPaperMapper, LearnQuestionsMapper learnQuestionsMapper, LearnKnowledgeCourseMapper learnKnowledgeCourseMapper, LearnTestStudentMapper learnTestStudentMapper, IDzSubjectService dzSubjectService, ILearnTestService learnTestService, LearnAnswerMapper learnAnswerMapper, DzTeacherMapper dzTeacherMapper, SysUserMapper sysUserMapper, LearnCultureKnowledgeMapper learnCultureKnowledgeMapper) {
         this.dzClassesMapper = dzClassesMapper;
         this.dzClassesMapper = dzClassesMapper;
         this.learnKnowledgeTreeMapper = learnKnowledgeTreeMapper;
         this.learnKnowledgeTreeMapper = learnKnowledgeTreeMapper;
         this.learnStudentMapper = learnStudentMapper;
         this.learnStudentMapper = learnStudentMapper;
@@ -80,6 +84,34 @@ public class LearnTeacherService {
         this.learnTestService = learnTestService;
         this.learnTestService = learnTestService;
         this.learnAnswerMapper = learnAnswerMapper;
         this.learnAnswerMapper = learnAnswerMapper;
         this.dzTeacherMapper = dzTeacherMapper;
         this.dzTeacherMapper = dzTeacherMapper;
+        this.sysUserMapper = sysUserMapper;
+        this.learnCultureKnowledgeMapper = learnCultureKnowledgeMapper;
+        // processDirectStudy();
+    }
+
+    private void processDirectStudy() {
+        List<SysUser> userList = sysUserMapper.selectUserByUserIds(Stream.of(1,3,5,6,9,10,11,15,16,20,21,23,24,26,27,33,34,44,47,60,61,69,70,71,72,73,74,83,84,94,95,96,97,98,99,100,101,102,103,104,105,110,114,115,116,117,118,119,124,125,126,127,128,129,134,135,136,137,140,144,151,166,170,172,174,178).map(t -> t.longValue()).collect(Collectors.toList()));
+        SysUser upUser = new SysUser();
+        Set<Long> idSet = Sets.newHashSet(14663L,10836L,14139L,12597L,13942L);
+        for(SysUser user : userList) {
+            if(StringUtils.isBlank(user.getDirectedStudy())) {
+                continue;
+            }
+            JSONArray jsonList = JSONArray.parse(user.getDirectedStudy());
+            List<JSONObject> finalList = Lists.newArrayList();
+            for(int i=0;i<jsonList.size();i++) {
+                JSONObject o = jsonList.getJSONObject(i);
+                Long id = o.getLong("universityId");
+                if(idSet.contains(id)){
+                    continue;
+                }
+                finalList.add(o);
+            }
+            upUser.setUserId(user.getUserId());
+            upUser.setDirectedStudy(JSONArray.toJSONString(finalList));
+            // sysUserMapper.updateUser(upUser);
+        }
+
     }
     }
 
 
     public List<LearnQuestions> getQuestionTypes(Long subjectId, Collection<Long> knowledgeIds) {
     public List<LearnQuestions> getQuestionTypes(Long subjectId, Collection<Long> knowledgeIds) {
@@ -532,6 +564,14 @@ public class LearnTeacherService {
             dkCond.setLocations(sysUser.getLocation());
             dkCond.setLocations(sysUser.getLocation());
             dkCond.setExamineeTypes(sysUser.getExamType().name());
             dkCond.setExamineeTypes(sysUser.getExamType().name());
             Map<String, LearnDirectedKnowledge> directedKnowledgeMap = learnDirectedKnowledgeMapper.selectLearnDirectedKnowledgeList(dkCond).stream().collect(Collectors.toMap(LearnDirectedKnowledge::getDirectKey, t -> t));
             Map<String, LearnDirectedKnowledge> directedKnowledgeMap = learnDirectedKnowledgeMapper.selectLearnDirectedKnowledgeList(dkCond).stream().collect(Collectors.toMap(LearnDirectedKnowledge::getDirectKey, t -> t));
+            LearnCultureKnowledge ckCond = new LearnCultureKnowledge();
+            ckCond.setUniversityId(curr.getUniversityId());
+            ckCond.setMatchYear(curr.getMatchYear());
+            ckCond.setLocations(sysUser.getLocation());
+            ckCond.setExamineeTypes(sysUser.getExamType().name());
+            learnCultureKnowledgeMapper.selectLearnCultureKnowledgeList(ckCond).stream().filter(t -> StringUtils.isNotBlank(t.getSubjects()) && StringUtils.isNotBlank(t.getKnowledges())).forEach(t -> {
+                subjectIdSet.addAll(Stream.of(t.getSubjects().split(",")).map(Long::parseLong).collect(Collectors.toList()));
+            });
             LearnDirectedKnowledge directedKnowledge = null;
             LearnDirectedKnowledge directedKnowledge = null;
             for(AMarjorPlan plan : planList) {
             for(AMarjorPlan plan : planList) {
                 if(null != (directedKnowledge = getBestLearnDirectedKnowledge(plan, directedKnowledgeMap)) && StringUtils.isNotBlank(directedKnowledge.getSubjects())) {
                 if(null != (directedKnowledge = getBestLearnDirectedKnowledge(plan, directedKnowledgeMap)) && StringUtils.isNotBlank(directedKnowledge.getSubjects())) {
@@ -542,7 +582,7 @@ public class LearnTeacherService {
         return subjectIdSet;
         return subjectIdSet;
     }
     }
 
 
-    public Set<Long> getKnowledgeIdSet(Long planId, Integer year, String examType) {
+    public Set<Long> getKnowledgeIdSet(Long subjectId, Long planId, Integer year, String examType) {
         if(NumberUtils.isPositive(planId)) {
         if(NumberUtils.isPositive(planId)) {
             SysUser sysUser = SecurityUtils.getLoginUser().getUser();
             SysUser sysUser = SecurityUtils.getLoginUser().getUser();
             List<AMarjorPlan> planList = marjorPlanMapper.selectAMarjorPlanByIds(new Long[] { planId });
             List<AMarjorPlan> planList = marjorPlanMapper.selectAMarjorPlanByIds(new Long[] { planId });
@@ -553,9 +593,26 @@ public class LearnTeacherService {
                 examType = null != sysUser.getExamType() ? sysUser.getExamType().name() : ExamType.OHS.name();
                 examType = null != sysUser.getExamType() ? sysUser.getExamType().name() : ExamType.OHS.name();
             }
             }
             AMarjorPlan plan = planList.get(0);
             AMarjorPlan plan = planList.get(0);
-            if(null == year || plan.getMatchYear().equals(year)) {
-                return getStudentKnowledgeIdSet(plan.getMatchYear(), plan, sysUser.getLocation(), examType);
+            Set<Long> idSet;
+            if((null == subjectId || subjectId >= 10) && (null == year || plan.getMatchYear().equals(year))) {
+                idSet = getStudentKnowledgeIdSet(plan.getMatchYear(), plan, sysUser.getLocation(), examType);
+            } else {
+                idSet = Sets.newHashSet();
+            }
+            if(null == subjectId || subjectId < 10) {
+                LearnCultureKnowledge ckCond = new LearnCultureKnowledge();
+                ckCond.setUniversityId(plan.getUniversityId());
+                ckCond.setMatchYear(plan.getMatchYear());
+                ckCond.setLocations(sysUser.getLocation());
+                ckCond.setExamineeTypes(sysUser.getExamType().name());
+                if(null != subjectId) {
+                    ckCond.setSubjects(subjectId.toString());
+                }
+                learnCultureKnowledgeMapper.selectLearnCultureKnowledgeList(ckCond).stream().filter(t -> StringUtils.isNotBlank(t.getKnowledges())).forEach(t -> {
+                    idSet.addAll(Stream.of(t.getKnowledges().split(",")).map(Long::parseLong).collect(Collectors.toList()));
+                });
             }
             }
+            return idSet;
         }
         }
         return Sets.newHashSet();
         return Sets.newHashSet();
     }
     }

+ 2 - 2
ie-system/src/main/resources/mapper/learn/LearnCultureKnowledgeMapper.xml

@@ -31,8 +31,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="subjects != null  and subjects != ''"> and subjects = #{subjects}</if>
             <if test="subjects != null  and subjects != ''"> and subjects = #{subjects}</if>
             <if test="questionTypes != null  and questionTypes != ''"> and question_types = #{questionTypes}</if>
             <if test="questionTypes != null  and questionTypes != ''"> and question_types = #{questionTypes}</if>
             <if test="knowledges != null  and knowledges != ''"> and knowledges = #{knowledges}</if>
             <if test="knowledges != null  and knowledges != ''"> and knowledges = #{knowledges}</if>
-            <if test="locations != null  and locations != ''"> and locations = #{locations}</if>
-            <if test="examineeTypes != null  and examineeTypes != ''"> and examinee_types = #{examineeTypes}</if>
+            <if test="locations != null  and locations != ''"> and (locations is null or find_in_set(#{locations}, locations))</if>
+            <if test="examineeTypes != null  and examineeTypes != ''"> and (examinee_types is null or find_in_set(#{examineeTypes}, examinee_types))</if>
             <if test="score != null "> and score = #{score}</if>
             <if test="score != null "> and score = #{score}</if>
             <if test="time != null "> and time = #{time}</if>
             <if test="time != null "> and time = #{time}</if>
             <if test="conditions != null  and conditions != ''"> and conditions = #{conditions}</if>
             <if test="conditions != null  and conditions != ''"> and conditions = #{conditions}</if>