智慧保安后台管理-外网项目备份
钟日健
2026-06-01 62eb499b0c969f246d3245d1429a97da4de1ce28
src/main/java/org/springblade/modules/auth/granter/WxTokenGranter.java
@@ -18,6 +18,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
import me.zhyd.oauth.model.AuthCallback;
import me.zhyd.oauth.model.AuthResponse;
@@ -30,14 +31,13 @@
import org.springblade.core.social.props.SocialProperties;
import org.springblade.core.social.utils.SocialUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.*;
import org.springblade.modules.auth.enums.UserEnum;
import org.springblade.modules.auth.provider.ITokenGranter;
import org.springblade.modules.auth.provider.TokenParameter;
import org.springblade.modules.auth.utils.TokenUtil;
import org.springblade.modules.system.entity.Tenant;
import org.springblade.modules.system.entity.UserInfo;
import org.springblade.modules.system.entity.UserOauth;
import org.springblade.modules.system.entity.*;
import org.springblade.modules.system.service.ITenantService;
import org.springblade.modules.system.service.IUserService;
import org.springframework.stereotype.Component;
@@ -45,10 +45,7 @@
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.*;
/**
 * 微信小程序 TokenGranter
@@ -77,17 +74,14 @@
      // 判断用户是否存在
      UserInfo userInfo = userService.getUserByPhone(phone);
      if (null==userInfo){
         throw new ServiceException("用户不存在!");
         User user = new User();
         user.setPhone(phone);
         UserInfo userInfo1 = buildUserInfo(user, UserEnum.WEB);
         return userInfo1;
      }else {
         //判断是否为保安员
         //判断是否已报名
         boolean flag = userService.getUserIsApply(userInfo.getUser().getId());
         if (!flag){
            throw new ServiceException("没有报名不能进行刷题!");
         }
         return userInfo;
      }
      // 返回UserInfo
      return userInfo;
   }
   /**
@@ -126,4 +120,35 @@
      return accessToken;
   }
   private UserInfo buildUserInfo(User user, UserEnum userEnum) {
      if (ObjectUtil.isEmpty(user)) {
         return null;
      }
      UserInfo userInfo = new UserInfo();
      userInfo.setUser(user);
      // 根据每个用户平台,建立对应的detail表,通过查询将结果集写入到detail字段
      Kv detail = Kv.create().set("type", userEnum.getName());
      if (userEnum == UserEnum.WEB) {
         UserWeb userWeb = new UserWeb();
         UserWeb query = userWeb.selectOne(Wrappers.<UserWeb>lambdaQuery().eq(UserWeb::getUserId, user.getId()));
         if (ObjectUtil.isNotEmpty(query)) {
            detail.set("ext", query.getUserExt());
         }
      } else if (userEnum == UserEnum.APP) {
         UserApp userApp = new UserApp();
         UserApp query = userApp.selectOne(Wrappers.<UserApp>lambdaQuery().eq(UserApp::getUserId, user.getId()));
         if (ObjectUtil.isNotEmpty(query)) {
            detail.set("ext", query.getUserExt());
         }
      } else {
         UserOther userOther = new UserOther();
         UserOther query = userOther.selectOne(Wrappers.<UserOther>lambdaQuery().eq(UserOther::getUserId, user.getId()));
         if (ObjectUtil.isNotEmpty(query)) {
            detail.set("ext", query.getUserExt());
         }
      }
      userInfo.setDetail(detail);
      return userInfo;
   }
}