From 5084d4d2994c5bab0be41748872e10e9731baf54 Mon Sep 17 00:00:00 2001
From: whb <17803890193@163.com>
Date: Mon, 30 Dec 2024 18:10:01 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AD=A6=E7=94=9F=E7=AB=AF?=
 =?UTF-8?q?=E7=AD=BE=E5=88=B0=E7=8A=B6=E6=80=81=E6=9F=A5=E8=AF=A2=E6=8E=A5?=
 =?UTF-8?q?=E5=8F=A3=20=E5=AF=B9=E6=8E=A5DIC=E7=94=B3=E9=A2=86=E5=AE=9E?=
 =?UTF-8?q?=E8=AE=AD=E5=92=8C=E5=AD=A6=E7=94=9F=E7=AB=AF=E7=AD=BE=E5=88=B0?=
 =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=AF=B9=E6=8E=A5?=
 =?UTF-8?q?=E5=87=BA=E7=8E=B0=E7=9A=84bug=20DIC=E7=94=B3=E9=A2=86=E5=AE=9E?=
 =?UTF-8?q?=E8=AE=AD=E6=B7=BB=E5=8A=A0=E5=85=B3=E9=94=AE=E7=BC=96=E7=A0=81?=
 =?UTF-8?q?=E7=94=9F=E6=88=90=E6=8E=A5=E5=8F=A3=20=E8=A7=A3=E5=86=B3?=
 =?UTF-8?q?=E6=95=B0=E5=AD=97=E8=B4=B8=E6=98=93=E5=8D=95=E7=8B=AC=E7=99=BB?=
 =?UTF-8?q?=E5=BD=95=E5=90=8E=E8=BF=94=E5=9B=9E=E7=94=A8=E6=88=B7=E6=95=B0?=
 =?UTF-8?q?=E6=8D=AEstudentId=E5=92=8C=E7=8F=AD=E7=BA=A7ID=E4=B8=BA?=
 =?UTF-8?q?=E4=B8=BA=E7=A9=BAbug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../security/AuthenticationService.java       |  1 +
 .../sztzjy/trade/config/security/JwtUser.java |  1 +
 .../trade/config/security/LoginResult.java    |  6 +++
 .../stu/StuExpermentTrainingController.java   | 43 +++++++++++++++++++
 .../controller/stu/StuSignInfoController.java |  1 +
 .../trade/controller/stu/UserController.java  | 15 ++++---
 .../trade/controller/task/TaskController.java |  3 +-
 .../sztzjy/trade/entity/StuCodeInfoDTO.java   | 28 ++++++++++++
 .../service/impl/StuSignInfoServiceImpl.java  |  9 +++-
 9 files changed, 100 insertions(+), 7 deletions(-)
 create mode 100644 src/main/java/com/sztzjy/trade/entity/StuCodeInfoDTO.java

diff --git a/src/main/java/com/sztzjy/trade/config/security/AuthenticationService.java b/src/main/java/com/sztzjy/trade/config/security/AuthenticationService.java
index 7721e3e..52683a8 100644
--- a/src/main/java/com/sztzjy/trade/config/security/AuthenticationService.java
+++ b/src/main/java/com/sztzjy/trade/config/security/AuthenticationService.java
@@ -34,6 +34,7 @@ public class AuthenticationService implements UserDetailsService {
         jwtUser.setUserId(user.getUserId());
         jwtUser.setName(user.getName());
         jwtUser.setRoleId(user.getRoleId());
+        jwtUser.setStudentId(user.getStudentId());
         return jwtUser;
     }
 
