diff --git a/doc/epmet-cloud.md b/doc/epmet-cloud.md
index 18928176dc..15a6fa173d 100644
--- a/doc/epmet-cloud.md
+++ b/doc/epmet-cloud.md
@@ -20,6 +20,9 @@ PS:目前正在测试通过负载均衡器和本地环境变量实现动态修
- dysmsapi.aliyuncs.com 阿里云短信
- api.weixin.qq.com 微信直接交互(二维码等)
- oss-cn-qingdao.aliyuncs.com(如果需要用到oss)
+- service.sdmap.gov.cn 地图搜索代理
+- wprd03.is.autonavi.com 地图瓦片代理
+- oapi.dingtalk.com 钉钉后台交互(如果需要)
diff --git a/epmet-auth/pom.xml b/epmet-auth/pom.xml
index 67ee59978f..ed6c10e513 100644
--- a/epmet-auth/pom.xml
+++ b/epmet-auth/pom.xml
@@ -138,11 +138,11 @@
epmet-auth-client
2.0.0
-
- dingtalk-spring-boot-starter
- com.taobao
- 1.0.0
-
+
+
+
+
+
commons-codec
commons-codec
diff --git a/epmet-auth/src/main/java/com/epmet/AuthApplication.java b/epmet-auth/src/main/java/com/epmet/AuthApplication.java
index 07d85a0d5f..7cd7afed50 100644
--- a/epmet-auth/src/main/java/com/epmet/AuthApplication.java
+++ b/epmet-auth/src/main/java/com/epmet/AuthApplication.java
@@ -8,7 +8,6 @@
package com.epmet;
-import com.taobao.dingtalk.spring.annotations.EnableDingTalk;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@@ -21,7 +20,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
-@EnableDingTalk
+//@EnableDingTalk
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
diff --git a/epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java b/epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java
index bfea4bbbb8..f2aec2828e 100644
--- a/epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java
+++ b/epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java
@@ -3,7 +3,6 @@ package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.*;
-import com.epmet.dto.result.ResiDingAppLoginResDTO;
import com.epmet.dto.result.StaffOrgsResultDTO;
import com.epmet.dto.result.UserTokenResultDTO;
import com.epmet.service.ThirdLoginService;
@@ -159,11 +158,11 @@ public class ThirdLoginController {
* @param formDTO
* @return
*/
- @PostMapping("resilogin-ding")
- public Result resiLoginDing(@RequestBody ResiDingAppLoginFormDTO formDTO) {
- ValidatorUtils.validateEntity(formDTO,ResiDingAppLoginFormDTO.InnerMiniApp.class);
- return new Result().ok(thirdLoginService.resiLoginDing(formDTO));
- }
+// @PostMapping("resilogin-ding")
+// public Result resiLoginDing(@RequestBody ResiDingAppLoginFormDTO formDTO) {
+// ValidatorUtils.validateEntity(formDTO,ResiDingAppLoginFormDTO.InnerMiniApp.class);
+// return new Result().ok(thirdLoginService.resiLoginDing(formDTO));
+// }
/**
* 烟台建立应用,授权给我们,走企业免登
@@ -173,11 +172,11 @@ public class ThirdLoginController {
* @param formDTO
* @return
*/
- @PostMapping("resilogin-ding-md")
- public Result resiLoginDingMd(@RequestBody DingAppLoginMdFormDTO formDTO) {
- ValidatorUtils.validateEntity(formDTO);
- return new Result().ok(thirdLoginService.resiLoginDingMd(formDTO));
- }
+// @PostMapping("resilogin-ding-md")
+// public Result resiLoginDingMd(@RequestBody DingAppLoginMdFormDTO formDTO) {
+// ValidatorUtils.validateEntity(formDTO);
+// return new Result().ok(thirdLoginService.resiLoginDingMd(formDTO));
+// }
/**
* 企业内部应用开发,不授权了 文档地址:https://open.dingtalk.com/document/orgapp-server/enterprise-internal-application-logon-free
@@ -200,11 +199,11 @@ public class ThirdLoginController {
* @return
* 目前烟台用的这个!!!!!!
*/
- @PostMapping("resilogin-internalding")
- public Result resiLoginInternalDing(@RequestBody DingAppLoginMdFormDTO formDTO) {
- ValidatorUtils.validateEntity(formDTO);
- return new Result().ok(thirdLoginService.resiLoginInternalDing(formDTO));
- }
+// @PostMapping("resilogin-internalding")
+// public Result resiLoginInternalDing(@RequestBody DingAppLoginMdFormDTO formDTO) {
+// ValidatorUtils.validateEntity(formDTO);
+// return new Result().ok(thirdLoginService.resiLoginInternalDing(formDTO));
+// }
/**
* 根据免登授权码, 获取登录用户身份
@@ -212,11 +211,11 @@ public class ThirdLoginController {
* @param formDTO 免登授权码
* @return
*/
- @PostMapping("govlogin-internalding")
- public Result login(@RequestBody DingAppLoginMdFormDTO formDTO) {
- ValidatorUtils.validateEntity(formDTO);
- return new Result().ok(thirdLoginService.govLoginInternalDing(formDTO));
- }
+// @PostMapping("govlogin-internalding")
+// public Result login(@RequestBody DingAppLoginMdFormDTO formDTO) {
+// ValidatorUtils.validateEntity(formDTO);
+// return new Result().ok(thirdLoginService.govLoginInternalDing(formDTO));
+// }
/**
* 根据免登授权码, 获取登录用户身份
diff --git a/epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java b/epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java
index 6003df29b1..97653d51d0 100644
--- a/epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java
+++ b/epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java
@@ -1,7 +1,6 @@
package com.epmet.service;
import com.epmet.dto.form.*;
-import com.epmet.dto.result.ResiDingAppLoginResDTO;
import com.epmet.dto.result.StaffOrgsResultDTO;
import com.epmet.dto.result.UserTokenResultDTO;
@@ -93,7 +92,7 @@ public interface ThirdLoginService {
* @param formDTO
* @return
*/
- ResiDingAppLoginResDTO resiLoginDing(ResiDingAppLoginFormDTO formDTO);
+// ResiDingAppLoginResDTO resiLoginDing(ResiDingAppLoginFormDTO formDTO);
/**
* 企业简历内部应用授权给第三方
@@ -102,21 +101,21 @@ public interface ThirdLoginService {
* @param formDTO
* @return
*/
- ResiDingAppLoginResDTO resiLoginDingMd(DingAppLoginMdFormDTO formDTO);
+// ResiDingAppLoginResDTO resiLoginDingMd(DingAppLoginMdFormDTO formDTO);
/**
* 企业内部应用免登 文档地址:https://open.dingtalk.com/document/orgapp-server/enterprise-internal-application-logon-free
* @param formDTO
* @return
*/
- ResiDingAppLoginResDTO resiLoginInternalDing(DingAppLoginMdFormDTO formDTO);
+// ResiDingAppLoginResDTO resiLoginInternalDing(DingAppLoginMdFormDTO formDTO);
/**
* desc:企业内部应用 工作端登录
* @param formDTO
* @return
*/
- UserTokenResultDTO govLoginInternalDing(DingAppLoginMdFormDTO formDTO);
+// UserTokenResultDTO govLoginInternalDing(DingAppLoginMdFormDTO formDTO);
/**
* desc:烟台sso根据authCode 获取本系统token
diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
index ce1635c8cc..16944c4e7b 100644
--- a/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
+++ b/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
@@ -5,22 +5,18 @@ import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.aliyun.dingtalk.module.DingTalkResult;
import com.epmet.auth.constants.AuthOperationConstants;
import com.epmet.common.token.constant.LoginConstant;
import com.epmet.commons.rocketmq.messages.LoginMQMsg;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.ServiceConstant;
-import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.feign.ResultDataResolver;
-import com.epmet.commons.tools.redis.common.CustomerDingDingRedis;
-import com.epmet.commons.tools.redis.common.bean.DingMiniInfoCache;
import com.epmet.commons.tools.security.dto.GovTokenDto;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.security.password.PasswordUtils;
@@ -31,8 +27,6 @@ import com.epmet.commons.tools.validator.PhoneValidatorUtils;
import com.epmet.constant.AuthHttpUrlConstant;
import com.epmet.constant.SmsTemplateConstant;
import com.epmet.dto.*;
-import com.epmet.dto.dingres.DingUserDetailDTO;
-import com.epmet.dto.dingres.V2UserGetuserinfoResDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.feign.EpmetMessageOpenFeignClient;
@@ -43,11 +37,6 @@ import com.epmet.jwt.JwtTokenUtils;
import com.epmet.redis.CaptchaRedis;
import com.epmet.service.GovWebService;
import com.epmet.service.ThirdLoginService;
-import com.taobao.api.ApiException;
-import com.taobao.dingtalk.client.DingTalkClientToken;
-import com.taobao.dingtalk.client.DingTalkClientUser;
-import com.taobao.dingtalk.vo.result.AccessTokenResult;
-import com.taobao.dingtalk.vo.result.UserBaseInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -87,10 +76,10 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private EpmetMessageOpenFeignClient messageOpenFeignClient;
- @Autowired
- private DingTalkClientToken dingTalkClientToken;
- @Autowired
- private DingTalkClientUser dingTalkClientUser;
+// @Autowired
+// private DingTalkClientToken dingTalkClientToken;
+// @Autowired
+// private DingTalkClientUser dingTalkClientUser;
@Autowired
private GovWebService govWebService;
@@ -870,54 +859,54 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
* @param formDTO
* @return
*/
- @Override
- public ResiDingAppLoginResDTO resiLoginDing(ResiDingAppLoginFormDTO formDTO) {
- //获取用户手机号
- log.info("1、钉钉居民端应用登录入参:"+ JSON.toJSONString(formDTO));
- ResiDingAppLoginResDTO resDTO= null;
- try {
- resDTO = new ResiDingAppLoginResDTO();
- resDTO.setCustomerId(getCurrentCustomerId());
- //1、获取用户手机号
- String miniAppId = formDTO.getMiniAppId();
- DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId);
- DingTalkResult userAccessToken = dingTalkClientToken.getUserAccessToken(formDTO.getAuthCode(), dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret());
- log.info("2、resiLoginDing userAccessToken:{}",JSON.toJSONString(userAccessToken));
- if (!userAccessToken.success() || null == userAccessToken.getData()) {
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "调用微信api异常:" + JSON.toJSONString(userAccessToken), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg());
- }
- DingTalkResult me = dingTalkClientUser.getUserInfo("me", userAccessToken.getData().getAccessToken());
- log.info("3、resiLoginDing me:{}",JSON.toJSONString(me));
- resDTO.setExtInfo(JSON.toJSONString(me.getData()));
- if (!me.success() || StringUtils.isBlank(me.getData().getMobile())) {
- log.error("resilogin-ding登录接口报错,入参:" + JSON.toJSONString(formDTO) + ";获取手机号为空, userAccessToken.getData().getAccessToken()=" + userAccessToken.getData().getAccessToken());
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取手机号为空", "获取手机号为空");
- }
- // 2、调用userfeign接口获取userId、注册网格相关信息 todo
- DingLoginResiFormDTO dingLoginResiFormDTO=ConvertUtils.sourceToTarget(me.getData(),DingLoginResiFormDTO.class);
- dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId());
- Result loginResiResDTOResult = epmetUserOpenFeignClient.dingResiLogin(dingLoginResiFormDTO);
- if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) {
- //临时打个日志
- log.error(String.format("resilogin-ding获取epmetUserId异常,入参:%s,user服务返参:%s", JSON.toJSONString(formDTO), JSON.toJSONString(loginResiResDTOResult)));
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:" + JSON.toJSONString(loginResiResDTOResult), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg());
- }
- DingLoginResiResDTO resiResDTO=loginResiResDTOResult.getData();
- resDTO.setGridId(resiResDTO.getGridId());
- resDTO.setGridName(resiResDTO.getGridName());
- resDTO.setAgencyId(resiResDTO.getAgencyId());
- resDTO.setEpmetUserId(resiResDTO.getEpmetUserId());
- resDTO.setRegFlag(resiResDTO.getRegFlag());
-
- //3.生成token,并且存放Redis
- String token=this.saveTokenDtoDing(formDTO.getMiniAppId(),AppClientConstant.APP_RESI,AppClientConstant.MINI_DING, resDTO.getEpmetUserId(), resDTO.getCustomerId());
- resDTO.setAuthorization(token);
-
- } catch (ApiException e) {
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getErrMsg(), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg());
- }
- return resDTO;
- }
+// @Override
+// public ResiDingAppLoginResDTO resiLoginDing(ResiDingAppLoginFormDTO formDTO) {
+// //获取用户手机号
+// log.info("1、钉钉居民端应用登录入参:"+ JSON.toJSONString(formDTO));
+// ResiDingAppLoginResDTO resDTO= null;
+// try {
+// resDTO = new ResiDingAppLoginResDTO();
+// resDTO.setCustomerId(getCurrentCustomerId());
+// //1、获取用户手机号
+// String miniAppId = formDTO.getMiniAppId();
+// DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId);
+// DingTalkResult userAccessToken = dingTalkClientToken.getUserAccessToken(formDTO.getAuthCode(), dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret());
+// log.info("2、resiLoginDing userAccessToken:{}",JSON.toJSONString(userAccessToken));
+// if (!userAccessToken.success() || null == userAccessToken.getData()) {
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "调用微信api异常:" + JSON.toJSONString(userAccessToken), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg());
+// }
+// DingTalkResult me = dingTalkClientUser.getUserInfo("me", userAccessToken.getData().getAccessToken());
+// log.info("3、resiLoginDing me:{}",JSON.toJSONString(me));
+// resDTO.setExtInfo(JSON.toJSONString(me.getData()));
+// if (!me.success() || StringUtils.isBlank(me.getData().getMobile())) {
+// log.error("resilogin-ding登录接口报错,入参:" + JSON.toJSONString(formDTO) + ";获取手机号为空, userAccessToken.getData().getAccessToken()=" + userAccessToken.getData().getAccessToken());
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取手机号为空", "获取手机号为空");
+// }
+// // 2、调用userfeign接口获取userId、注册网格相关信息 todo
+// DingLoginResiFormDTO dingLoginResiFormDTO=ConvertUtils.sourceToTarget(me.getData(),DingLoginResiFormDTO.class);
+// dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId());
+// Result loginResiResDTOResult = epmetUserOpenFeignClient.dingResiLogin(dingLoginResiFormDTO);
+// if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) {
+// //临时打个日志
+// log.error(String.format("resilogin-ding获取epmetUserId异常,入参:%s,user服务返参:%s", JSON.toJSONString(formDTO), JSON.toJSONString(loginResiResDTOResult)));
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:" + JSON.toJSONString(loginResiResDTOResult), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg());
+// }
+// DingLoginResiResDTO resiResDTO=loginResiResDTOResult.getData();
+// resDTO.setGridId(resiResDTO.getGridId());
+// resDTO.setGridName(resiResDTO.getGridName());
+// resDTO.setAgencyId(resiResDTO.getAgencyId());
+// resDTO.setEpmetUserId(resiResDTO.getEpmetUserId());
+// resDTO.setRegFlag(resiResDTO.getRegFlag());
+//
+// //3.生成token,并且存放Redis
+// String token=this.saveTokenDtoDing(formDTO.getMiniAppId(),AppClientConstant.APP_RESI,AppClientConstant.MINI_DING, resDTO.getEpmetUserId(), resDTO.getCustomerId());
+// resDTO.setAuthorization(token);
+//
+// } catch (ApiException e) {
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getErrMsg(), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg());
+// }
+// return resDTO;
+// }
private String saveTokenDtoDing(String miniAppId,String app,String client, String userId,String customerId) {
//生成token串
@@ -943,84 +932,84 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
return token;
}
- @Override
- public ResiDingAppLoginResDTO resiLoginDingMd(DingAppLoginMdFormDTO formDTO) {
- // 获取用户手机号
- log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO));
- ResiDingAppLoginResDTO resDTO = null;
- resDTO = new ResiDingAppLoginResDTO();
- resDTO.setCustomerId(getCurrentCustomerId());
- // 1、获取用户手机号
- DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOMd(formDTO.getMiniAppId(), formDTO.getAuthCode());
- dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId());
- // 2、调用userfeign接口获取userId、注册网格相关信息
- Result loginResiResDTOResult = epmetUserOpenFeignClient.dingResiLogin(dingLoginResiFormDTO);
- if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) {
- // 临时打个日志
- log.error(String.format("resiLoginDingMd获取epmetUserId异常,入参:%s,user服务返参:%s", JSON.toJSONString(formDTO), JSON.toJSONString(loginResiResDTOResult)));
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:" + JSON.toJSONString(loginResiResDTOResult), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg());
- }
- DingLoginResiResDTO resiResDTO = loginResiResDTOResult.getData();
- resDTO.setGridId(resiResDTO.getGridId());
- resDTO.setGridName(resiResDTO.getGridName());
- resDTO.setAgencyId(resiResDTO.getAgencyId());
- resDTO.setEpmetUserId(resiResDTO.getEpmetUserId());
- resDTO.setRegFlag(resiResDTO.getRegFlag());
-
- // 3.生成token,并且存放Redis
- String token = this.saveTokenDtoDing(formDTO.getMiniAppId(), AppClientConstant.APP_RESI, AppClientConstant.MINI_DING, resDTO.getEpmetUserId(), resDTO.getCustomerId());
- resDTO.setAuthorization(token);
-
- return resDTO;
- }
-
- private DingLoginResiFormDTO getDingLoginResiFormDTOMd(String miniAppId, String authCode) {
- DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId);
-
- // 1、服务商获取第三方应用授权企业的access_token,文档地址:https://open.dingtalk.com/document/orgapp-server/obtains-the-enterprise-authorized-credential
- // 烟台的CorpId: dingaae55cbc47a96845f5bf40eda33b7ba0
- String yantaiCorpId = "dingaae55cbc47a96845f5bf40eda33b7ba0";
- DingTalkResult res = dingTalkClientToken.getThirdAuthCorpAccessToken(dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret(), "abc", yantaiCorpId);
- if (!res.success() || StringUtils.isBlank(res.getData())) {
- log.error(String.format("企业内部应用免登服务商获取第三方应用授权企业的access_token失败,customKey:%s,customSecret:%s,corpId:%s", dingMiniInfo.getSuiteSecret(), dingMiniInfo.getSuiteSecret(), yantaiCorpId));
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "服务商获取第三方应用授权企业的access_token", "服务商获取第三方应用授权企业的access_token");
- }
- String accessToken = res.getData();
- log.info(String.format("1、服务商获取第三方应用授权企业的access_token返参:%s", accessToken));
-
- // 2、通过免登码获取用户信息,文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-userid-of-a-user-by-using-the-log-free
- DingTalkResult v2UserGetuserinfoRes = dingTalkClientToken.getUserInfo(accessToken, authCode);
- if (!v2UserGetuserinfoRes.success() || StringUtils.isBlank(v2UserGetuserinfoRes.getData())) {
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "通过免登码获取用户信息异常", "通过免登码获取用户信息异常");
- }
- log.info(String.format("2、通过免登码获取用户信息返参:%s", v2UserGetuserinfoRes.getData()));
- V2UserGetuserinfoResDTO v2UserGetuserinfoResDTO = JSON.parseObject(v2UserGetuserinfoRes.getData(), V2UserGetuserinfoResDTO.class);
- if (null == v2UserGetuserinfoResDTO || StringUtils.isBlank(v2UserGetuserinfoResDTO.getUserid())) {
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉用户userid为空", "获取钉钉用户userid为空");
- }
-
-
- // 3、查询用户详情,文档地址:https://open.dingtalk.com/document/isvapp-server/query-user-details
- DingTalkResult v2UserGetRes = dingTalkClientToken.getUserDetail(v2UserGetuserinfoResDTO.getUserid(), accessToken);
- if (!v2UserGetRes.success() || StringUtils.isBlank(v2UserGetRes.getData())) {
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "根据userId查询用户详情失败", "根据userId查询用户详情失败");
- }
- log.info(String.format("3、查询用户详情:%s", v2UserGetRes.getData()));
- DingUserDetailDTO dingUserDetailDTO = JSON.parseObject(v2UserGetRes.getData(), DingUserDetailDTO.class);
- if (null == dingUserDetailDTO || StringUtils.isBlank(dingUserDetailDTO.getMobile())) {
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取手机号为空", "获取手机号为空");
- }
-
- DingLoginResiFormDTO dingLoginResiFormDTO = new DingLoginResiFormDTO();
- dingLoginResiFormDTO.setAvatarUrl(dingUserDetailDTO.getAvatar());
- dingLoginResiFormDTO.setEmail(dingUserDetailDTO.getOrg_email());
- dingLoginResiFormDTO.setMobile(dingUserDetailDTO.getMobile());
- dingLoginResiFormDTO.setNick(dingUserDetailDTO.getName());
- dingLoginResiFormDTO.setOpenId(StrConstant.EPMETY_STR);
- dingLoginResiFormDTO.setStateCode(dingUserDetailDTO.getState_code());
- dingLoginResiFormDTO.setUnionId(dingUserDetailDTO.getUnionid());
- return dingLoginResiFormDTO;
- }
+// @Override
+// public ResiDingAppLoginResDTO resiLoginDingMd(DingAppLoginMdFormDTO formDTO) {
+// // 获取用户手机号
+// log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO));
+// ResiDingAppLoginResDTO resDTO = null;
+// resDTO = new ResiDingAppLoginResDTO();
+// resDTO.setCustomerId(getCurrentCustomerId());
+// // 1、获取用户手机号
+// DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOMd(formDTO.getMiniAppId(), formDTO.getAuthCode());
+// dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId());
+// // 2、调用userfeign接口获取userId、注册网格相关信息
+// Result loginResiResDTOResult = epmetUserOpenFeignClient.dingResiLogin(dingLoginResiFormDTO);
+// if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) {
+// // 临时打个日志
+// log.error(String.format("resiLoginDingMd获取epmetUserId异常,入参:%s,user服务返参:%s", JSON.toJSONString(formDTO), JSON.toJSONString(loginResiResDTOResult)));
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:" + JSON.toJSONString(loginResiResDTOResult), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg());
+// }
+// DingLoginResiResDTO resiResDTO = loginResiResDTOResult.getData();
+// resDTO.setGridId(resiResDTO.getGridId());
+// resDTO.setGridName(resiResDTO.getGridName());
+// resDTO.setAgencyId(resiResDTO.getAgencyId());
+// resDTO.setEpmetUserId(resiResDTO.getEpmetUserId());
+// resDTO.setRegFlag(resiResDTO.getRegFlag());
+//
+// // 3.生成token,并且存放Redis
+// String token = this.saveTokenDtoDing(formDTO.getMiniAppId(), AppClientConstant.APP_RESI, AppClientConstant.MINI_DING, resDTO.getEpmetUserId(), resDTO.getCustomerId());
+// resDTO.setAuthorization(token);
+//
+// return resDTO;
+// }
+
+// private DingLoginResiFormDTO getDingLoginResiFormDTOMd(String miniAppId, String authCode) {
+// DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId);
+//
+// // 1、服务商获取第三方应用授权企业的access_token,文档地址:https://open.dingtalk.com/document/orgapp-server/obtains-the-enterprise-authorized-credential
+// // 烟台的CorpId: dingaae55cbc47a96845f5bf40eda33b7ba0
+// String yantaiCorpId = "dingaae55cbc47a96845f5bf40eda33b7ba0";
+// DingTalkResult res = dingTalkClientToken.getThirdAuthCorpAccessToken(dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret(), "abc", yantaiCorpId);
+// if (!res.success() || StringUtils.isBlank(res.getData())) {
+// log.error(String.format("企业内部应用免登服务商获取第三方应用授权企业的access_token失败,customKey:%s,customSecret:%s,corpId:%s", dingMiniInfo.getSuiteSecret(), dingMiniInfo.getSuiteSecret(), yantaiCorpId));
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "服务商获取第三方应用授权企业的access_token", "服务商获取第三方应用授权企业的access_token");
+// }
+// String accessToken = res.getData();
+// log.info(String.format("1、服务商获取第三方应用授权企业的access_token返参:%s", accessToken));
+//
+// // 2、通过免登码获取用户信息,文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-userid-of-a-user-by-using-the-log-free
+// DingTalkResult v2UserGetuserinfoRes = dingTalkClientToken.getUserInfo(accessToken, authCode);
+// if (!v2UserGetuserinfoRes.success() || StringUtils.isBlank(v2UserGetuserinfoRes.getData())) {
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "通过免登码获取用户信息异常", "通过免登码获取用户信息异常");
+// }
+// log.info(String.format("2、通过免登码获取用户信息返参:%s", v2UserGetuserinfoRes.getData()));
+// V2UserGetuserinfoResDTO v2UserGetuserinfoResDTO = JSON.parseObject(v2UserGetuserinfoRes.getData(), V2UserGetuserinfoResDTO.class);
+// if (null == v2UserGetuserinfoResDTO || StringUtils.isBlank(v2UserGetuserinfoResDTO.getUserid())) {
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉用户userid为空", "获取钉钉用户userid为空");
+// }
+//
+//
+// // 3、查询用户详情,文档地址:https://open.dingtalk.com/document/isvapp-server/query-user-details
+// DingTalkResult v2UserGetRes = dingTalkClientToken.getUserDetail(v2UserGetuserinfoResDTO.getUserid(), accessToken);
+// if (!v2UserGetRes.success() || StringUtils.isBlank(v2UserGetRes.getData())) {
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "根据userId查询用户详情失败", "根据userId查询用户详情失败");
+// }
+// log.info(String.format("3、查询用户详情:%s", v2UserGetRes.getData()));
+// DingUserDetailDTO dingUserDetailDTO = JSON.parseObject(v2UserGetRes.getData(), DingUserDetailDTO.class);
+// if (null == dingUserDetailDTO || StringUtils.isBlank(dingUserDetailDTO.getMobile())) {
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取手机号为空", "获取手机号为空");
+// }
+//
+// DingLoginResiFormDTO dingLoginResiFormDTO = new DingLoginResiFormDTO();
+// dingLoginResiFormDTO.setAvatarUrl(dingUserDetailDTO.getAvatar());
+// dingLoginResiFormDTO.setEmail(dingUserDetailDTO.getOrg_email());
+// dingLoginResiFormDTO.setMobile(dingUserDetailDTO.getMobile());
+// dingLoginResiFormDTO.setNick(dingUserDetailDTO.getName());
+// dingLoginResiFormDTO.setOpenId(StrConstant.EPMETY_STR);
+// dingLoginResiFormDTO.setStateCode(dingUserDetailDTO.getState_code());
+// dingLoginResiFormDTO.setUnionId(dingUserDetailDTO.getUnionid());
+// return dingLoginResiFormDTO;
+// }
/**
@@ -1043,57 +1032,57 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
* @param formDTO
* @return
*/
- @Override
- public ResiDingAppLoginResDTO resiLoginInternalDing(DingAppLoginMdFormDTO formDTO) {
- // 获取用户手机号
- log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO));
- ResiDingAppLoginResDTO resDTO = new ResiDingAppLoginResDTO();
- resDTO.setCustomerId(getCurrentCustomerId());
-
- // 1、获取用户手机号
- DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOInternal(formDTO.getMiniAppId(), formDTO.getAuthCode());
- dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId());
- resDTO.setRealName(dingLoginResiFormDTO.getNick());
- // 2、调用userfeign接口获取userId、注册网格相关信息
- Result loginResiResDTOResult = epmetUserOpenFeignClient.dingResiLogin(dingLoginResiFormDTO);
- if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) {
- // 临时打个日志
- log.error(String.format("resiLoginInternalDing获取epmetUserId异常,入参:%s", JSON.toJSONString(dingLoginResiFormDTO)));
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:"+ JSON.toJSONString(loginResiResDTOResult), "获取epmetUserId异常");
- }
- DingLoginResiResDTO resiResDTO = loginResiResDTOResult.getData();
- resDTO.setGridId(resiResDTO.getGridId());
- resDTO.setGridName(resiResDTO.getGridName());
- resDTO.setAgencyId(resiResDTO.getAgencyId());
- resDTO.setEpmetUserId(resiResDTO.getEpmetUserId());
- resDTO.setRegFlag(resiResDTO.getRegFlag());
-
- // 3.生成token,并且存放Redis
- String token = this.saveTokenDtoDing(formDTO.getMiniAppId(), AppClientConstant.APP_RESI, AppClientConstant.MINI_DING, resDTO.getEpmetUserId(), resDTO.getCustomerId());
- resDTO.setAuthorization(token);
-
- return resDTO;
- }
-
- @Override
- public UserTokenResultDTO govLoginInternalDing(DingAppLoginMdFormDTO formDTO) {
- // 获取用户手机号
- log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO));
- ResiDingAppLoginResDTO resDTO = null;
- resDTO = new ResiDingAppLoginResDTO();
- resDTO.setCustomerId(getCurrentCustomerId());
-
- // 1、获取用户手机号
- DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOInternal(formDTO.getMiniAppId(), formDTO.getAuthCode());
- dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId());
-
-
- GovWebLoginFormDTO loginGovParam = new GovWebLoginFormDTO();
- loginGovParam.setCustomerId(dingLoginResiFormDTO.getCustomerId());
- loginGovParam.setPhone(dingLoginResiFormDTO.getMobile());
-
- return govWebService.loginByThirdPlatform(loginGovParam);
- }
+// @Override
+// public ResiDingAppLoginResDTO resiLoginInternalDing(DingAppLoginMdFormDTO formDTO) {
+// // 获取用户手机号
+// log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO));
+// ResiDingAppLoginResDTO resDTO = new ResiDingAppLoginResDTO();
+// resDTO.setCustomerId(getCurrentCustomerId());
+//
+// // 1、获取用户手机号
+// DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOInternal(formDTO.getMiniAppId(), formDTO.getAuthCode());
+// dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId());
+// resDTO.setRealName(dingLoginResiFormDTO.getNick());
+// // 2、调用userfeign接口获取userId、注册网格相关信息
+// Result loginResiResDTOResult = epmetUserOpenFeignClient.dingResiLogin(dingLoginResiFormDTO);
+// if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) {
+// // 临时打个日志
+// log.error(String.format("resiLoginInternalDing获取epmetUserId异常,入参:%s", JSON.toJSONString(dingLoginResiFormDTO)));
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:"+ JSON.toJSONString(loginResiResDTOResult), "获取epmetUserId异常");
+// }
+// DingLoginResiResDTO resiResDTO = loginResiResDTOResult.getData();
+// resDTO.setGridId(resiResDTO.getGridId());
+// resDTO.setGridName(resiResDTO.getGridName());
+// resDTO.setAgencyId(resiResDTO.getAgencyId());
+// resDTO.setEpmetUserId(resiResDTO.getEpmetUserId());
+// resDTO.setRegFlag(resiResDTO.getRegFlag());
+//
+// // 3.生成token,并且存放Redis
+// String token = this.saveTokenDtoDing(formDTO.getMiniAppId(), AppClientConstant.APP_RESI, AppClientConstant.MINI_DING, resDTO.getEpmetUserId(), resDTO.getCustomerId());
+// resDTO.setAuthorization(token);
+//
+// return resDTO;
+// }
+
+// @Override
+// public UserTokenResultDTO govLoginInternalDing(DingAppLoginMdFormDTO formDTO) {
+// // 获取用户手机号
+// log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO));
+// ResiDingAppLoginResDTO resDTO = null;
+// resDTO = new ResiDingAppLoginResDTO();
+// resDTO.setCustomerId(getCurrentCustomerId());
+//
+// // 1、获取用户手机号
+// DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOInternal(formDTO.getMiniAppId(), formDTO.getAuthCode());
+// dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId());
+//
+//
+// GovWebLoginFormDTO loginGovParam = new GovWebLoginFormDTO();
+// loginGovParam.setCustomerId(dingLoginResiFormDTO.getCustomerId());
+// loginGovParam.setPhone(dingLoginResiFormDTO.getMobile());
+//
+// return govWebService.loginByThirdPlatform(loginGovParam);
+// }
@Override
public UserTokenResultDTO yanTaiSSOLogin(String authCode) {
@@ -1115,55 +1104,55 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
* @param authCode
* @return
*/
- private DingLoginResiFormDTO getDingLoginResiFormDTOInternal(String miniAppId, String authCode) {
- DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId);
- if (dingMiniInfo == null){
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉应用配置异常", "获取钉钉应用配置异常");
- }
- // 1、获取企业内部应用的accessToken文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-access_token-of-an-internal-app
- String accessToken = "";
- DingTalkResult dingTalkResult = dingTalkClientToken.getAppAccessTokenToken(dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret());
- if (!dingTalkResult.success() || StringUtils.isBlank(dingTalkResult.getData())) {
- log.error(String.format("获取企业内部应用的accessToken失败,customKey:%s,customSecret:%s", dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret()));
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取企业内部应用的accessToken异常", "获取企业内部应用的accessToken");
- }
- accessToken = dingTalkResult.getData();
- log.info(String.format("1、获取企业内部应用的accessToken返参:%s", accessToken));
-
-
- // 2、通过免登码获取用户信息,文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-userid-of-a-user-by-using-the-log-free
- DingTalkResult v2UserGetuserinfoRes = dingTalkClientToken.getUserInfo(accessToken, authCode);
- if (!v2UserGetuserinfoRes.success() || StringUtils.isBlank(v2UserGetuserinfoRes.getData())) {
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "通过免登码获取用户信息异常", "通过免登码获取用户信息异常");
- }
- log.info(String.format("2、通过免登码获取用户信息返参:%s", v2UserGetuserinfoRes.getData()));
- V2UserGetuserinfoResDTO v2UserGetuserinfoResDTO = JSON.parseObject(v2UserGetuserinfoRes.getData(), V2UserGetuserinfoResDTO.class);
- if (null == v2UserGetuserinfoResDTO || StringUtils.isBlank(v2UserGetuserinfoResDTO.getUserid())) {
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉用户userid为空", "获取钉钉用户userid为空");
- }
-
-
- // 3、查询用户详情,文档地址:https://open.dingtalk.com/document/isvapp-server/query-user-details
- DingTalkResult v2UserGetRes = dingTalkClientToken.getUserDetail(v2UserGetuserinfoResDTO.getUserid(), accessToken);
- if (!v2UserGetRes.success() || StringUtils.isBlank(v2UserGetRes.getData())) {
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "根据userId查询用户详情失败", "根据userId查询用户详情失败");
- }
- log.info(String.format("3、查询用户详情:%s", v2UserGetRes.getData()));
- DingUserDetailDTO dingUserDetailDTO = JSON.parseObject(v2UserGetRes.getData(), DingUserDetailDTO.class);
- if (null == dingUserDetailDTO || StringUtils.isBlank(dingUserDetailDTO.getMobile())) {
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取手机号为空", "获取手机号为空");
- }
-
- DingLoginResiFormDTO dingLoginResiFormDTO = new DingLoginResiFormDTO();
- dingLoginResiFormDTO.setAvatarUrl(dingUserDetailDTO.getAvatar());
- dingLoginResiFormDTO.setEmail(dingUserDetailDTO.getOrg_email());
- dingLoginResiFormDTO.setMobile(dingUserDetailDTO.getMobile());
- dingLoginResiFormDTO.setNick(dingUserDetailDTO.getName());
- dingLoginResiFormDTO.setOpenId(StrConstant.EPMETY_STR);
- dingLoginResiFormDTO.setStateCode(dingUserDetailDTO.getState_code());
- dingLoginResiFormDTO.setUnionId(dingUserDetailDTO.getUnionid());
- return dingLoginResiFormDTO;
- }
+// private DingLoginResiFormDTO getDingLoginResiFormDTOInternal(String miniAppId, String authCode) {
+// DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId);
+// if (dingMiniInfo == null){
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉应用配置异常", "获取钉钉应用配置异常");
+// }
+// // 1、获取企业内部应用的accessToken文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-access_token-of-an-internal-app
+// String accessToken = "";
+// DingTalkResult dingTalkResult = dingTalkClientToken.getAppAccessTokenToken(dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret());
+// if (!dingTalkResult.success() || StringUtils.isBlank(dingTalkResult.getData())) {
+// log.error(String.format("获取企业内部应用的accessToken失败,customKey:%s,customSecret:%s", dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret()));
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取企业内部应用的accessToken异常", "获取企业内部应用的accessToken");
+// }
+// accessToken = dingTalkResult.getData();
+// log.info(String.format("1、获取企业内部应用的accessToken返参:%s", accessToken));
+//
+//
+// // 2、通过免登码获取用户信息,文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-userid-of-a-user-by-using-the-log-free
+// DingTalkResult v2UserGetuserinfoRes = dingTalkClientToken.getUserInfo(accessToken, authCode);
+// if (!v2UserGetuserinfoRes.success() || StringUtils.isBlank(v2UserGetuserinfoRes.getData())) {
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "通过免登码获取用户信息异常", "通过免登码获取用户信息异常");
+// }
+// log.info(String.format("2、通过免登码获取用户信息返参:%s", v2UserGetuserinfoRes.getData()));
+// V2UserGetuserinfoResDTO v2UserGetuserinfoResDTO = JSON.parseObject(v2UserGetuserinfoRes.getData(), V2UserGetuserinfoResDTO.class);
+// if (null == v2UserGetuserinfoResDTO || StringUtils.isBlank(v2UserGetuserinfoResDTO.getUserid())) {
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉用户userid为空", "获取钉钉用户userid为空");
+// }
+//
+//
+// // 3、查询用户详情,文档地址:https://open.dingtalk.com/document/isvapp-server/query-user-details
+// DingTalkResult v2UserGetRes = dingTalkClientToken.getUserDetail(v2UserGetuserinfoResDTO.getUserid(), accessToken);
+// if (!v2UserGetRes.success() || StringUtils.isBlank(v2UserGetRes.getData())) {
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "根据userId查询用户详情失败", "根据userId查询用户详情失败");
+// }
+// log.info(String.format("3、查询用户详情:%s", v2UserGetRes.getData()));
+// DingUserDetailDTO dingUserDetailDTO = JSON.parseObject(v2UserGetRes.getData(), DingUserDetailDTO.class);
+// if (null == dingUserDetailDTO || StringUtils.isBlank(dingUserDetailDTO.getMobile())) {
+// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取手机号为空", "获取手机号为空");
+// }
+//
+// DingLoginResiFormDTO dingLoginResiFormDTO = new DingLoginResiFormDTO();
+// dingLoginResiFormDTO.setAvatarUrl(dingUserDetailDTO.getAvatar());
+// dingLoginResiFormDTO.setEmail(dingUserDetailDTO.getOrg_email());
+// dingLoginResiFormDTO.setMobile(dingUserDetailDTO.getMobile());
+// dingLoginResiFormDTO.setNick(dingUserDetailDTO.getName());
+// dingLoginResiFormDTO.setOpenId(StrConstant.EPMETY_STR);
+// dingLoginResiFormDTO.setStateCode(dingUserDetailDTO.getState_code());
+// dingLoginResiFormDTO.setUnionId(dingUserDetailDTO.getUnionid());
+// return dingLoginResiFormDTO;
+// }
/**
* 客户写死吧
diff --git a/epmet-commons/epmet-commons-tools/pom.xml b/epmet-commons/epmet-commons-tools/pom.xml
index 4cd073f977..bf8cd4c2a3 100644
--- a/epmet-commons/epmet-commons-tools/pom.xml
+++ b/epmet-commons/epmet-commons-tools/pom.xml
@@ -14,7 +14,6 @@
6.0.17.Final
- 3.7
1.3.3
2.6
4.6.1
@@ -32,6 +31,12 @@
org.springframework.boot
spring-boot-starter-web
provided
+
+
+ hibernate-validator
+ org.hibernate.validator
+
+
org.springframework.boot
@@ -45,6 +50,16 @@
org.springframework.cloud
spring-cloud-starter-openfeign
+
+
+ guava
+ com.google.guava
+
+
+ commons-fileupload
+ commons-fileupload
+
+
org.springframework.boot
@@ -66,15 +81,16 @@
hibernate-validator
${hibernate.validator.version}
-
- org.apache.commons
- commons-lang3
- ${commons.lang.version}
-
commons-fileupload
commons-fileupload
${commons.fileupload.version}
+
+
+ commons-io
+ commons-io
+
+
commons-io
@@ -90,6 +106,12 @@
cn.afterturn
easypoi-base
${easypoi.version}
+
+
+ javassist
+ org.javassist
+
+
@@ -137,24 +159,54 @@
org.apache.httpcomponents
httpmime
+
+
+ httpclient
+ org.apache.httpcomponents
+
+
org.apache.httpcomponents
httpmime
+
+
+ httpclient
+ org.apache.httpcomponents
+
+
commons-httpclient
commons-httpclient
3.1
+
+
+ commons-logging
+ commons-logging
+
+
com.aliyun
alibaba-dingtalk-service-sdk
+
+
+ commons-logging
+ commons-logging
+
+
com.squareup.okhttp3
okhttp
+
+
+ kotlin-stdlib-common
+ org.jetbrains.kotlin
+
+
io.github.wnjustdoit
@@ -201,6 +253,16 @@
com.tencentcloudapi
tencentcloud-sdk-java
3.1.322
+
+
+ okio
+ com.squareup.okio
+
+
+ commons-logging
+ commons-logging
+
+
diff --git a/epmet-module/data-report/data-report-client/pom.xml b/epmet-module/data-report/data-report-client/pom.xml
index 8700a85f3b..52b71441b2 100644
--- a/epmet-module/data-report/data-report-client/pom.xml
+++ b/epmet-module/data-report/data-report-client/pom.xml
@@ -16,6 +16,16 @@
com.epmet
epmet-commons-tools
2.0.0
+
+
+ commons-collections4
+ org.apache.commons
+
+
+ objenesis
+ org.objenesis
+
+
com.epmet
diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml
index 4beaf875c2..9d3a4efd46 100644
--- a/epmet-module/data-report/data-report-server/pom.xml
+++ b/epmet-module/data-report/data-report-server/pom.xml
@@ -100,6 +100,11 @@
2.0.0
compile
+
+ org.apache.commons
+ commons-collections4
+ 4.4
+
diff --git a/epmet-module/epmet-heart/epmet-heart-client/pom.xml b/epmet-module/epmet-heart/epmet-heart-client/pom.xml
index 6ef934f473..93ddda3345 100644
--- a/epmet-module/epmet-heart/epmet-heart-client/pom.xml
+++ b/epmet-module/epmet-heart/epmet-heart-client/pom.xml
@@ -17,12 +17,24 @@
com.epmet
epmet-commons-tools
2.0.0
+
+
+ objenesis
+ org.objenesis
+
+
com.epmet
epmet-user-client
2.0.0
compile
+
+
+ commons-collections4
+ org.apache.commons
+
+
diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java
index 4669c0a2ce..f9e9cf9db2 100644
--- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java
+++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java
@@ -1,10 +1,14 @@
package com.epmet.dto.result.agentservice;
+import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
+import java.security.PrivateKey;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
@Data
@AllArgsConstructor
@@ -13,8 +17,9 @@ public class LingShanScreenServiceRstDTO {
private String content;
private String applicantName;
private String applicantMobile;
- private String applicantHomeAddress;
+ private String exceptServeAddress;
private Date createdTime;
+ private Date exceptServeTime;
private String agentName;
private String agentMobile;
@@ -26,4 +31,29 @@ public class LingShanScreenServiceRstDTO {
* 纬度
*/
private String latitude;
+
+ private String processTime;
+ private String processDesc;
+ private List attachments;
+ private String processStatus;
+ private String closeDesc;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date closeTime;
+ private Integer satisfication;
+
+ /**
+ * 处理进展
+ */
+ private List processNodes = new ArrayList<>();
+
+ @Data
+ @NoArgsConstructor
+ @AllArgsConstructor
+ public static class ProcessNode {
+ private Integer processType;
+ private String processTypeName;
+ private String processorName;
+ private String processDesc;
+ private List processAttachments = new ArrayList<>();
+ }
}
diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java
index 541462c10b..6bca986b45 100644
--- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java
+++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java
@@ -286,6 +286,19 @@ public class LingShanAgentServiceController {
return new Result>().ok(rl);
}
+ /**
+ * @Description: 中央大屏:服务详情
+ * @param id:
+ * @Return com.epmet.commons.tools.utils.Result
+ * @Author: wangxianzhang
+ * @Date: 2023/5/17 2:40 PM
+ */
+ @GetMapping("screen/serviceDetail")
+ public Result screenServiceDetail(@RequestParam("id") String id) {
+ LingShanScreenServiceRstDTO c = lingShanServiceAgentService.screenServiceDetail(id);
+ return new Result().ok(c);
+ }
+
/**
* @Description: 服务类型数量分析
* @param orgType:
diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java
index 992244d76b..539809106a 100644
--- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java
+++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java
@@ -38,4 +38,6 @@ public interface LingShanAgentServiceService {
List serviceCategoryAnalysis(String orgType, String orgId);
List serviceTrendAnalysis(String orgType, String orgId);
+
+ LingShanScreenServiceRstDTO screenServiceDetail(String id);
}
diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java
index cfa4aef5ee..0b2fc2bd19 100644
--- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java
+++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java
@@ -513,7 +513,6 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ
d.setAgentMobile(agentInfo.getMobile());
}
- // todo 此处要查什么??申请人家庭住址?申请人家庭住址是什么?
// IcResiUserDTO resiUser = getResultDataOrReturnNull(userOpenFeignClient.getIcResiUserDTO(rec.getApplicantId()), ServiceConstant.EPMET_USER_SERVER);
// if (resiUser == null) {
// log.error("【灵山大屏】代办事件列表:查询申请人信息失败,申请人ID:" + rec.getApplicantId());
@@ -527,6 +526,8 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ
// }
d.setContent(rec.getContent());
+ d.setExceptServeAddress(rec.getExceptServeAddress());
+ d.setExceptServeTime(rec.getExceptServeTime());
d.setCreatedTime(rec.getCreatedTime());
d.setApplicantName(rec.getApplicantName());
d.setApplicantMobile(rec.getContactMobile());
@@ -537,6 +538,73 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ
}).collect(Collectors.toList());
}
+ @Override
+ public LingShanScreenServiceRstDTO screenServiceDetail(String id) {
+ LingshanAgentServiceRecordEntity serviceRecord = agentServiceRecordDao.selectById(id);
+ if (serviceRecord == null) {
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未找到对应服务,ID:" + id);
+ }
+
+ LingShanScreenServiceRstDTO rd = new LingShanScreenServiceRstDTO();
+ rd.setExceptServeAddress(serviceRecord.getExceptServeAddress());
+ rd.setExceptServeTime(serviceRecord.getExceptServeTime());
+ rd.setContent(serviceRecord.getContent());
+ rd.setLatitude(serviceRecord.getLatitude());
+ rd.setLongitude(serviceRecord.getLongitude());
+ rd.setAgentMobile(serviceRecord.getContactMobile());
+ rd.setAgentName(serviceRecord.getAgentName());
+ rd.setApplicantMobile(serviceRecord.getContactMobile());
+ rd.setApplicantName(serviceRecord.getApplicantName());
+ rd.setCreatedTime(serviceRecord.getCreatedTime());
+ rd.setCloseTime(serviceRecord.getCloseTime());
+ rd.setSatisfication(serviceRecord.getSatisfication());
+ rd.setAttachments(JSON.parseArray(serviceRecord.getAttachments(), String.class));
+
+ // 处理进展
+ List processNodes = rd.getProcessNodes();
+
+ // 创建起始节点
+ LingShanScreenServiceRstDTO.ProcessNode nc = createProcessNode(LingShanAgentServiceProcessStatusEnum.WAIT_ACCEPT, serviceRecord.getApplicantName(), null, new ArrayList<>());
+ processNodes.add(nc);
+
+ // 根据最新状态拼接后续处理节点
+ int processStatus = serviceRecord.getProcessStatus().intValue();
+ LingShanAgentServiceProcessStatusEnum processStatusEnum = LingShanAgentServiceProcessStatusEnum.getByStatus(processStatus);
+
+ if (LingShanAgentServiceProcessStatusEnum.WITHDRAW.getStatusCode() == processStatus) {
+ // 已撤回
+ LingShanScreenServiceRstDTO.ProcessNode nd = createProcessNode(processStatusEnum, serviceRecord.getApplicantName(), null, new ArrayList<>());
+ processNodes.add(nd);
+ } else {
+ // 正常处理流程
+ if (processStatus == LingShanAgentServiceProcessStatusEnum.ACCEPTED.getStatusCode()) {
+ // 受理 0 1
+ LingShanScreenServiceRstDTO.ProcessNode np = createProcessNode(processStatusEnum, serviceRecord.getAgentName(), serviceRecord.getProcessDesc(), new ArrayList<>());
+ processNodes.add(np);
+ } else if (processStatus == LingShanAgentServiceProcessStatusEnum.REJECTED.getStatusCode()) {
+ // 驳回 0 2
+ LingShanScreenServiceRstDTO.ProcessNode np = createProcessNode(processStatusEnum, serviceRecord.getAgentName(), serviceRecord.getProcessDesc(), new ArrayList<>());
+ processNodes.add(np);
+ } else {
+ // 办结 0 1 3
+ LingShanScreenServiceRstDTO.ProcessNode na = createProcessNode(LingShanAgentServiceProcessStatusEnum.ACCEPTED, serviceRecord.getAgentName(), serviceRecord.getProcessDesc(), new ArrayList<>());
+ LingShanScreenServiceRstDTO.ProcessNode ncc = createProcessNode(LingShanAgentServiceProcessStatusEnum.CLOSED, serviceRecord.getAgentName(), serviceRecord.getCloseDesc(), JSON.parseArray(serviceRecord.getProcessAttachments(), String.class));
+ processNodes.add(na);
+ processNodes.add(ncc);
+ }
+
+ }
+
+ return rd;
+ }
+
+ private LingShanScreenServiceRstDTO.ProcessNode createProcessNode(LingShanAgentServiceProcessStatusEnum processStatusEnum, String applicantName, String processDesc, List processAttachments) {
+ return new LingShanScreenServiceRstDTO.ProcessNode(
+ processStatusEnum.getStatusCode(),
+ processStatusEnum.getStatusName(),
+ applicantName, processDesc, processAttachments);
+ }
+
@Override
public List serviceCategoryAnalysis(String orgType, String orgId) {
diff --git a/epmet-module/epmet-third/epmet-third-client/pom.xml b/epmet-module/epmet-third/epmet-third-client/pom.xml
index 37b51d9479..6f547acc9b 100644
--- a/epmet-module/epmet-third/epmet-third-client/pom.xml
+++ b/epmet-module/epmet-third/epmet-third-client/pom.xml
@@ -24,6 +24,14 @@
feign-form-spring
io.github.openfeign.form
+
+ objenesis
+ org.objenesis
+
+
+ asm
+ org.ow2.asm
+
@@ -31,12 +39,28 @@
weixin-java-mp
3.6.0
compile
+
+
+ guava
+ com.google.guava
+
+
+ commons-io
+ commons-io
+
+
com.epmet
epmet-user-client
2.0.0
compile
+
+
+ commons-collections4
+ org.apache.commons
+
+
io.github.openfeign.form
@@ -52,6 +76,12 @@
commons-fileupload
commons-fileupload
1.3.3
+
+
+ commons-io
+ commons-io
+
+
diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml
index ae368d1906..e5b52a57ed 100644
--- a/epmet-module/epmet-third/epmet-third-server/pom.xml
+++ b/epmet-module/epmet-third/epmet-third-server/pom.xml
@@ -157,16 +157,27 @@
rocketmq-acl
4.9.2
-
- dingtalk-spring-boot-starter
- com.taobao
- 1.0.0
-
+
+
+
+
+
+
+
+
+
+
commons-codec
commons-codec
1.15
+
+
+ com.github.xiaoymin
+ knife4j-spring-boot-starter
+ 2.0.5
+
@@ -228,7 +239,8 @@
20
60
epmet-third
- callerRunsPolicy
+ callerRunsPolicy
+
false
@@ -288,7 +300,8 @@
20
60
epmet-third
- callerRunsPolicy
+ callerRunsPolicy
+
false
@@ -347,7 +360,8 @@
20
60
epmet-third
- callerRunsPolicy
+ callerRunsPolicy
+
true
@@ -407,7 +421,8 @@
20
60
epmet-third
- callerRunsPolicy
+ callerRunsPolicy
+
true
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java
index 21c518e033..3efd642c87 100644
--- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java
@@ -1,7 +1,6 @@
package com.epmet;
import com.epmet.mq.properties.RocketMQProperties;
-import com.taobao.dingtalk.spring.annotations.EnableDingTalk;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -9,7 +8,6 @@ import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
-@EnableDingTalk
@EnableConfigurationProperties(RocketMQProperties.class)
@SpringBootApplication
@EnableDiscoveryClient
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/dingtalk/CallbackController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/dingtalk/CallbackController.java
index 8164c4cdbe..a978ece6eb 100644
--- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/dingtalk/CallbackController.java
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/dingtalk/CallbackController.java
@@ -1,29 +1,14 @@
package com.epmet.controller.dingtalk;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.aliyun.dingtalk.util.DingCallbackCrypto;
-import com.epmet.commons.tools.constant.NumConstant;
-import com.epmet.commons.tools.dto.form.DingMiniInfoFormDTO;
-import com.epmet.commons.tools.redis.common.bean.DingMiniInfoCache;
-import com.epmet.commons.tools.utils.Result;
-import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dao.OpenSyncBizDataDao;
-import com.epmet.dto.DingMiniInfoDTO;
-import com.epmet.dto.form.ExemptLoginUserDetailFormDTO;
-import com.epmet.entity.OpenSyncBizDataEntity;
import com.epmet.redis.DingDingCallbackRedis;
import com.epmet.service.DingTalkService;
import com.epmet.service.OpenSyncBizDataService;
-import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
/**
* ISV 小程序回调信息处理
@@ -65,81 +50,81 @@ public class CallbackController {
@Autowired
private DingTalkService dingTalkService;
- @PostMapping(value = "dingCallback")
- public Object dingCallback(
- @RequestParam(value = "signature") String signature,
- @RequestParam(value = "timestamp") Long timestamp,
- @RequestParam(value = "nonce") String nonce,
- @RequestParam(value = "suiteKey") String suiteKey,
- @RequestBody(required = false) JSONObject body
- ) {
- String params = "signature:" + signature + " timestamp:" + timestamp + " nonce:" + nonce + " body:" + body + "suiteKey::"+suiteKey;
- try {
- log.info("begin callback:" + params);
- DingMiniInfoDTO dingMiniInfo = openSyncBizDataDao.getDingMiniInfo(suiteKey);
- DingCallbackCrypto dingTalkEncryptor = new DingCallbackCrypto(dingMiniInfo.getToken(), dingMiniInfo.getAesKey(), suiteKey);
-
- // 从post请求的body中获取回调信息的加密数据进行解密处理
- String encrypt = body.getString("encrypt");
- String plainText = dingTalkEncryptor.getDecryptMsg(signature, timestamp.toString(), nonce, encrypt);
- JSONObject callBackContent = JSON.parseObject(plainText);
-
- log.info("推来的消息体:"+plainText);
-
- // 根据回调事件类型做不同的业务处理
- String eventType = callBackContent.getString("EventType");
- if (EVENT_CHECK_CREATE_SUITE_URL.equals(eventType)) {
- log.info("验证新创建的回调URL有效性: " + plainText);
- } else if (EVENT_CHECK_UPADTE_SUITE_URL.equals(eventType)) {
- log.info("验证更新回调URL有效性: " + plainText);
- } else if (EVENT_SUITE_TICKET.equals(eventType)) {
- // suite_ticket用于用签名形式生成accessToken(访问钉钉服务端的凭证),需要保存到应用的db。
- // 钉钉会定期向本callback url推送suite_ticket新值用以提升安全性。
- // 应用在获取到新的时值时,保存db成功后,返回给钉钉success加密串(如本demo的return)
- log.info("应用suite_ticket数据推送: " + plainText);
- } else if (EVENT_TMP_AUTH_CODE.equals(eventType)) {
- // 本事件应用应该异步进行授权开通企业的初始化,目的是尽最大努力快速返回给钉钉服务端。用以提升企业管理员开通应用体验
- // 即使本接口没有收到数据或者收到事件后处理初始化失败都可以后续再用户试用应用时从前端获取到corpId并拉取授权企业信息,进而初始化开通及企业。
- log.info("企业授权开通应用事件: " + plainText);
- } else if (EVENT_SYNC_HTTP_PUSH_HIGH.equals(eventType)){
- List