智慧保安后台管理-外网项目备份
guoshilong
2023-11-30 711c855e134edc75faf03d96ec8b3dd0e269fb0a
微信登录修改
2 files modified
81 ■■■■ changed files
src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/auth/granter/WxTokenGranter.java 55 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
@@ -199,8 +199,8 @@
    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");
@@ -212,30 +212,6 @@
        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);
    }
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;
    }
}