diff --git a/src/main/java/com/sztzjy/digital_credit/config/security/TokenProvider.java b/src/main/java/com/sztzjy/digital_credit/config/security/TokenProvider.java index 196d7cb..2dafb60 100644 --- a/src/main/java/com/sztzjy/digital_credit/config/security/TokenProvider.java +++ b/src/main/java/com/sztzjy/digital_credit/config/security/TokenProvider.java @@ -23,7 +23,7 @@ public class TokenProvider { private final static String SECRET = "MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAghgsx+OLLThi7c+/HgCaRla8n+/QLHt++uscoK22dMeaVa3WJvRb5C5qtHGzj9V74pI96JpxdWWCN3Zr1QtanQIDAQABAkB2fWRUD1jVMBVS+rPctLnPNPMKTRdzXGv0SC5D3tRfGZqdcfsmZg8hzBVndHxngmwZS73d+hPjofcdefDDnXq1AiEAz/r1AMF7fweN70mbKgBJuTja37puJMsH2Szwrvb5jlcCIQCgIaLZ5d9J7OomL0NwH8ghba/xgBEpKzErfGbFnTfeKwIgc8ptczFFV1DWZb2eJIEqinOr79l0jwl2YiQSD+cyw1sCIHqxCvv1Wx5jPgy/zeYNE+Q5DMP3Ii7u/x+Yk436JiI9AiEAio84hFm44YTUuV7YCYsbyvnCn/vtcAaqZlczbeHlP1I="; private final static long EXP_TIME = 1000 * 60 * 60 * 4; - private final static String SECRET_ZHIYUN = "zy_wh_mnjy_fp76ckwuczzmb67w0a8x0"; + private final static String SECRET_ZHIYUN = "zy_zx_mnjy_fp76ckwuczzmb67w0a8x0"; private final static String CURRENT_TO_ZHIYUN = "jVzvfoZU_eFN0CJcFARg0K6DlzTLa7oMWB7lV_y2s7bkv2Bem0281wEwlJp5afhsmM-Ynwvh3mAUTpwblGEz1A"; @@ -68,6 +68,43 @@ public class TokenProvider { } } + + public static JwtUser getJWTUserOne(String jwtToken) { + jwtToken = jwtToken.replace("Bearer ", ""); + try { + Claims claims = Jwts.parser() + .setSigningKey( + new SecretKeySpec( + SECRET.getBytes("UTF-8"), + SignatureAlgorithm.HS512.getJcaName() + ) + ) + .parseClaimsJws(jwtToken) + .getBody(); + + JwtUser jwtUser = new JwtUser(); + jwtUser.setName(claims.get("name")==null?"":claims.get("name").toString()); + jwtUser.setUserId(claims.get("userId")==null?"":claims.get("userId").toString()); + jwtUser.setRoleId(Integer.valueOf(claims.get("roleId")==null?"0":claims.get("roleId").toString())); + jwtUser.setClassId(Integer.valueOf(claims.get("classId")==null?"0":claims.get("classId").toString())); + jwtUser.setSchoolId(Integer.valueOf(claims.get("schoolId")==null?"0":claims.get("schoolId").toString())); + jwtUser.setUsername(claims.get("username")==null?"":claims.get("username").toString()); + jwtUser.setAuthorityCodes((List) claims.get("authorityCodes")); + return jwtUser; + } catch (ExpiredJwtException e1) { + throw new ExpiredJwtException(null, null, "token过期"); + } catch (UnsupportedJwtException e2) { + throw new UnsupportedJwtException("不支持的token"); + } catch (MalformedJwtException e3) { + throw new MalformedJwtException("token格式错误"); + } catch (SignatureException e4) { + throw new SignatureException("签名失败"); + } catch (Exception e) { + throw new UnAuthorizedException("无效token"); + } + } + + public static String createToken(JwtUser jwtUser) { Key key = Keys.hmacShaKeyFor(SECRET.getBytes()); Date expiration = new Date(System.currentTimeMillis() + EXP_TIME); diff --git a/src/main/java/com/sztzjy/digital_credit/controller/StuConceptBlockController.java b/src/main/java/com/sztzjy/digital_credit/controller/StuConceptBlockController.java index 56241a5..ddd1bf9 100644 --- a/src/main/java/com/sztzjy/digital_credit/controller/StuConceptBlockController.java +++ b/src/main/java/com/sztzjy/digital_credit/controller/StuConceptBlockController.java @@ -35,7 +35,7 @@ import java.nio.file.Paths; import java.util.List; @RestController -@Api(tags="区块链") +@Api(tags="公共模块") @RequestMapping("/api/stu/concept/block") public class StuConceptBlockController { @@ -147,7 +147,16 @@ public class StuConceptBlockController { stuConceptBlockService.download(userId, response, module); } + @GetMapping("/getResourceUrl") + @ApiOperation("获取视频文件") + @AnonymousAccess + public ResultEntity getResourceUrl(String name) { + StuResourcesExample example = new StuResourcesExample(); + example.createCriteria().andResourcesNameEqualTo(name); + List stuResources = stuResourcesMapper.selectByExample(example); + return new ResultEntity<>(HttpStatus.OK,"获取成功","uploadFile"+stuResources.get(0).getResourcesUrl()); + } @GetMapping("/getResource") @ApiOperation("获取视频流") diff --git a/src/main/java/com/sztzjy/digital_credit/controller/UserController.java b/src/main/java/com/sztzjy/digital_credit/controller/UserController.java index 39223b2..06ae273 100644 --- a/src/main/java/com/sztzjy/digital_credit/controller/UserController.java +++ b/src/main/java/com/sztzjy/digital_credit/controller/UserController.java @@ -55,7 +55,8 @@ public class UserController { @OperateLog(description = "登录授权") public ResultDataEntity login(@ApiParam("用户名") String username, @ApiParam("加密后的密码") String passwordEncode, - @ApiParam("智云携带的token")@RequestParam(required = false) String TOKEN) { + @ApiParam("智云携带的token")@RequestParam(required = false) String TOKEN, + @RequestParam(required = false) Integer type) { JwtUser jwtUser; String password; if(org.apache.commons.lang3.StringUtils.isBlank(TOKEN)){ //子系统登录 @@ -121,7 +122,23 @@ public class UserController { throw new IllegalArgumentException("请提供登录凭据"); } if (StringUtils.hasText(TOKEN)) { - jwtUser = TokenProvider.getJWTUserByZhiYun(TOKEN); + + if (type==null) + { + type = 0; + } + + if (type ==1 ) + { + jwtUser = TokenProvider.getJWTUserOne(TOKEN); + }else { + jwtUser = TokenProvider.getJWTUserByZhiYun(TOKEN); + } + + // jwtUser = TokenProvider.getJWTUserByZhiYun(TOKEN); + + + if (jwtUser == null) { throw new UnAuthorizedException("token无效"); } diff --git a/src/main/java/com/sztzjy/digital_credit/controller/tch/TchConceptTechnologyAchievement.java b/src/main/java/com/sztzjy/digital_credit/controller/tch/TchConceptTechnologyAchievement.java index 72e2ee4..024327b 100644 --- a/src/main/java/com/sztzjy/digital_credit/controller/tch/TchConceptTechnologyAchievement.java +++ b/src/main/java/com/sztzjy/digital_credit/controller/tch/TchConceptTechnologyAchievement.java @@ -319,6 +319,22 @@ public class TchConceptTechnologyAchievement { } + @GetMapping("/getReportFileURLByUserIdAndModule") + @ApiOperation("单条学生报告") + @AnonymousAccess + public ResultEntity getReportFileURLByUserIdAndModule(@RequestParam String userId, @RequestParam String module){ + + StuPracticalTrainingReportExample practicalTrainingReportExample = new StuPracticalTrainingReportExample(); + practicalTrainingReportExample.createCriteria().andUseridEqualTo(userId).andModuleEqualTo(module); + List stuPracticalTrainingReports = practicalTrainingReportMapper.selectByExample(practicalTrainingReportExample); + if (stuPracticalTrainingReports.isEmpty()) { + return new ResultEntity<>(HttpStatus.OK,"实验报告不存在!"); + } + + return new ResultEntity<>(HttpStatus.OK,"获取成功","uploadFile"+stuPracticalTrainingReports.get(0).getUrl()); + + } + @GetMapping("/getReport") @ApiOperation("获取单个学生报告接口") @AnonymousAccess @@ -345,6 +361,9 @@ public class TchConceptTechnologyAchievement { } + + + @PostMapping("/ratingAndComment") @ApiOperation("老师输入评语和打分") @AnonymousAccess