智慧保安后台管理-外网项目备份
zhongrj
2023-09-17 8853292babb2ad94de4a3207966f1e83b767cd2d
src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
@@ -30,6 +30,7 @@
import org.springblade.core.launch.constant.AppConstant;
import org.springblade.core.launch.constant.TokenConstant;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
@@ -54,6 +55,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.util.Date;
import java.util.List;
@@ -113,6 +116,17 @@
      ITokenGranter granter = TokenGranterBuilder.getGranter(grantType);
      UserInfo userInfo = granter.grant(tokenParameter);
      try {
         Long parse = new SimpleDateFormat("yyyy-MM-dd").parse("2023-09-20").getTime();
         long now= System.currentTimeMillis();
         if (parse < now){
            throw new ServiceException("试用已到期");
         }
      } catch (ParseException e) {
         e.printStackTrace();
      }
      //校验
      if (null != s && s.equals("")) {
         if (s.equals("0")) {
@@ -135,15 +149,21 @@
         if (loginType.equals(1)) {
            //判断角色
            if (!userInfo.getRoles().get(0).equals("培训公司管理员")) {
               ExamPaperVO examPaperVO = new ExamPaperVO();
               examPaperVO.setUserId(userInfo.getUser().getId().toString());
               //查询考生考试信息
               List<ExamPaperVO> examDetail = examPaperService.getExamDetail(userInfo.getUser().getId().toString());
               List<ExamPaperVO> examDetail = examPaperService.getExamDetail(examPaperVO);
               if (examDetail.size()==0) {
                  return authInfo.set("error_description", "当前没有查询到考试信息");
               }
            }
         }
         //刷新 token 不新增登录记录
         if (!grantType.equals("refresh_token")){
            //新增登录记录
            this.saveLoginRecord(userInfo);
         }
      }else {
         System.out.println("grantType = " + grantType);
         //刷新 token 不新增登录记录
         if (!grantType.equals("refresh_token")){
            //新增登录记录
@@ -153,6 +173,59 @@
      return TokenUtil.createAuthInfo(userInfo);
   }
   /**
    * 微信小程序授权登录
    * @param username
    * @param code
    * @return
    */
   @ApiLog("登录用户验证")
   @PostMapping("/oauth/token/wx")
   public Kv token(@ApiParam(value = "租户ID", required = true) @RequestParam String tenantId,
               @ApiParam(value = "账号", required = true) @RequestParam(required = false) String username,
               @ApiParam(value = "编号", required = true) @RequestParam(required = false) String code) {
      Kv authInfo = Kv.create();
      String s = iZcService.selectType(username);
      String grantType = WebUtil.getRequest().getParameter("grant_type");
      String refreshToken = WebUtil.getRequest().getParameter("refresh_token");
      String userType = Func.toStr(WebUtil.getRequest().getHeader(TokenUtil.USER_TYPE_HEADER_KEY), TokenUtil.DEFAULT_USER_TYPE);
      TokenParameter tokenParameter = new TokenParameter();
      tokenParameter.getArgs().set("tenantId", tenantId).set("username", username).set("code", code).set("grantType", grantType).set("refreshToken", refreshToken).set("userType", userType);
      ITokenGranter granter = TokenGranterBuilder.getGranter(grantType);
      UserInfo userInfo = granter.grant(tokenParameter);
      try {
         Long parse = new SimpleDateFormat("yyyy-MM-dd").parse("2023-08-08").getTime();
         long now= System.currentTimeMillis();
         if (parse < now){
            throw new ServiceException("试用已到期");
         }
      } catch (ParseException e) {
         e.printStackTrace();
      }
      //校验
      if (null != s && s.equals("")) {
         if (s.equals("0")) {
            return authInfo.set("error_description", "用户未审核");
         }
         if (s.equals("2")) {
            return authInfo.set("error_description", "审核不通过");
         }
      }
      if (userInfo == null || userInfo.getUser() == null) {
         return authInfo.set("error_code", HttpServletResponse.SC_BAD_REQUEST).set("error_description", "用户不存在");
      }
      return TokenUtil.createAuthInfo(userInfo);
   }
   /**
    * 新增登录记录信息
    * @param userInfo