diff --git a/esua-epdc/epdc-admin/epdc-admin-server/pom.xml b/esua-epdc/epdc-admin/epdc-admin-server/pom.xml
index 8ffa0860c..62661b3f0 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/pom.xml
+++ b/esua-epdc/epdc-admin/epdc-admin-server/pom.xml
@@ -138,6 +138,9 @@
wx29b074840ef4bfd9
4adb1afccc69f205cdf5b521d74e2aca
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
@@ -161,6 +164,9 @@
wx9f20a46906ab2c3e
dc13065f79429979d9f687d249eb5c4e
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
@@ -187,6 +193,9 @@
wx9f20a46906ab2c3e
dc13065f79429979d9f687d249eb5c4e
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
@@ -214,6 +223,9 @@
wxddb240334d09049f
071b8c70da0d0482aaf79052e64f83bc
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
@@ -257,6 +269,9 @@
wx9f20a46906ab2c3e
dc13065f79429979d9f687d249eb5c4e
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/application.yml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/application.yml
index e0e6d34a1..ecd16eb5a 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/application.yml
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/application.yml
@@ -80,11 +80,18 @@ wx:
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
+ - appid: @analysis.wx.ma.appId@
+ secret: @analysis.wx.ma.secret@
+ token: #微信小程序消息服务器配置的token
+ aesKey: #微信小程序消息服务器配置的EncodingAESKey
+ msgDataFormat: JSON
appId:
# 普通居民端的appId
normal: @wx.ma.appId@
# 工作端的appId
work: @work.wx.ma.appId@
+ # 数据分析端的appId
+ analysis: @analysis.wx.ma.appId@
feign:
diff --git a/esua-epdc/epdc-commons/epdc-commons-tools-wx-ma/src/main/java/com/elink/esua/epdc/utils/WxMaServiceUtils.java b/esua-epdc/epdc-commons/epdc-commons-tools-wx-ma/src/main/java/com/elink/esua/epdc/utils/WxMaServiceUtils.java
index dafd82d00..a58ef3edf 100644
--- a/esua-epdc/epdc-commons/epdc-commons-tools-wx-ma/src/main/java/com/elink/esua/epdc/utils/WxMaServiceUtils.java
+++ b/esua-epdc/epdc-commons/epdc-commons-tools-wx-ma/src/main/java/com/elink/esua/epdc/utils/WxMaServiceUtils.java
@@ -20,6 +20,9 @@ public class WxMaServiceUtils {
@Value("${wx.ma.appId.work}")
private String APPID_WORK;
+ @Value("${wx.ma.appId.analysis}")
+ private String APPID_ANALYSIS;
+
/**
* 获取党群e家 普通居民端配置
*
@@ -43,4 +46,18 @@ public class WxMaServiceUtils {
final WxMaService wxMaService = WxMaConfig.getMaService(APPID_WORK);
return wxMaService;
}
+
+ /**
+ *
+ * 获取党群e家 数据分析端配置
+ *
+ * @params []
+ * @return cn.binarywang.wx.miniapp.api.WxMaService
+ * @author liuchuang
+ * @since 2020/2/12 10:44
+ */
+ public final WxMaService analysisWxMaService() {
+ final WxMaService wxMaService = WxMaConfig.getMaService(APPID_ANALYSIS);
+ return wxMaService;
+ }
}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml b/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml
index 6f6ae2874..bd24f1d4f 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml
@@ -182,6 +182,9 @@
wx29b074840ef4bfd9
4adb1afccc69f205cdf5b521d74e2aca
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
@@ -221,6 +224,9 @@
wx9f20a46906ab2c3e
dc13065f79429979d9f687d249eb5c4e
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
@@ -256,6 +262,9 @@
wx9f20a46906ab2c3e
dc13065f79429979d9f687d249eb5c4e
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
@@ -291,6 +300,9 @@
wxddb240334d09049f
071b8c70da0d0482aaf79052e64f83bc
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
@@ -330,6 +342,9 @@
wx9f20a46906ab2c3e
dc13065f79429979d9f687d249eb5c4e
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisUserController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisUserController.java
index 3d25861ae..a4958a417 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisUserController.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisUserController.java
@@ -1,8 +1,12 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.common.token.dto.TokenDto;
+import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
+import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
+import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import com.elink.esua.epdc.dto.user.form.MemberRankFormDTO;
import com.elink.esua.epdc.dto.user.form.UserSortRankFormDTO;
import com.elink.esua.epdc.dto.user.form.UserCountDTO;
@@ -11,9 +15,7 @@ import com.elink.esua.epdc.dto.user.result.UserSortRankResultDTO;
import com.elink.esua.epdc.dto.user.result.YoungMemberRankResultDTO;
import com.elink.esua.epdc.service.AnalysisUserService;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -42,6 +44,36 @@ public class ApiAnalysisUserController {
return analysisUserService.test();
}
+ /**
+ *
+ * 数据分析端-用户登录
+ *
+ * @params [formDto]
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author liuchuang
+ * @since 2020/2/12 10:57
+ */
+ @PostMapping("login")
+ public Result login(@RequestBody WorkUserLoginDTO formDto) {
+ ValidatorUtils.validateEntity(formDto);
+ return analysisUserService.login(formDto);
+ }
+
+ /**
+ *
+ * 数据分析端-获取token
+ *
+ * @params [formDto]
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author liuchuang
+ * @since 2020/2/12 10:58
+ */
+ @GetMapping("getToken")
+ public Result getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto) {
+ ValidatorUtils.validateEntity(formDto);
+ return analysisUserService.getMaToken(formDto);
+ }
+
@GetMapping("/partyMemberOldSort")
public Result> listOldMemberRankByDeptId(MemberRankFormDTO formDto) {
return analysisUserService.listOldMemberRankByDeptId(formDto);
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisUserService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisUserService.java
index 27f4bcf51..2b4500a1c 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisUserService.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisUserService.java
@@ -1,6 +1,9 @@
package com.elink.esua.epdc.service;
+import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
+import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import com.elink.esua.epdc.dto.user.form.MemberRankFormDTO;
import com.elink.esua.epdc.dto.user.form.UserSortRankFormDTO;
import com.elink.esua.epdc.dto.user.form.UserCountDTO;
@@ -25,6 +28,29 @@ public interface AnalysisUserService {
* @Date: 2019/11/19 16:37
*/
Result test();
+
+ /**
+ *
+ * 数据分析端-用户登录
+ *
+ * @params [formDto]
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author liuchuang
+ * @since 2020/2/12 10:59
+ */
+ Result login(WorkUserLoginDTO formDto);
+
+ /**
+ *
+ * 数据分析端-获取token
+ *
+ * @params [formDto]
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author liuchuang
+ * @since 2020/2/12 11:00
+ */
+ Result getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto);
+
/**
* @Description 获取党员老龄化排名列表
* @Author songyunpeng
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisUserServiceImpl.java
index 79dbafab2..8973486d1 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisUserServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisUserServiceImpl.java
@@ -1,15 +1,29 @@
package com.elink.esua.epdc.service.impl;
+import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
+import com.elink.esua.epdc.common.token.dto.WorkUserAuthorizationDTO;
+import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO;
+import com.elink.esua.epdc.common.token.dto.WorkUserTokenFormDTO;
+import com.elink.esua.epdc.commons.tools.constant.NumConstant;
+import com.elink.esua.epdc.commons.tools.exception.RenException;
+import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.SysUserDTO;
+import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO;
import com.elink.esua.epdc.dto.user.form.MemberRankFormDTO;
import com.elink.esua.epdc.dto.user.form.UserCountDTO;
import com.elink.esua.epdc.dto.user.form.UserSortRankFormDTO;
import com.elink.esua.epdc.dto.user.result.OldMemberRankResultDTO;
import com.elink.esua.epdc.dto.user.result.UserSortRankResultDTO;
import com.elink.esua.epdc.dto.user.result.YoungMemberRankResultDTO;
+import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.feign.AnalysisUserFeignClient;
+import com.elink.esua.epdc.feign.ResourceFeignClient;
import com.elink.esua.epdc.service.AnalysisUserService;
+import com.elink.esua.epdc.utils.WxMaServiceUtils;
+import me.chanjar.weixin.common.error.WxErrorException;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -26,13 +40,48 @@ public class AnalysisUserServiceImpl implements AnalysisUserService {
@Autowired
private AnalysisUserFeignClient analysisUserFeignClient;
+ @Autowired
+ private WxMaServiceUtils wxMaServiceUtils;
+
+ @Autowired
+ private ResourceFeignClient resourceFeignClient;
+ @Autowired
+ private AdminFeignClient adminFeignClient;
@Override
public Result test() {
return analysisUserFeignClient.test();
}
+ @Override
+ public Result login(WorkUserLoginDTO formDto) {
+ // 获取openId
+ String openId = this.getWxMaUser(formDto.getWxCode()).getOpenid();
+ formDto.setOpenId(openId);
+ return resourceFeignClient.workLogin(formDto);
+ }
+
+ @Override
+ public Result getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto) {
+ // 获取openId
+ String openId = this.getWxMaUser(formDto.getWxCode()).getOpenid();
+
+ // 检查当前微信是否已绑定账户
+ Result sysUserDtoResult = adminFeignClient.getSysUserInfoByOpenId(openId);
+ if (!sysUserDtoResult.success()) {
+ return new Result().error(sysUserDtoResult.getMsg());
+ }
+ SysUserDTO userDto = sysUserDtoResult.getData();
+ if (null == userDto) {
+ WorkUserAuthorizationDTO resultDto = new WorkUserAuthorizationDTO();
+ resultDto.setRegisterState(NumConstant.ZERO_STR);
+ return new Result().ok(resultDto);
+ }
+
+ return resourceFeignClient.getToken(ConvertUtils.sourceToTarget(userDto, WorkUserTokenFormDTO.class));
+ }
+
@Override
public Result> listOldMemberRankByDeptId( MemberRankFormDTO formDto) {
return analysisUserFeignClient.listOldMemberRankByDeptId(formDto);
@@ -59,4 +108,28 @@ public class AnalysisUserServiceImpl implements AnalysisUserService {
return analysisUserFeignClient.getGridStatistics(formDto);
}
+
+ /**
+ *
+ * 解析微信code获取小程序用户信息
+ *
+ * @params [wxCode]
+ * @return cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult
+ * @author liuchuang
+ * @since 2020/2/12 13:20
+ */
+ private WxMaJscode2SessionResult getWxMaUser(String wxCode) {
+ WxMaJscode2SessionResult wxMaJscode2SessionResult = null;
+ try {
+ wxMaJscode2SessionResult = wxMaServiceUtils.analysisWxMaService().jsCode2SessionInfo(wxCode);
+ } catch (WxErrorException e) {
+ e.printStackTrace();
+ }
+ if (null == wxMaJscode2SessionResult) {
+ throw new RenException("解析微信用户信息失败");
+ } else if (StringUtils.isBlank(wxMaJscode2SessionResult.getOpenid())) {
+ throw new RenException("获取微信openid失败");
+ }
+ return wxMaJscode2SessionResult;
+ }
}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml
index 0a30aed3b..ed9eacc37 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml
@@ -113,11 +113,18 @@ wx:
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
+ - appid: @analysis.wx.ma.appId@
+ secret: @analysis.wx.ma.secret@
+ token: #微信小程序消息服务器配置的token
+ aesKey: #微信小程序消息服务器配置的EncodingAESKey
+ msgDataFormat: JSON
appId:
# 普通居民端的appId
normal: @wx.ma.appId@
# 工作端的appId
work: @work.wx.ma.appId@
+ # 数据分析端的appId
+ analysis: @analysis.wx.ma.appId@
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/pom.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/pom.xml
index 571ba13ef..cfc92acc1 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/pom.xml
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/pom.xml
@@ -164,6 +164,9 @@
wx29b074840ef4bfd9
4adb1afccc69f205cdf5b521d74e2aca
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
@@ -200,6 +203,9 @@
wx9f20a46906ab2c3e
dc13065f79429979d9f687d249eb5c4e
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
@@ -233,6 +239,9 @@
wx9f20a46906ab2c3e
dc13065f79429979d9f687d249eb5c4e
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
@@ -266,6 +275,9 @@
wxddb240334d09049f
071b8c70da0d0482aaf79052e64f83bc
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
@@ -302,6 +314,9 @@
wx9f20a46906ab2c3e
dc13065f79429979d9f687d249eb5c4e
+
+ wx9b6102a8ee5add65
+ 394f47d4e08fc0fd629231d3f68a34dc
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/application.yml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/application.yml
index 0b47de4f7..28f416c29 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/application.yml
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/application.yml
@@ -100,8 +100,15 @@ wx:
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
+ - appid: @analysis.wx.ma.appId@
+ secret: @analysis.wx.ma.secret@
+ token: #微信小程序消息服务器配置的token
+ aesKey: #微信小程序消息服务器配置的EncodingAESKey
+ msgDataFormat: JSON
appId:
# 普通居民端的appId
normal: @wx.ma.appId@
# 工作端的appId
work: @work.wx.ma.appId@
+ # 数据分析端的appId
+ analysis: @analysis.wx.ma.appId@