package cn.mb.cloud.auth.security.social.handler; import cn.mb.cloud.auth.security.entity.User; import cn.mb.cloud.auth.security.service.IUserService; import cn.mb.cloud.common.api.vo.UserVO; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.AllArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; /** * @author jason * @date 2018/11/18 */ @Slf4j @Component("WX") @AllArgsConstructor public class WeChatLoginHandler extends AbstractLoginHandler { private final IUserService userService; /** * 微信登录传入code *

* 通过code 调用qq 获取唯一标识 * * @param code * @return */ @Override public String identify(String code) { /*SysSocialDetails condition = new SysSocialDetails(); condition.setType(LoginTypeEnum.WECHAT.getType()); SysSocialDetails socialDetails = sysSocialDetailsMapper.selectOne(new QueryWrapper<>(condition)); String url = String.format(SecurityConstants.WX_AUTHORIZATION_CODE_URL, socialDetails.getAppId(), socialDetails.getAppSecret(), code); String result = HttpUtil.get(url); log.debug("微信响应报文:{}", result); Object obj = JSONUtil.parseObj(result).get("openid");*/ return code; } /** * openId 获取用户信息 * * @param openId * @return */ @Override @SneakyThrows public UserVO info(String openId, String threeAvatar, String threeName) { /* String threeName = WebUtils.getRequest().getParameter("nickname"); String threeAvatar = WebUtils.getRequest().getParameter("iconurl");*/ User user = null; user = userService.getOne(Wrappers.query().lambda(). eq(User::getOpenId, openId). eq(User::getDelFlag, 0)); if (user == null) { //注册 } UserVO userVO = new UserVO(); BeanUtils.copyProperties(user, userVO); if (StringUtils.isEmpty(user.getUsername())) { userVO.setUsername(user.getOpenId()); } return userVO; } }