From e58792c9dad0e7e194fcbd2d70e029a551e1277e Mon Sep 17 00:00:00 2001
From: "@t2652009480" <2652009480@qq.com>
Date: Tue, 3 Sep 2024 08:33:11 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AD=A6=E4=B9=A0=E6=B5=8B=E8=AF=84=E8=AE=A1?=
 =?UTF-8?q?=E5=88=86=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../UserBehaviorProfilingAnaServiceImpl.java  | 21 +++++++++++++++++--
 .../marketing/util/compute/ScoringUtil.java   |  2 +-
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/sztzjy/marketing/service/impl/UserBehaviorProfilingAnaServiceImpl.java b/src/main/java/com/sztzjy/marketing/service/impl/UserBehaviorProfilingAnaServiceImpl.java
index 4c98309..d3e64f1 100644
--- a/src/main/java/com/sztzjy/marketing/service/impl/UserBehaviorProfilingAnaServiceImpl.java
+++ b/src/main/java/com/sztzjy/marketing/service/impl/UserBehaviorProfilingAnaServiceImpl.java
@@ -8,6 +8,7 @@ import cn.hutool.core.util.IdUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.sztzjy.marketing.config.Constant;
+import com.sztzjy.marketing.config.exception.handler.ServiceException;
 import com.sztzjy.marketing.entity.*;
 import com.sztzjy.marketing.entity.dto.StuMachineLearningInfoDTO;
 import com.sztzjy.marketing.mapper.*;
@@ -52,6 +53,8 @@ public class UserBehaviorProfilingAnaServiceImpl implements UserBehaviorProfilin
     ScoringUtil scoringUtil;
     @Resource
     StuScoreDetailsMapper stuScoreDetailsMapper;
+    @Resource
+    StuLearningAssessmentMapper learningAssessmentMapper;
 
     /**
      * 用户行为画像分析自动保存
@@ -367,7 +370,21 @@ public class UserBehaviorProfilingAnaServiceImpl implements UserBehaviorProfilin
                 scoreDetailsList.get(i).setScoringCriteria(String.valueOf(learningAssessmentScore));
                 scoreDetailsList.get(i).setScoreWeight(Double.parseDouble(String.valueOf(learningAssessmentWeight)));
                 String completionStatus = scoreDetailsList.get(i).getCompletionStatus();
-                double stuLearningAssessmentScoring = scoringUtil.getStuLearningAssessmentScoring(Integer.parseInt(completionStatus), Double.parseDouble(String.valueOf(learningAssessmentScore)));
+
+                //查询题目个数
+                StuLearningAssessmentExample assessmentExample=new StuLearningAssessmentExample();
+                assessmentExample.createCriteria().andModuleEqualTo("数字营销");
+
+                List<StuLearningAssessment> stuLearningAssessments = learningAssessmentMapper.selectByExample(assessmentExample);
+
+                if(stuLearningAssessments.isEmpty()){
+                    throw new ServiceException(HttpStatus.ACCEPTED,"题库未导入");
+                }
+
+                //计算用户对了几道题
+                Double sub = bigDecimalUtils.sub(Double.parseDouble(String.valueOf(stuLearningAssessments.size())), Double.parseDouble(completionStatus));
+
+                double stuLearningAssessmentScoring = scoringUtil.getStuLearningAssessmentScoring(sub, Double.parseDouble(String.valueOf(learningAssessmentScore)));
                 scoreDetailsList.get(i).setScoreProject(stuLearningAssessmentScoring);
                 //设置完成状态
                 scoreDetailsList.get(i).setSchedule(100.0);
@@ -377,7 +394,7 @@ public class UserBehaviorProfilingAnaServiceImpl implements UserBehaviorProfilin
                 scoreDetailsList.get(i).setScoringCriteria(String.valueOf(experimentalTrainingScore));
                 scoreDetailsList.get(i).setScoreWeight(Double.parseDouble(String.valueOf(experimentalTrainingWeight)));
                 String completionStatus = scoreDetailsList.get(i).getCompletionStatus();
-                double stuLearningAssessmentScoring = scoringUtil.getStuLearningAssessmentScoring(Integer.parseInt(completionStatus), Double.parseDouble(String.valueOf(experimentalTrainingScore)));
+                double stuLearningAssessmentScoring = scoringUtil.getStuTrainingScoring(Integer.parseInt(completionStatus), Double.parseDouble(String.valueOf(experimentalTrainingScore)));
                 scoreDetailsList.get(i).setScoreProject(stuLearningAssessmentScoring);
 
 
diff --git a/src/main/java/com/sztzjy/marketing/util/compute/ScoringUtil.java b/src/main/java/com/sztzjy/marketing/util/compute/ScoringUtil.java
index 1fbc23b..3a0ba8c 100644
--- a/src/main/java/com/sztzjy/marketing/util/compute/ScoringUtil.java
+++ b/src/main/java/com/sztzjy/marketing/util/compute/ScoringUtil.java
@@ -65,7 +65,7 @@ public class ScoringUtil {
      * @param v2 每对一题所得分数
      * @return
      */
-    public double getStuLearningAssessmentScoring(int v1,double v2){
+    public double getStuLearningAssessmentScoring(double v1,double v2){
 
         double mul = bigDecimalUtils.mul(v1, v2, 1);
         if(mul>100){