添加学生端签到状态查询接口

对接DIC申领实训和学生端签到接口,修改对接出现的bug
DIC申领实训添加关键编码生成接口
解决数字贸易单独登录后返回用户数据studentId和班级ID为为空bug
main
whb 3 months ago
parent a51f327b91
commit 5084d4d299

@ -34,6 +34,7 @@ public class AuthenticationService implements UserDetailsService {
jwtUser.setUserId(user.getUserId()); jwtUser.setUserId(user.getUserId());
jwtUser.setName(user.getName()); jwtUser.setName(user.getName());
jwtUser.setRoleId(user.getRoleId()); jwtUser.setRoleId(user.getRoleId());
jwtUser.setStudentId(user.getStudentId());
return jwtUser; return jwtUser;
} }

@ -16,6 +16,7 @@ import java.util.Objects;
@Setter @Setter
public class JwtUser implements UserDetails { public class JwtUser implements UserDetails {
private String username; private String username;
private String studentId;
private String password; private String password;
private String name; private String name;
private String userId; private String userId;

@ -41,6 +41,11 @@ public class LoginResult {
@ApiModelProperty("用户名") @ApiModelProperty("用户名")
private String username; private String username;
@ApiModelProperty("studentId")
private String studentId;
// user.setUserId(dataObject.getStr("userId")); // user.setUserId(dataObject.getStr("userId"));
// user.setName(dataObject.getStr("name")); // user.setName(dataObject.getStr("name"));
@ -74,6 +79,7 @@ public class LoginResult {
result.setCollegeId(jwtUser.getCollegeId()); result.setCollegeId(jwtUser.getCollegeId());
result.setUsername(jwtUser.getUsername()); result.setUsername(jwtUser.getUsername());
result.setSchoolName(jwtUser.getSchoolName()); result.setSchoolName(jwtUser.getSchoolName());
result.setStudentId(jwtUser.getStudentId());
return result; return result;
} }
} }

@ -1,8 +1,14 @@
package com.sztzjy.trade.controller.stu; 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.annotation.AnonymousAccess;
import com.sztzjy.trade.entity.StuAchievementInfo; import com.sztzjy.trade.entity.StuAchievementInfo;
import com.sztzjy.trade.entity.StuCodeInfoDTO;
import com.sztzjy.trade.entity.StuTaskPracticeRecord; import com.sztzjy.trade.entity.StuTaskPracticeRecord;
import com.sztzjy.trade.entity.dto.StuExpermentSubmitDTO; import com.sztzjy.trade.entity.dto.StuExpermentSubmitDTO;
import com.sztzjy.trade.service.StuExpermentTrainingService; import com.sztzjy.trade.service.StuExpermentTrainingService;
@ -20,6 +26,9 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.File; 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( );
}
} }

