From 1a316551c8e46b793904090cfa84781bf77fef2a Mon Sep 17 00:00:00 2001
From: zhangf <1603559716@qq.com>
Date: 星期三, 11 九月 2024 15:51:49 +0800
Subject: [PATCH] 增加科目类别

---
 exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java |   71 ++++++++++++++++++++++++++++++++++-
 1 files changed, 69 insertions(+), 2 deletions(-)

diff --git a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java
index 8a4a0a6..0f36892 100644
--- a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java
@@ -1,23 +1,39 @@
 package com.gkhy.exam.institutionalaccess.service.serviceImpl;
 
+import com.alibaba.fastjson2.JSONObject;
+import com.alibaba.fastjson2.TypeReference;
 import com.gkhy.exam.institutionalaccess.entity.*;
+import com.ruoyi.system.domain.enums.AccessAddressType;
 import com.gkhy.exam.institutionalaccess.model.query.ThStudyDetailQuery;
+import com.gkhy.exam.institutionalaccess.model.resp.ThPlatformStudentRespDTO;
 import com.gkhy.exam.institutionalaccess.model.vo.ThStudyAuthVO;
 import com.gkhy.exam.institutionalaccess.model.vo.ThStudyDetailVO;
 import com.gkhy.exam.institutionalaccess.model.vo.ThStudyTrackVO;
 import com.gkhy.exam.institutionalaccess.service.*;
 import com.gkhy.exam.institutionalaccess.utils.ConvertTimeUtils;
+import com.ruoyi.common.utils.HttpClientUtil;
+import com.gkhy.exam.noncoalmine.model.vo.ReturnVO;
+import com.ruoyi.common.constant.ResultConstants;
+import com.ruoyi.common.exception.BusinessException;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.signature.AESUtils;
+import com.ruoyi.system.domain.ThAccessAddress;
+import com.ruoyi.system.service.ThAccessAddressService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service("ThStudyRecordManagerService")
 public class ThStudyRecordManagerServiceImpl implements ThStudyRecordManagerService {
+    private Logger logger = LoggerFactory.getLogger(ThStudyRecordManagerServiceImpl.class);
+
     @Autowired
     private ThStudyDetailService thStudyDetailService;
     @Autowired
@@ -32,6 +48,8 @@
     private ThBatchService thBatchService;
     @Autowired
     private ThStudentService studentService;;
+    @Autowired
+    private ThAccessAddressService thAccessAddressService;
 
     @Override
     public List<ThStudyDetailVO> listByPage(ThStudyDetailQuery query) {
@@ -100,5 +118,54 @@
         return thStudyDetailVOS;
     }
 
+    @Override
+    public ThPlatformStudentRespDTO getStudyRecordByIdcard(ThStudyDetailQuery query) {
+        if(StringUtils.isEmpty(query.getIdcard())){
+            throw new BusinessException(this.getClass(), ResultConstants.PARAM_ERROR_NULL,"学生身份证不可为空");
+        }
+        if(query.getInstitutionId() == null){
+            throw new BusinessException(this.getClass(), ResultConstants.PARAM_ERROR_NULL,"学生所属机构不可为空");
+        }
+        //获取该机构访问路径
+        ThAccessAddress accessAddress = thAccessAddressService.getByInstitutionIdAndType(query.getInstitutionId(), AccessAddressType.STUDY_RECORD.getType());
+        Map<String,String> params = new HashMap<>();
+        params.put("idcard",query.getIdcard());
+        String json = HttpClientUtil.doGet(accessAddress.getUrl(), params);
+
+        ReturnVO<String> returnVo = JSONObject.parseObject(json, new TypeReference<ReturnVO<String>>() {});
+        if(returnVo.getCode() == null || returnVo.getCode() != 200){
+            throw new ServiceException("获取三方数据数据异常");
+        }
+        ThPlatformStudentRespDTO thPlatformStudentRespDTO = null;
+        if(!StringUtils.isEmpty(returnVo.getData())){
+            String decrypt = "";
+            try {
+                decrypt = AESUtils.decrypt(returnVo.getData());
+            }catch (Exception e){
+                throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR,"解密异常");
+            }
+            if(!StringUtils.isEmpty(decrypt)){
+                try {
+                    thPlatformStudentRespDTO = JSONObject.parseObject(decrypt, new TypeReference<ThPlatformStudentRespDTO>() {});
+
+                }catch (Exception e){
+                    logger.error("学习实时记录反序列化失败!");
+                    throw new BusinessException(this.getClass(), ResultConstants.SERIALIZE_ERROR);
+
+                }
+            }
+
+        }
+
+        return thPlatformStudentRespDTO;
+    }
+
+    public static void main(String[] args) {
+        Map<String,String> params = new HashMap<>();
+        params.put("idcard","652201198009174020");
+        String s = HttpClientUtil.doGet("https://app.lgb360.com/egress/xj/getStuDetail", params);
+        System.out.println(s);
+    }
+
 
 }

--
Gitblit v1.9.2