diff --git a/src/main/java/com/sztzjy/trade/config/security/JwtUser.java b/src/main/java/com/sztzjy/trade/config/security/JwtUser.java
index 36e1451..0ea0267 100644
--- a/src/main/java/com/sztzjy/trade/config/security/JwtUser.java
+++ b/src/main/java/com/sztzjy/trade/config/security/JwtUser.java
@@ -16,6 +16,7 @@ import java.util.Objects;
 @Setter
 public class JwtUser implements UserDetails {
     private String username;
+    private String studentId;
     private String password;
     private String name;
     private String userId;
diff --git a/src/main/java/com/sztzjy/trade/config/security/LoginResult.java b/src/main/java/com/sztzjy/trade/config/security/LoginResult.java
index 201ce92..cd39ece 100644
--- a/src/main/java/com/sztzjy/trade/config/security/LoginResult.java
+++ b/src/main/java/com/sztzjy/trade/config/security/LoginResult.java
@@ -41,6 +41,11 @@ public class LoginResult {
     @ApiModelProperty("用户名")
     private String username;
 
+    @ApiModelProperty("studentId")
+    private String studentId;
+
+
+
 
 // user.setUserId(dataObject.getStr("userId"));
 //            user.setName(dataObject.getStr("name"));
@@ -74,6 +79,7 @@ public class LoginResult {
         result.setCollegeId(jwtUser.getCollegeId());
         result.setUsername(jwtUser.getUsername());
         result.setSchoolName(jwtUser.getSchoolName());
+        result.setStudentId(jwtUser.getStudentId());
         return result;
     }
 }
diff --git a/src/main/java/com/sztzjy/trade/controller/stu/StuExpermentTrainingController.java b/src/main/java/com/sztzjy/trade/controller/stu/StuExpermentTrainingController.java
index c1f5415..00419d1 100644
--- a/src/main/java/com/sztzjy/trade/controller/stu/StuExpermentTrainingController.java
+++ b/src/main/java/com/sztzjy/trade/controller/stu/StuExpermentTrainingController.java
@@ -1,8 +1,14 @@
 package com.sztzjy.trade.controller.stu;
 
 
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.HashUtil;
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.crypto.SecureUtil;
+import cn.hutool.crypto.digest.DigestUtil;
 import com.sztzjy.trade.annotation.AnonymousAccess;
 import com.sztzjy.trade.entity.StuAchievementInfo;
+import com.sztzjy.trade.entity.StuCodeInfoDTO;
 import com.sztzjy.trade.entity.StuTaskPracticeRecord;
 import com.sztzjy.trade.entity.dto.StuExpermentSubmitDTO;
 import com.sztzjy.trade.service.StuExpermentTrainingService;
@@ -20,6 +26,9 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Random;
 
 
 /**
@@ -122,4 +131,38 @@ public class StuExpermentTrainingController {
     }
 
 
+
+    @ApiOperation("生成关键编码")
+    @GetMapping("/createInfo")
+    @AnonymousAccess
+    public ResultEntity createInfo() {
+
+        StuCodeInfoDTO stuCodeInfoDTO = new StuCodeInfoDTO();
+        Date date = new Date();
+        String info = "RDCSOOANT."+new SimpleDateFormat("yyyyMMdd").format(date)+RandomUtil.randomNumbers(10);
+        stuCodeInfoDTO.setDCI(info);
+
+        stuCodeInfoDTO.setDciTime(new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss").format(date));
+
+
+        stuCodeInfoDTO.setDciCode(RandomUtil.randomString(68));
+        stuCodeInfoDTO.setDciHash(DigestUtil.sha256Hex(info));
+
+        return new ResultEntity<>(HttpStatus.OK,stuCodeInfoDTO);
+
+    }
+
+    public static void main(String[] args) {
+        Date date = new Date();
+
+        //new SimpleDateFormat("yyyy年MM月dd日HH::mm::ss").format(date);
+
+
+
+
+
+
+        System.out.println( );
+    }
+
 }
diff --git a/src/main/java/com/sztzjy/trade/controller/stu/StuSignInfoController.java b/src/main/java/com/sztzjy/trade/controller/stu/StuSignInfoController.java
index 47eccac..291699e 100644
--- a/src/main/java/com/sztzjy/trade/controller/stu/StuSignInfoController.java
+++ b/src/main/java/com/sztzjy/trade/controller/stu/StuSignInfoController.java
@@ -60,4 +60,5 @@ public class StuSignInfoController {
 
 
 
+
 }
diff --git a/src/main/java/com/sztzjy/trade/controller/stu/UserController.java b/src/main/java/com/sztzjy/trade/controller/stu/UserController.java
index 566d824..11a1c21 100644
--- a/src/main/java/com/sztzjy/trade/controller/stu/UserController.java
+++ b/src/main/java/com/sztzjy/trade/controller/stu/UserController.java
@@ -112,12 +112,15 @@ public class UserController {
                         SecurityContextHolder.getContext().setAuthentication(authentication);
                         jwtUser = (JwtUser) authentication.getPrincipal();
                         String token = TokenProvider.createToken(jwtUser);
-
+                        loginResult.setClassId(Convert.toInt(stuUser.getClassId()));
                         loginResult.setUserId(stuUser.getUserId());
-                        loginResult.setUsername(stuUser.getSchoolId());
+                        loginResult.setUsername(stuUser.getStudentId());
+                        loginResult.setName(stuUser.getName());
                         loginResult.setRoleId(stuUser.getRoleId());
+                        loginResult.setSchoolName(stuUser.getSchoolName());
                         loginResult.setSchoolId(Integer.valueOf(stuUser.getSchoolId()));
                         loginResult.setAccessToken(token);
+                        loginResult.setStudentId(stuUser.getStudentId());
                         redisUtil.set(itemName+"-token:"+jwtUser.getUserId(),token,3600);
                         redisUtil.set(itemName+"-userId:"+jwtUser.getUserId(),System.currentTimeMillis(),3600);
 
@@ -130,13 +133,15 @@ public class UserController {
                             SecurityContextHolder.getContext().setAuthentication(authentication);
                             jwtUser = (JwtUser) authentication.getPrincipal();
                             String token = TokenProvider.createToken(jwtUser);
-
+                            loginResult.setClassId(Convert.toInt(stuUser.getClassId()));
                             loginResult.setUserId(stuUser.getUserId());
-                            loginResult.setUsername(stuUser.getSchoolId());
+                            loginResult.setName(stuUser.getName());
+                            loginResult.setUsername(stuUser.getStudentId());
                             loginResult.setRoleId(stuUser.getRoleId());
                             loginResult.setSchoolId(Integer.valueOf(stuUser.getSchoolId()));
+                            loginResult.setStudentId(stuUser.getStudentId());
                             loginResult.setAccessToken(token);
-
+                            loginResult.setSchoolName(stuUser.getSchoolName());
                             redisUtil.set(itemName+"-token:"+jwtUser.getUserId(),token,3600);
                             redisUtil.set(itemName+"-userId:"+jwtUser.getUserId(),System.currentTimeMillis(),3600);
 
diff --git a/src/main/java/com/sztzjy/trade/controller/task/TaskController.java b/src/main/java/com/sztzjy/trade/controller/task/TaskController.java
index ac9ac9c..1bc37b8 100644
--- a/src/main/java/com/sztzjy/trade/controller/task/TaskController.java
+++ b/src/main/java/com/sztzjy/trade/controller/task/TaskController.java
@@ -40,7 +40,8 @@ public class TaskController {
                 long currentTime = System.currentTimeMillis(); // 获取当前时间戳
                 long timeDifference = currentTime - newTime; // 计算时间差
 
-                long time =  20 * 60 * 1000;
+                //long time =  20 * 60 * 1000;
+                long time =  60 * 60 * 1000;
                 // 判断时间差是否大于 20 分钟(20 分钟 = 20 * 60 * 1000 毫秒)
                 if (timeDifference > time) {
                    //大于20分钟未操作   表明用户已经离线  在线时长+20分钟
diff --git a/src/main/java/com/sztzjy/trade/entity/StuCodeInfoDTO.java b/src/main/java/com/sztzjy/trade/entity/StuCodeInfoDTO.java
new file mode 100644
index 0000000..f7dad69
--- /dev/null
+++ b/src/main/java/com/sztzjy/trade/entity/StuCodeInfoDTO.java
@@ -0,0 +1,28 @@
+package com.sztzjy.trade.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author 17803
+ * @date 2024-12-30 15:53
+ */
+@Data
+public class StuCodeInfoDTO {
+
+    @ApiModelProperty("dci")
+    private String DCI;
+
+
+    @ApiModelProperty("dci申领时间")
+    private String dciTime;
+
+    @ApiModelProperty("dci统一证据编号")
+    private String dciCode;
+
+
+    @ApiModelProperty("dci哈希")
+    private String dciHash;
+
+
+}
diff --git a/src/main/java/com/sztzjy/trade/service/impl/StuSignInfoServiceImpl.java b/src/main/java/com/sztzjy/trade/service/impl/StuSignInfoServiceImpl.java
index f335ade..40bca0e 100644
--- a/src/main/java/com/sztzjy/trade/service/impl/StuSignInfoServiceImpl.java
+++ b/src/main/java/com/sztzjy/trade/service/impl/StuSignInfoServiceImpl.java
@@ -9,6 +9,7 @@ import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.RandomUtil;
 import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.sztzjy.trade.config.Constant;
 import com.sztzjy.trade.entity.*;
 import com.sztzjy.trade.entity.dto.StuSignDTO;
@@ -19,6 +20,7 @@ import com.sztzjy.trade.mapper.TeacherOpenCourseStudentSigninLogMapper;
 import com.sztzjy.trade.mapper.TeacherOpenCourseStudentSigninSettingMapper;
 import com.sztzjy.trade.service.StuSignInfoService;
 import com.sztzjy.trade.util.IpUtils;
+import com.sztzjy.trade.util.RedisUtil;
 import com.sztzjy.trade.util.ResultEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -48,6 +50,7 @@ public class StuSignInfoServiceImpl implements StuSignInfoService {
     @Autowired
     private StuLearningRecordMapper stuLearningRecordMapper;
 
+
     /**
      * 课程内查询用户所有签到信息
      *
@@ -64,6 +67,8 @@ public class StuSignInfoServiceImpl implements StuSignInfoService {
         //开启分页
         PageHelper.startPage(page, size);
 
+
+
         List<StudentSigninSettingDTO> list = new ArrayList<>();
 
         //查询签到记录
@@ -128,7 +133,9 @@ public class StuSignInfoServiceImpl implements StuSignInfoService {
             }
 
         }
-        return new ResultEntity(HttpStatus.OK, list);
+
+        PageInfo<StudentSigninSettingDTO> studentSigninSettingDTOPageInfo = new PageInfo<>(list);
+        return new ResultEntity(HttpStatus.OK, studentSigninSettingDTOPageInfo);
     }
 
     /**