Browse Source

根据测评结果自动识别缺陷认知域

hurixing 1 day ago
parent
commit
70a666a80d

+ 70 - 0
hcp-core/src/main/java/com/yingyangfly/core/service/impl/ReviewServiceImpl.java

@@ -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

+ 5 - 1
hcp-core/src/main/java/com/yingyangfly/core/util/SmgUtil.java

@@ -66,7 +66,7 @@ public class SmgUtil {
             log.info("<<<<<<<<<<<<<<调用阿里云参数手机:{},模板:{}>>>>>>>>>>>>", mobile, templateCode);
             Client client = createClient(accessKeyId, accessKeySecret);
             SendSmsRequest sendSmsRequest = new SendSmsRequest();
-            sendSmsRequest.setSignName("耀荣医疗科技");
+            sendSmsRequest.setSignName("北京耀荣康健医疗科技发展");
             sendSmsRequest.setPhoneNumbers(mobile);
             sendSmsRequest.setTemplateCode(templateCode);
 //            Map<String, Object> map = new HashMap<>();
@@ -85,4 +85,8 @@ public class SmgUtil {
             return false;
         }
     }
+
+    public static void main(String[] args) {  // 18374991774 禅芳    16673327580 自己联通  18374068182 汤宸  13808494117 晗哥   19373366089 汤宸
+        System.out.println(sendNotificationCheckCode("13808494117","SMS_498245546"));
+    }
 }