java110
2023-08-22 ded40ebbd1613490fc68190dbd92db5d7243267f
service-api/src/main/java/com/java110/api/smo/login/impl/OwnerAppLoginSMOImpl.java
@@ -11,8 +11,8 @@
import com.java110.core.factory.WechatFactory;
import com.java110.core.log.LoggerFactory;
import com.java110.dto.owner.OwnerAppUserDto;
import com.java110.dto.ownerCarOpenUser.OwnerCarOpenUserDto;
import com.java110.dto.smallWeChat.SmallWeChatDto;
import com.java110.dto.owner.OwnerCarOpenUserDto;
import com.java110.dto.wechat.SmallWeChatDto;
import com.java110.dto.user.UserDto;
import com.java110.intf.user.IOwnerCarOpenUserV1InnerServiceSMO;
import com.java110.utils.cache.CommonCache;
@@ -54,6 +54,7 @@
    private final static int expireTime = 7200;
    private final static int LOGIN_PAGE = 1;
    private final static int COMMON_PAGE = 2;
    @Autowired
    private RestTemplate restTemplate;
@@ -214,13 +215,12 @@
        logger.debug("调用微信换去openId " + paramOut);
        if (paramOut.getStatusCode() != HttpStatus.OK) {
            return ResultVo.redirectPage(errorUrl);
        }
        JSONObject paramObj = JSONObject.parseObject(paramOut.getBody());
        //获取 openId
        String openId = paramObj.getString("openid");
        String userinfo_url = WechatConstant.APP_GET_USER_INFO_URL
                .replace("ACCESS_TOKEN", paramObj.getString("access_token"))
                .replace("OPENID", openId);
@@ -234,6 +234,11 @@
        //处理昵称有特殊符号导致 入库失败问题
        userinfo_paramObj.put("nickname", Base64Convert.byteToBase64(userinfo_paramObj.getString("nickname").getBytes()));
        //公众号未绑定 开放平台
        if (StringUtil.isEmpty(userinfo_paramObj.getString("unionid"))) {
            userinfo_paramObj.put("unionid", "-1");
        }
        int loginFlag = paramIn.getInteger("loginFlag");
@@ -250,7 +255,20 @@
            } else {
                errorUrl += ("?code=" + code);
            }
            logger.debug("登录跳转url:{}", errorUrl);
            return ResultVo.redirectPage(errorUrl);
        }
        if (loginFlag == COMMON_PAGE) {
            //将openId放到redis 缓存,给前段下发临时票据
            if (errorUrl.indexOf("?") > 0) {
                redirectUrl += ("&openId=" + openId);
            } else {
                redirectUrl += ("?openId=" + openId);
            }
            logger.debug("跳转url:{}", redirectUrl);
            return ResultVo.redirectPage(redirectUrl);
        }
        //判断当前openId 是否绑定了业主
@@ -267,6 +285,7 @@
            CommonCache.setValue(code, openId, expireTime);
            CommonCache.setValue(code + "-nickname", userinfo_paramObj.getString("nickname"), expireTime);
            CommonCache.setValue(code + "-headimgurl", userinfo_paramObj.getString("headimgurl"), expireTime);
            CommonCache.setValue(code + "-unionid", userinfo_paramObj.getString("unionid"), expireTime);
            if (errorUrl.indexOf("?") > 0) {
                errorUrl += ("&code=" + code);
            } else {
@@ -296,6 +315,8 @@
            CommonCache.setValue(code, openId, expireTime);
            CommonCache.setValue(code + "-nickname", userinfo_paramObj.getString("nickname"), expireTime);
            CommonCache.setValue(code + "-headimgurl", userinfo_paramObj.getString("headimgurl"), expireTime);
            CommonCache.setValue(code + "-unionid", userinfo_paramObj.getString("unionid"), expireTime);
            if (errorUrl.indexOf("?") > 0) {
                errorUrl += ("&code=" + code);
            } else {
@@ -424,7 +445,7 @@
            openUrl = WechatConstant.OPEN_AUTH
                    .replace("APPID", smallWeChatDto.getAppId())
                    .replace("SCOPE", "snsapi_userinfo")
                    .replace("SCOPE", "snsapi_base")
                    .replace(
                            "REDIRECT_URL",
                            URLEncoder