forked from rongchao/epmet-cloud-rizhao
5 changed files with 132 additions and 6 deletions
@ -0,0 +1,34 @@ |
|||||
|
package com.epmet.controller; |
||||
|
|
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.commons.tools.validator.ValidatorUtils; |
||||
|
import com.epmet.dto.form.PaWxCodeFormDTO; |
||||
|
import com.epmet.dto.result.UserTokenResultDTO; |
||||
|
import com.epmet.service.PaUserLoginService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
/** |
||||
|
* 描述一下 |
||||
|
* |
||||
|
* @author yinzuomei@elink-cn.com |
||||
|
* @date 2020/7/8 18:29 |
||||
|
*/ |
||||
|
@RestController |
||||
|
@RequestMapping("pa") |
||||
|
public class PaUserLoginController { |
||||
|
|
||||
|
@Autowired |
||||
|
private PaUserLoginService paUserLoginService; |
||||
|
|
||||
|
@PostMapping(value = "/loginbywxcode") |
||||
|
public Result<UserTokenResultDTO> loginByWxCode(@RequestBody PaWxCodeFormDTO formDTO) { |
||||
|
ValidatorUtils.validateEntity(formDTO, PaWxCodeFormDTO.AddUserInternalGroup.class); |
||||
|
UserTokenResultDTO userTokenResultDTO=paUserLoginService.loginByWxCode(formDTO); |
||||
|
return new Result<UserTokenResultDTO>().ok(userTokenResultDTO); |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,23 @@ |
|||||
|
package com.epmet.dto.form; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import javax.validation.constraints.NotBlank; |
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
/** |
||||
|
* 描述一下 |
||||
|
* |
||||
|
* @author yinzuomei@elink-cn.com |
||||
|
* @date 2020/7/8 18:32 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class PaWxCodeFormDTO implements Serializable { |
||||
|
private static final long serialVersionUID = -207861963128774742L; |
||||
|
public interface AddUserInternalGroup {} |
||||
|
/** |
||||
|
* wxCode |
||||
|
*/ |
||||
|
@NotBlank(message = "wxCode不能为空",groups = {AddUserInternalGroup.class}) |
||||
|
private String wxCode; |
||||
|
} |
@ -0,0 +1,14 @@ |
|||||
|
package com.epmet.service; |
||||
|
|
||||
|
import com.epmet.dto.form.PaWxCodeFormDTO; |
||||
|
import com.epmet.dto.result.UserTokenResultDTO; |
||||
|
|
||||
|
/** |
||||
|
* 描述一下 |
||||
|
* |
||||
|
* @author yinzuomei@elink-cn.com |
||||
|
* @date 2020/7/8 18:31 |
||||
|
*/ |
||||
|
public interface PaUserLoginService { |
||||
|
UserTokenResultDTO loginByWxCode(PaWxCodeFormDTO formDTO); |
||||
|
} |
@ -0,0 +1,49 @@ |
|||||
|
package com.epmet.service.impl; |
||||
|
|
||||
|
import com.epmet.commons.tools.exception.RenException; |
||||
|
import com.epmet.dto.form.PaWxCodeFormDTO; |
||||
|
import com.epmet.dto.result.UserTokenResultDTO; |
||||
|
import com.epmet.service.PaUserLoginService; |
||||
|
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; |
||||
|
|
||||
|
/** |
||||
|
* 描述一下 |
||||
|
* |
||||
|
* @author yinzuomei@elink-cn.com |
||||
|
* @date 2020/7/8 18:31 |
||||
|
*/ |
||||
|
@Service |
||||
|
public class PaUserLoginServiceImpl implements PaUserLoginService { |
||||
|
private static final Logger logger = LoggerFactory.getLogger(PaUserLoginServiceImpl.class); |
||||
|
@Autowired |
||||
|
private WxMpService wxMpService; |
||||
|
|
||||
|
|
||||
|
@Override |
||||
|
public UserTokenResultDTO loginByWxCode(PaWxCodeFormDTO formDTO) { |
||||
|
WxMpUser wxMpUser=this.getWxMpUser(formDTO.getWxCode()); |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
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[{}]", "解析微信用户信息失败"); |
||||
|
} |
||||
|
if (null == wxMpUser || StringUtils.isBlank(wxMpUser.getUnionId())) { |
||||
|
throw new RenException("解析微信用户信息失败"); |
||||
|
} |
||||
|
return wxMpUser; |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue