|
|
|
package com.epmet.service.impl;
|
|
|
|
|
|
|
|
import com.epmet.commons.tools.exception.RenException;
|
|
|
|
import com.epmet.dto.form.PaWxCodeFormDTO;
|
|
|
|
import com.epmet.service.PublicUserLoginService;
|
|
|
|
import me.chanjar.weixin.common.error.WxErrorException;
|
|
|
|
import me.chanjar.weixin.mp.api.WxMpService;
|
|
|
|
import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
|
|
|
|
import me.chanjar.weixin.mp.bean.result.WxMpUser;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 描述一下
|
|
|
|
*
|
|
|
|
* @author yinzuomei@elink-cn.com
|
|
|
|
* @date 2020/7/8 18:31
|
|
|
|
*/
|
|
|
|
@Service
|
|
|
|
public class PublicUserLoginServiceImpl implements PublicUserLoginService {
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(PublicUserLoginServiceImpl.class);
|
|
|
|
@Autowired
|
|
|
|
private WxMpService wxMpService;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Map loginByWxCode(PaWxCodeFormDTO formDTO) {
|
|
|
|
WxMpUser wxMpUser=this.getWxMpUser(formDTO.getWxCode());
|
|
|
|
Map map =new HashMap();
|
|
|
|
map.put("微信用户信息",wxMpUser);
|
|
|
|
return map;
|
|
|
|
}
|
|
|
|
|
|
|
|
private WxMpUser getWxMpUser(String wxCode) {
|
|
|
|
WxMpUser wxMpUser = null;
|
|
|
|
try {
|
|
|
|
WxMpOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.oauth2getAccessToken(wxCode);
|
|
|
|
wxMpUser = wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);
|
|
|
|
} catch (WxErrorException e) {
|
|
|
|
logger.error("->[getWxMpUser]::error[{}]", "解析微信用户信息失败",e.getMessage());
|
|
|
|
e.printStackTrace();
|
|
|
|
throw new RenException("解析微信用户信息失败"+e.getMessage());
|
|
|
|
}
|
|
|
|
if (null == wxMpUser || StringUtils.isBlank(wxMpUser.getUnionId())) {
|
|
|
|
throw new RenException("解析微信用户信息失败");
|
|
|
|
}
|
|
|
|
return wxMpUser;
|
|
|
|
}
|
|
|
|
}
|