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); } /**