From 0c9c7def62dec5f99608f99f632d7bfad7c822e4 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 9 Jul 2020 10:55:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epmet-auth/pom.xml | 18 ++++--- .../controller/PaUserLoginController.java | 34 +++++++++++++ .../com/epmet/dto/form/PaWxCodeFormDTO.java | 23 +++++++++ .../com/epmet/service/PaUserLoginService.java | 14 ++++++ .../service/impl/PaUserLoginServiceImpl.java | 49 +++++++++++++++++++ 5 files changed, 132 insertions(+), 6 deletions(-) create mode 100644 epmet-auth/src/main/java/com/epmet/controller/PaUserLoginController.java create mode 100644 epmet-auth/src/main/java/com/epmet/dto/form/PaWxCodeFormDTO.java create mode 100644 epmet-auth/src/main/java/com/epmet/service/PaUserLoginService.java create mode 100644 epmet-auth/src/main/java/com/epmet/service/impl/PaUserLoginServiceImpl.java diff --git a/epmet-auth/pom.xml b/epmet-auth/pom.xml index e0f97c1757..59775a1316 100644 --- a/epmet-auth/pom.xml +++ b/epmet-auth/pom.xml @@ -104,6 +104,12 @@ 2.0.0 compile + + com.github.binarywang + weixin-java-mp + 3.6.0 + compile + @@ -154,8 +160,8 @@ - wx67fdf7da3fee1890 - ae15094f485af9e5c6b5a8a55945332a + wxe73d1ecd13b5e9fb + 87c9f99e2ea5b695c79e8f5388789959 111 111 @@ -191,8 +197,8 @@ - wx67fdf7da3fee1890 - ae15094f485af9e5c6b5a8a55945332a + wxe73d1ecd13b5e9fb + 87c9f99e2ea5b695c79e8f5388789959 111 111 @@ -228,8 +234,8 @@ - wx67fdf7da3fee1890 - ae15094f485af9e5c6b5a8a55945332a + wxe73d1ecd13b5e9fb + 87c9f99e2ea5b695c79e8f5388789959 111 111 diff --git a/epmet-auth/src/main/java/com/epmet/controller/PaUserLoginController.java b/epmet-auth/src/main/java/com/epmet/controller/PaUserLoginController.java new file mode 100644 index 0000000000..de8922bc18 --- /dev/null +++ b/epmet-auth/src/main/java/com/epmet/controller/PaUserLoginController.java @@ -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 loginByWxCode(@RequestBody PaWxCodeFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, PaWxCodeFormDTO.AddUserInternalGroup.class); + UserTokenResultDTO userTokenResultDTO=paUserLoginService.loginByWxCode(formDTO); + return new Result().ok(userTokenResultDTO); + } + +} diff --git a/epmet-auth/src/main/java/com/epmet/dto/form/PaWxCodeFormDTO.java b/epmet-auth/src/main/java/com/epmet/dto/form/PaWxCodeFormDTO.java new file mode 100644 index 0000000000..33161e90c9 --- /dev/null +++ b/epmet-auth/src/main/java/com/epmet/dto/form/PaWxCodeFormDTO.java @@ -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; +} diff --git a/epmet-auth/src/main/java/com/epmet/service/PaUserLoginService.java b/epmet-auth/src/main/java/com/epmet/service/PaUserLoginService.java new file mode 100644 index 0000000000..bf64bbcb27 --- /dev/null +++ b/epmet-auth/src/main/java/com/epmet/service/PaUserLoginService.java @@ -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); +} diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/PaUserLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/PaUserLoginServiceImpl.java new file mode 100644 index 0000000000..4f24e8ea82 --- /dev/null +++ b/epmet-auth/src/main/java/com/epmet/service/impl/PaUserLoginServiceImpl.java @@ -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; + } +}