@ -112,12 +112,15 @@ public class UserController {
SecurityContextHolder.getContext().setAuthentication(authentication); SecurityContextHolder.getContext().setAuthentication(authentication);
jwtUser = (JwtUser) authentication.getPrincipal(); jwtUser = (JwtUser) authentication.getPrincipal();
String token = TokenProvider.createToken(jwtUser); String token = TokenProvider.createToken(jwtUser);
loginResult.setClassId(Convert.toInt(stuUser.getClassId()));
loginResult.setUserId(stuUser.getUserId()); loginResult.setUserId(stuUser.getUserId());
loginResult.setUsername(stuUser.getSchoolId()); loginResult.setUsername(stuUser.getStudentId());
loginResult.setName(stuUser.getName());
loginResult.setRoleId(stuUser.getRoleId()); loginResult.setRoleId(stuUser.getRoleId());
loginResult.setSchoolName(stuUser.getSchoolName());
loginResult.setSchoolId(Integer.valueOf(stuUser.getSchoolId())); loginResult.setSchoolId(Integer.valueOf(stuUser.getSchoolId()));
loginResult.setAccessToken(token); loginResult.setAccessToken(token);
loginResult.setStudentId(stuUser.getStudentId());
redisUtil.set(itemName+"-token:"+jwtUser.getUserId(),token,3600); redisUtil.set(itemName+"-token:"+jwtUser.getUserId(),token,3600);
redisUtil.set(itemName+"-userId:"+jwtUser.getUserId(),System.currentTimeMillis(),3600); redisUtil.set(itemName+"-userId:"+jwtUser.getUserId(),System.currentTimeMillis(),3600);
@ -130,13 +133,15 @@ public class UserController {
SecurityContextHolder.getContext().setAuthentication(authentication); SecurityContextHolder.getContext().setAuthentication(authentication);
jwtUser = (JwtUser) authentication.getPrincipal(); jwtUser = (JwtUser) authentication.getPrincipal();
String token = TokenProvider.createToken(jwtUser); String token = TokenProvider.createToken(jwtUser);
loginResult.setClassId(Convert.toInt(stuUser.getClassId()));
loginResult.setUserId(stuUser.getUserId()); loginResult.setUserId(stuUser.getUserId());
loginResult.setUsername(stuUser.getSchoolId()); loginResult.setName(stuUser.getName());
loginResult.setUsername(stuUser.getStudentId());
loginResult.setRoleId(stuUser.getRoleId()); loginResult.setRoleId(stuUser.getRoleId());
loginResult.setSchoolId(Integer.valueOf(stuUser.getSchoolId())); loginResult.setSchoolId(Integer.valueOf(stuUser.getSchoolId()));
loginResult.setStudentId(stuUser.getStudentId());
loginResult.setAccessToken(token); loginResult.setAccessToken(token);
loginResult.setSchoolName(stuUser.getSchoolName());
redisUtil.set(itemName+"-token:"+jwtUser.getUserId(),token,3600); redisUtil.set(itemName+"-token:"+jwtUser.getUserId(),token,3600);
redisUtil.set(itemName+"-userId:"+jwtUser.getUserId(),System.currentTimeMillis(),3600); redisUtil.set(itemName+"-userId:"+jwtUser.getUserId(),System.currentTimeMillis(),3600);

@ -40,7 +40,8 @@ public class TaskController {
long currentTime = System.currentTimeMillis(); // 获取当前时间戳 long currentTime = System.currentTimeMillis(); // 获取当前时间戳
long timeDifference = currentTime - newTime; // 计算时间差 long timeDifference = currentTime - newTime; // 计算时间差
long time = 20 * 60 * 1000; //long time = 20 * 60 * 1000;
long time = 60 * 60 * 1000;
// 判断时间差是否大于 20 分钟20 分钟 = 20 * 60 * 1000 毫秒) // 判断时间差是否大于 20 分钟20 分钟 = 20 * 60 * 1000 毫秒)
if (timeDifference > time) { if (timeDifference > time) {
//大于20分钟未操作 表明用户已经离线 在线时长+20分钟 //大于20分钟未操作 表明用户已经离线 在线时长+20分钟

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

@ -9,6 +9,7 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sztzjy.trade.config.Constant; import com.sztzjy.trade.config.Constant;
import com.sztzjy.trade.entity.*; import com.sztzjy.trade.entity.*;
import com.sztzjy.trade.entity.dto.StuSignDTO; 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.mapper.TeacherOpenCourseStudentSigninSettingMapper;
import com.sztzjy.trade.service.StuSignInfoService; import com.sztzjy.trade.service.StuSignInfoService;
import com.sztzjy.trade.util.IpUtils; import com.sztzjy.trade.util.IpUtils;
import com.sztzjy.trade.util.RedisUtil;
import com.sztzjy.trade.util.ResultEntity; import com.sztzjy.trade.util.ResultEntity;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
@ -48,6 +50,7 @@ public class StuSignInfoServiceImpl implements StuSignInfoService {
@Autowired @Autowired
private StuLearningRecordMapper stuLearningRecordMapper; private StuLearningRecordMapper stuLearningRecordMapper;
/** /**
* *
* *
@ -64,6 +67,8 @@ public class StuSignInfoServiceImpl implements StuSignInfoService {
//开启分页 //开启分页
PageHelper.startPage(page, size); PageHelper.startPage(page, size);
List<StudentSigninSettingDTO> list = new ArrayList<>(); 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);
} }
/** /**

Loading…
Cancel
Save