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;
+ }
+}