|
|
@@ -134,6 +134,8 @@ public class ReviewServiceImpl extends ServiceImpl<ReviewMapper, Review> impleme
|
|
|
|
|
|
if (count == 0 && appUser.getTestFlag().equals("2")){
|
|
|
appUserUpdate.setTestFlag("0");
|
|
|
+ appUserUpdate = smartCognitiveDomain(appUserUpdate,reviewTask1.getReviewTaskId());
|
|
|
+
|
|
|
|
|
|
// 完成测评任务,推荐专属任务
|
|
|
List<Game> gameList = recommendFacade.recommendationA(appUser);
|
|
|
@@ -149,6 +151,74 @@ public class ReviewServiceImpl extends ServiceImpl<ReviewMapper, Review> impleme
|
|
|
}
|
|
|
|
|
|
|
|
|
+ public AppUser smartCognitiveDomain(AppUser appUser,String reviewTaskID) {
|
|
|
+ // 获取mmse 和 moca 测评结果记录
|
|
|
+ LambdaQueryWrapper<ReviewTask> taskQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ taskQueryWrapper.eq(ReviewTask::getReviewTaskId,reviewTaskID);
|
|
|
+ taskQueryWrapper.eq(ReviewTask::getStatus,"1");
|
|
|
+ List<ReviewTask> reviewTasks = reviewTaskMapper.selectList(taskQueryWrapper);
|
|
|
+
|
|
|
+ Map<String, ReviewTask> taskMap = reviewTasks.stream()
|
|
|
+ .collect(Collectors.toMap(
|
|
|
+ ReviewTask::getType,
|
|
|
+ reviewTask -> reviewTask,
|
|
|
+ (existing, replacement) -> existing
|
|
|
+ ));
|
|
|
+
|
|
|
+ AppUser appUserUpdate = new AppUser();
|
|
|
+ appUserUpdate.setId(appUser.getId());
|
|
|
+ Set<String> set = new HashSet();
|
|
|
+ // mmse 测评
|
|
|
+ // 获取 测评题目所代表的认知域
|
|
|
+ LambdaQueryWrapper<Review> mmseLambdaQueryWrapper = new LambdaQueryWrapper();
|
|
|
+ mmseLambdaQueryWrapper.eq(Review::getType, "MMSE");
|
|
|
+ List<Review> reviewMmseList = reviewMapper.selectList(mmseLambdaQueryWrapper);
|
|
|
+ // 更据认知域区分
|
|
|
+ Map<Long, Review> reviewMmseMap = reviewMmseList.stream()
|
|
|
+ .collect(Collectors.toMap(
|
|
|
+ Review::getId,
|
|
|
+ review -> review,
|
|
|
+ (existing, replacement) -> existing // 保留先出现的值
|
|
|
+ ));
|
|
|
+ // 获取 错误题目详情
|
|
|
+ LambdaQueryWrapper<ReviewRecord> reviewRecordMmseLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ reviewRecordMmseLambdaQueryWrapper.eq(ReviewRecord::getReviewTaskId,taskMap.get("MMSE").getId());
|
|
|
+ reviewRecordMmseLambdaQueryWrapper.eq(ReviewRecord::getCorrect,"0");
|
|
|
+ List<ReviewRecord> reviewRecordMmseList = reviewRecordMapper.selectList(reviewRecordMmseLambdaQueryWrapper);
|
|
|
+ for (ReviewRecord reviewRecord : reviewRecordMmseList) {
|
|
|
+ Review review = reviewMmseMap.get(reviewRecord.getReviewId());
|
|
|
+ set.add(review.getViewType());
|
|
|
+ }
|
|
|
+
|
|
|
+ // moca 测评
|
|
|
+ // 获取 测评题目所代表的认知域
|
|
|
+ LambdaQueryWrapper<Review> mocaLambdaQueryWrapper = new LambdaQueryWrapper();
|
|
|
+ mocaLambdaQueryWrapper.eq(Review::getType, "MOCA");
|
|
|
+ List<Review> reviewMocaList = reviewMapper.selectList(mocaLambdaQueryWrapper);
|
|
|
+ // 更据认知域区分
|
|
|
+ Map<Long, Review> reviewMocaMap = reviewMocaList.stream()
|
|
|
+ .collect(Collectors.toMap(
|
|
|
+ Review::getId,
|
|
|
+ review -> review,
|
|
|
+ (existing, replacement) -> existing // 保留先出现的值
|
|
|
+ ));
|
|
|
+ // 获取 错误题目详情
|
|
|
+ LambdaQueryWrapper<ReviewRecord> reviewRecordMocaLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ reviewRecordMocaLambdaQueryWrapper.eq(ReviewRecord::getReviewTaskId,taskMap.get("MOCA").getId());
|
|
|
+ reviewRecordMocaLambdaQueryWrapper.eq(ReviewRecord::getCorrect,"0");
|
|
|
+ List<ReviewRecord> reviewRecordMocaList = reviewRecordMapper.selectList(reviewRecordMocaLambdaQueryWrapper);
|
|
|
+ for (ReviewRecord reviewRecord : reviewRecordMocaList) {
|
|
|
+ Review review = reviewMocaMap.get(reviewRecord.getReviewId());
|
|
|
+ set.add(review.getViewType());
|
|
|
+ }
|
|
|
+ String tags = String.join(",", set);
|
|
|
+ appUser.setTags(tags);
|
|
|
+ appUserUpdate.setTags(tags);
|
|
|
+ appUserMapper.updateById(appUserUpdate);
|
|
|
+ return appUser;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
@Override
|