Browse Source

用miniappId获取

master
jianjun 3 years ago
parent
commit
7153f5b957
  1. 11
      epmet-auth/src/main/java/com/epmet/dto/form/ResiDingAppLoginFormDTO.java
  2. 7
      epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
  3. 4
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DingMiniInfoFormDTO.java
  4. 6
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerDingDingRedis.java
  5. 7
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingTalkServiceImpl.java

11
epmet-auth/src/main/java/com/epmet/dto/form/ResiDingAppLoginFormDTO.java

@ -11,16 +11,23 @@ import javax.validation.constraints.NotBlank;
*/ */
@Data @Data
public class ResiDingAppLoginFormDTO { public class ResiDingAppLoginFormDTO {
public interface InnerMiniApp {}
public interface ThirdMiniApp {}
/** /**
* 授权统一后的authCode * 授权统一后的authCode
*/ */
@NotBlank(message = "authCode不能为空") @NotBlank(message = "authCode不能为空",groups = InnerMiniApp.class)
private String authCode; private String authCode;
/** /**
* 第三方企业应用传应用的SuiteKey * 第三方企业应用传应用的SuiteKey
*/ */
@NotBlank(message = "clientId不能为空") @NotBlank(message = "clientId不能为空")
private String clientId; private String clientId;
/**
* 第三方企业应用传应用的SuiteKey
*/
@NotBlank(message = "miniAppId不能为空",groups = InnerMiniApp.class)
private String miniAppId;
// @NotBlank(message = "当前访问用户的企业corpId不能为空") // @NotBlank(message = "当前访问用户的企业corpId不能为空")
// private String corpId; // private String corpId;
@ -29,6 +36,6 @@ public class ResiDingAppLoginFormDTO {
* third第三方应用 * third第三方应用
* company_customize:企业定制应用 * company_customize:企业定制应用
*/ */
private String appType="third"; private String appType="company_customize";
} }

7
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.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.feign.ResultDataResolver; 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.GovTokenDto;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.security.password.PasswordUtils; import com.epmet.commons.tools.security.password.PasswordUtils;
@ -737,8 +739,9 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
} }
//1、获取用户手机号 //1、获取用户手机号
String clientId = formDTO.getClientId(); String miniAppId = formDTO.getMiniAppId();
DingTalkResult<AccessTokenResult> userAccessToken = dingTalkClientToken.getUserAccessToken(formDTO.getAuthCode(), clientId, DingMiniAppEnum.getEnum(clientId).getSuiteSecret()); DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId);
DingTalkResult<AccessTokenResult> userAccessToken = dingTalkClientToken.getUserAccessToken(formDTO.getAuthCode(), dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret());
log.info("2、resiLoginDing userAccessToken:{}",JSON.toJSONString(userAccessToken)); log.info("2、resiLoginDing userAccessToken:{}",JSON.toJSONString(userAccessToken));
if (!userAccessToken.success() || null == userAccessToken.getData()) { 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()); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "调用微信api异常:" + JSON.toJSONString(userAccessToken), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg());

4
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{} public interface DingMiniInfoForm{}
@NotBlank(message = "suiteKey不能为空",groups = DingMiniInfoForm.class) @NotBlank(message = "miniAppId不能为空",groups = DingMiniInfoForm.class)
private String suiteKey; private String miniAppId;
} }

6
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; customerDingDingRedis.redisUtils = this.redisUtils;
} }
public static DingMiniInfoCache getDingMiniInfo(String suiteKey){ public static DingMiniInfoCache getDingMiniInfo(String miniAppId){
String key = RedisKeys.getDingMiniInfoKey(suiteKey); String key = RedisKeys.getDingMiniInfoKey(miniAppId);
Map<String, Object> miniInfoMap = customerDingDingRedis.redisUtils.hGetAll(key); Map<String, Object> miniInfoMap = customerDingDingRedis.redisUtils.hGetAll(key);
if (!CollectionUtils.isEmpty(miniInfoMap)){ if (!CollectionUtils.isEmpty(miniInfoMap)){
return ConvertUtils.mapToEntity(miniInfoMap,DingMiniInfoCache.class); return ConvertUtils.mapToEntity(miniInfoMap,DingMiniInfoCache.class);
} }
Result<DingMiniInfoCache> dingMiniInfoResult = customerDingDingRedis.thirdFeignClient.getDingMiniInfo(new DingMiniInfoFormDTO(suiteKey)); Result<DingMiniInfoCache> dingMiniInfoResult = customerDingDingRedis.thirdFeignClient.getDingMiniInfo(new DingMiniInfoFormDTO(miniAppId));
if (!dingMiniInfoResult.success()){ if (!dingMiniInfoResult.success()){
throw new EpmetException("查询dingMiniInfo失败..."); throw new EpmetException("查询dingMiniInfo失败...");
} }

7
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 @Override
public DingMiniInfoCache getDingMiniInfo(DingMiniInfoFormDTO formDTO) { public DingMiniInfoCache getDingMiniInfo(DingMiniInfoFormDTO formDTO) {
String key = RedisKeys.getDingMiniInfoKey(formDTO.getSuiteKey()); String key = RedisKeys.getDingMiniInfoKey(formDTO.getMiniAppId());
Map<String, Object> dingMiniInfoMap = redisUtils.hGetAll(key); Map<String, Object> dingMiniInfoMap = redisUtils.hGetAll(key);
if (!CollectionUtils.isEmpty(dingMiniInfoMap)) { if (!CollectionUtils.isEmpty(dingMiniInfoMap)) {
DingMiniInfoCache dingMiniInfoCache = ConvertUtils.mapToEntity(dingMiniInfoMap,DingMiniInfoCache.class); return ConvertUtils.mapToEntity(dingMiniInfoMap,DingMiniInfoCache.class);
return dingMiniInfoCache;
} }
DingMiniInfoDTO dingMiniInfo = openSyncBizDataDao.getDingMiniInfo(formDTO.getSuiteKey()); DingMiniInfoDTO dingMiniInfo = openSyncBizDataDao.getDingMiniInfoByAppId(formDTO.getMiniAppId());
if (null != dingMiniInfo){ if (null != dingMiniInfo){
redisUtils.hMSet(key, BeanUtil.beanToMap(dingMiniInfo)); redisUtils.hMSet(key, BeanUtil.beanToMap(dingMiniInfo));
return ConvertUtils.sourceToTarget(dingMiniInfo,DingMiniInfoCache.class); return ConvertUtils.sourceToTarget(dingMiniInfo,DingMiniInfoCache.class);

Loading…
Cancel
Save