From 7153f5b95779e43f877fdfc52d24e8f63c0289ce Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 21 Sep 2022 17:47:55 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8miniappId=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/form/ResiDingAppLoginFormDTO.java | 11 +++++++++-- .../com/epmet/service/impl/ThirdLoginServiceImpl.java | 7 +++++-- .../commons/tools/dto/form/DingMiniInfoFormDTO.java | 4 ++-- .../tools/redis/common/CustomerDingDingRedis.java | 6 +++--- .../com/epmet/service/impl/DingTalkServiceImpl.java | 7 +++---- .../src/main/resources/mapper/OpenSyncBizDataDao.xml | 2 +- 6 files changed, 23 insertions(+), 14 deletions(-) diff --git a/epmet-auth/src/main/java/com/epmet/dto/form/ResiDingAppLoginFormDTO.java b/epmet-auth/src/main/java/com/epmet/dto/form/ResiDingAppLoginFormDTO.java index 3638f76385..98c0f492b8 100644 --- a/epmet-auth/src/main/java/com/epmet/dto/form/ResiDingAppLoginFormDTO.java +++ b/epmet-auth/src/main/java/com/epmet/dto/form/ResiDingAppLoginFormDTO.java @@ -11,16 +11,23 @@ import javax.validation.constraints.NotBlank; */ @Data public class ResiDingAppLoginFormDTO { + public interface InnerMiniApp {} + public interface ThirdMiniApp {} /** * 授权统一后的authCode */ - @NotBlank(message = "authCode不能为空") + @NotBlank(message = "authCode不能为空",groups = InnerMiniApp.class) private String authCode; /** * 第三方企业应用传应用的SuiteKey */ @NotBlank(message = "clientId不能为空") private String clientId; + /** + * 第三方企业应用传应用的SuiteKey + */ + @NotBlank(message = "miniAppId不能为空",groups = InnerMiniApp.class) + private String miniAppId; // @NotBlank(message = "当前访问用户的企业corpId不能为空") // private String corpId; @@ -29,6 +36,6 @@ public class ResiDingAppLoginFormDTO { * third:第三方应用 * company_customize:企业定制应用 */ - private String appType="third"; + private String appType="company_customize"; } 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 0fad9bf77b..04c1fa4e0a 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 @@ -18,6 +18,8 @@ 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; @@ -737,8 +739,9 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol } //1、获取用户手机号 - String clientId = formDTO.getClientId(); - DingTalkResult userAccessToken = dingTalkClientToken.getUserAccessToken(formDTO.getAuthCode(), clientId, DingMiniAppEnum.getEnum(clientId).getSuiteSecret()); + 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()); diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DingMiniInfoFormDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DingMiniInfoFormDTO.java index 57a28cadc8..bd36526985 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DingMiniInfoFormDTO.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DingMiniInfoFormDTO.java @@ -21,6 +21,6 @@ public class DingMiniInfoFormDTO implements Serializable { public interface DingMiniInfoForm{} - @NotBlank(message = "suiteKey不能为空",groups = DingMiniInfoForm.class) - private String suiteKey; + @NotBlank(message = "miniAppId不能为空",groups = DingMiniInfoForm.class) + private String miniAppId; } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerDingDingRedis.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerDingDingRedis.java index 834fccad2c..8a57fb1ca7 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerDingDingRedis.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerDingDingRedis.java @@ -39,13 +39,13 @@ public class CustomerDingDingRedis { customerDingDingRedis.redisUtils = this.redisUtils; } - public static DingMiniInfoCache getDingMiniInfo(String suiteKey){ - String key = RedisKeys.getDingMiniInfoKey(suiteKey); + public static DingMiniInfoCache getDingMiniInfo(String miniAppId){ + String key = RedisKeys.getDingMiniInfoKey(miniAppId); Map miniInfoMap = customerDingDingRedis.redisUtils.hGetAll(key); if (!CollectionUtils.isEmpty(miniInfoMap)){ return ConvertUtils.mapToEntity(miniInfoMap,DingMiniInfoCache.class); } - Result dingMiniInfoResult = customerDingDingRedis.thirdFeignClient.getDingMiniInfo(new DingMiniInfoFormDTO(suiteKey)); + Result dingMiniInfoResult = customerDingDingRedis.thirdFeignClient.getDingMiniInfo(new DingMiniInfoFormDTO(miniAppId)); if (!dingMiniInfoResult.success()){ throw new EpmetException("查询dingMiniInfo失败..."); } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingTalkServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingTalkServiceImpl.java index 7fd6f809b5..ec239a3ee9 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingTalkServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingTalkServiceImpl.java @@ -53,13 +53,12 @@ public class DingTalkServiceImpl implements DingTalkService { */ @Override public DingMiniInfoCache getDingMiniInfo(DingMiniInfoFormDTO formDTO) { - String key = RedisKeys.getDingMiniInfoKey(formDTO.getSuiteKey()); + String key = RedisKeys.getDingMiniInfoKey(formDTO.getMiniAppId()); Map dingMiniInfoMap = redisUtils.hGetAll(key); if (!CollectionUtils.isEmpty(dingMiniInfoMap)) { - DingMiniInfoCache dingMiniInfoCache = ConvertUtils.mapToEntity(dingMiniInfoMap,DingMiniInfoCache.class); - return dingMiniInfoCache; + return ConvertUtils.mapToEntity(dingMiniInfoMap,DingMiniInfoCache.class); } - DingMiniInfoDTO dingMiniInfo = openSyncBizDataDao.getDingMiniInfo(formDTO.getSuiteKey()); + DingMiniInfoDTO dingMiniInfo = openSyncBizDataDao.getDingMiniInfoByAppId(formDTO.getMiniAppId()); if (null != dingMiniInfo){ redisUtils.hMSet(key, BeanUtil.beanToMap(dingMiniInfo)); return ConvertUtils.sourceToTarget(dingMiniInfo,DingMiniInfoCache.class); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/OpenSyncBizDataDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/OpenSyncBizDataDao.xml index b81b8b81ba..d6bec2cfa5 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/OpenSyncBizDataDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/OpenSyncBizDataDao.xml @@ -27,4 +27,4 @@ and corp_id = #{corpId} - \ No newline at end of file +