From a8f6857cc78e33dace72ae38af7ebf2197c62934 Mon Sep 17 00:00:00 2001 From: whb <17803890193@163.com> Date: Fri, 12 Sep 2025 10:20:46 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=80=81=E5=B8=88=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E5=90=8C=E6=AD=A5=E7=99=BB=E5=BD=95=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sztzjy/linkCommerce/config/Constant.java | 2 +- .../config/security/AuthenticationFilter.java | 12 +++++--- .../config/security/WebSecurityConfig.java | 8 +++-- .../stu/IndustryDemandAnalysisController.java | 4 --- .../controller/stu/LoginController.java | 30 +++++++++++++------ .../service/impl/UserInfoServiceImpl.java | 27 +++++++++++++++++ src/main/resources/application-dev.yml | 2 +- src/main/resources/application.yml | 5 ++-- 8 files changed, 66 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/sztzjy/linkCommerce/config/Constant.java b/src/main/java/com/sztzjy/linkCommerce/config/Constant.java index 9d66b96..72dedc2 100644 --- a/src/main/java/com/sztzjy/linkCommerce/config/Constant.java +++ b/src/main/java/com/sztzjy/linkCommerce/config/Constant.java @@ -16,7 +16,7 @@ public class Constant { */ public static final String BASIC = "Basic"; - public static final String SYSTEMNAME = "电商互联网产品开发实训系统"; + public static final String SYSTEMNAME = "电商互联网产品开发实验系统"; public static final String PRO_GYQDGL="供应渠道管理"; public static final String MODULE_CGXQYC="采购需求预测"; diff --git a/src/main/java/com/sztzjy/linkCommerce/config/security/AuthenticationFilter.java b/src/main/java/com/sztzjy/linkCommerce/config/security/AuthenticationFilter.java index 7008873..95092ef 100644 --- a/src/main/java/com/sztzjy/linkCommerce/config/security/AuthenticationFilter.java +++ b/src/main/java/com/sztzjy/linkCommerce/config/security/AuthenticationFilter.java @@ -17,6 +17,7 @@ import org.springframework.util.PathMatcher; import org.springframework.util.StringUtils; import org.springframework.web.filter.OncePerRequestFilter; +import javax.annotation.Resource; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -44,11 +45,14 @@ public class AuthenticationFilter extends OncePerRequestFilter { // // } - private final TokenProvider tokenProvider; +// private final TokenProvider tokenProvider; +// +// public AuthenticationFilter(TokenProvider tokenProvider) { +// this.tokenProvider = tokenProvider; +// } - public AuthenticationFilter(TokenProvider tokenProvider) { - this.tokenProvider = tokenProvider; - } + @Resource + private TokenProvider tokenProvider; @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws IOException, ServletException { diff --git a/src/main/java/com/sztzjy/linkCommerce/config/security/WebSecurityConfig.java b/src/main/java/com/sztzjy/linkCommerce/config/security/WebSecurityConfig.java index c0d239e..361eae1 100644 --- a/src/main/java/com/sztzjy/linkCommerce/config/security/WebSecurityConfig.java +++ b/src/main/java/com/sztzjy/linkCommerce/config/security/WebSecurityConfig.java @@ -49,8 +49,10 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { // @Value("${item.name}") // private String itemName; - @Resource - private TokenProvider tokenProvider; + + + @Autowired + private AuthenticationFilter authenticationFilter; @Override @@ -66,7 +68,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { .sessionRegistry(sessionRegistry()) //可以控制会话的生命周期等。 ) // .addFilterBefore(new AuthenticationFilter(redisUtil), UsernamePasswordAuthenticationFilter.class) //自定义过滤链,认证流程中执行 - .addFilterBefore(new AuthenticationFilter(tokenProvider), UsernamePasswordAuthenticationFilter.class) //自定义过滤链,认证流程中执行 + .addFilterBefore(authenticationFilter, UsernamePasswordAuthenticationFilter.class) //自定义过滤链,认证流程中执行 .cors().and() //启用跨域资源共享(CORS)支持 //在响应头中添加 Access-Control-Allow-Headers,允许浏览器的跨域请求中携带 Authorization 头部信息,这通常用于传递认证信息(如 JWT token) .headers().addHeaderWriter(new StaticHeadersWriter("Access-Control-Allow-Headers", "Authorization")) diff --git a/src/main/java/com/sztzjy/linkCommerce/controller/stu/IndustryDemandAnalysisController.java b/src/main/java/com/sztzjy/linkCommerce/controller/stu/IndustryDemandAnalysisController.java index 08b9f3d..c98e236 100644 --- a/src/main/java/com/sztzjy/linkCommerce/controller/stu/IndustryDemandAnalysisController.java +++ b/src/main/java/com/sztzjy/linkCommerce/controller/stu/IndustryDemandAnalysisController.java @@ -265,7 +265,6 @@ public class IndustryDemandAnalysisController { jzhyfxStuAnswerMapper.insertSelective(jzhyfxStuAnswer); - Boolean aBoolean = scoreService.insertScore(competitiveEnvDTO.getUserId(), Constant.PRO_SCXQWJ, Constant.MODULE_JZHJFX, BigDecimal.valueOf(100 - count), null); // scoreService.insertScore(userId, Constant.PRO_GYQDGL, Constant.MODULE_CGXQYC, BigDecimal.valueOf(100 - errorCount), null); if (aBoolean) { @@ -295,7 +294,6 @@ public class IndustryDemandAnalysisController { } - @ApiOperation("EXCEL下载数据") @GetMapping("/downloadExcel") @AnonymousAccess @@ -322,8 +320,6 @@ public class IndustryDemandAnalysisController { fileUtil.download(response,"竞争环境分析.xls"); } - - } } diff --git a/src/main/java/com/sztzjy/linkCommerce/controller/stu/LoginController.java b/src/main/java/com/sztzjy/linkCommerce/controller/stu/LoginController.java index 623e37e..1fadca6 100644 --- a/src/main/java/com/sztzjy/linkCommerce/controller/stu/LoginController.java +++ b/src/main/java/com/sztzjy/linkCommerce/controller/stu/LoginController.java @@ -118,7 +118,16 @@ public class LoginController { } passWord = jwtUser.getPassword(); - userName = jwtUser.getStudentId(); + userName = jwtUser.getUsername(); + if (StringUtils.isBlank(userName)){ + userName = jwtUser.getUsername(); + } + + if (StringUtils.isBlank(userName)){ + userName = jwtUser.getName(); + } + + if (!org.springframework.util.StringUtils.hasText(passWord)) { throw new UnAuthorizedException("token 中缺少用户密码信息!"); } @@ -128,18 +137,21 @@ public class LoginController { if (jwtUser == null) { throw new UnAuthorizedException("登录失败,用户不存在!"); } + if (jwtUser.getRoleId()==4) + { + Date authorizeTime = jwtUser.getAuthorizeTime(); + Date authorizeEndTime = jwtUser.getAuthorizeEndTime(); - Date authorizeTime = jwtUser.getAuthorizeTime(); - Date authorizeEndTime = jwtUser.getAuthorizeEndTime(); + if (authorizeTime == null || authorizeEndTime == null) { + throw new UnAuthorizedException("系统未授权!"); + } - if (authorizeTime == null || authorizeEndTime == null) { - throw new UnAuthorizedException("系统未授权!"); + Date now = new Date(); + if (now.before(authorizeTime) || now.after(authorizeEndTime)) { + throw new UnAuthorizedException("系统授权已过期!"); + } } - Date now = new Date(); - if (now.before(authorizeTime) || now.after(authorizeEndTime)) { - throw new UnAuthorizedException("系统授权已过期!"); - } Authentication authentication = new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(authentication); diff --git a/src/main/java/com/sztzjy/linkCommerce/service/impl/UserInfoServiceImpl.java b/src/main/java/com/sztzjy/linkCommerce/service/impl/UserInfoServiceImpl.java index f400f65..c6a484a 100644 --- a/src/main/java/com/sztzjy/linkCommerce/service/impl/UserInfoServiceImpl.java +++ b/src/main/java/com/sztzjy/linkCommerce/service/impl/UserInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.sztzjy.linkCommerce.service.impl; +import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.UUID; import cn.hutool.core.util.IdUtil; import com.sztzjy.linkCommerce.entity.*; @@ -82,6 +83,32 @@ public class UserInfoServiceImpl implements UserInfoService { String password = zyUserInfo.getPassword(); Integer roleId = zyUserInfo.getRoleId(); + if (roleId == 3) + { + //查询班级名和班级ID + UserinfoExample userInfoExample = new UserinfoExample(); + userInfoExample.createCriteria().andSchoolIdEqualTo(String.valueOf(zyUserInfo.getSchoolId())).andRoleEqualTo(4); + List userInfos = userInfoMapper.selectByExample(userInfoExample); + if (userInfos.isEmpty() || userInfos==null){ + //该学校暂未开通考试账号 + zyUserInfo.setClassName(zyUserInfo.getSchoolName()+"-默认班级"); + String schoolId = zyUserInfo.getSchoolId().toString() + "00"; + zyUserInfo.setClassId(Convert.toInt(schoolId)); + + }else { + Userinfo userinfo = userInfos.get(0); + + String schoolClassId = userinfo.getSchoolClassId(); + //根据ClassId去查询班级名 + SchoolClass existingClass = schoolClassMapper.selectByPrimaryKey(schoolClassId); + String className = existingClass.getClassName(); + zyUserInfo.setClassId(Integer.valueOf(schoolClassId)); + zyUserInfo.setClassName(className); + } + + + } + // 检查用户是否已存在 UserinfoExample userInfoExample = new UserinfoExample(); userInfoExample.createCriteria().andUsernameEqualTo(username); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 6e35776..aaac7e4 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -6,7 +6,7 @@ # username: ${DB_USER:root} # password: ${DB_PWD:sztzjy2017} # driver-class-name: com.mysql.cj.jdbc.Driver - +#120.79.54.255 spring: datasource: druid: diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e551708..491b277 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -20,11 +20,12 @@ spring: pathmatch: matching-strategy: ant_path_matcher redis: - host: 120.79.54.255 + host: localhost + # host: 120.79.54.255 port: 6359 password: tzredis timeout: 1800000 - database: 1 + database: 2 jedis: max-active: 500 max-idle: 50