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 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){