forked from luyan/epmet-cloud-lingshan
				
			
				 10 changed files with 263 additions and 0 deletions
			
			
		@ -0,0 +1,26 @@ | 
				
			|||||
 | 
					package com.epmet.commons.tools.dto.form; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import lombok.AllArgsConstructor; | 
				
			||||
 | 
					import lombok.Data; | 
				
			||||
 | 
					import lombok.NoArgsConstructor; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import javax.validation.constraints.NotBlank; | 
				
			||||
 | 
					import java.io.Serializable; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					/** | 
				
			||||
 | 
					 * @Author zxc | 
				
			||||
 | 
					 * @DateTime 2022/9/15 10:25 | 
				
			||||
 | 
					 * @DESC | 
				
			||||
 | 
					 */ | 
				
			||||
 | 
					@Data | 
				
			||||
 | 
					@NoArgsConstructor | 
				
			||||
 | 
					@AllArgsConstructor | 
				
			||||
 | 
					public class DingMiniInfoFormDTO implements Serializable { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    private static final long serialVersionUID = 2661531490851265637L; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    public interface DingMiniInfoForm{} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @NotBlank(message = "suiteKey不能为空",groups = DingMiniInfoForm.class) | 
				
			||||
 | 
					    private String suiteKey; | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,24 @@ | 
				
			|||||
 | 
					package com.epmet.commons.tools.feign; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import com.epmet.commons.tools.constant.ServiceConstant; | 
				
			||||
 | 
					import com.epmet.commons.tools.dto.form.DingMiniInfoFormDTO; | 
				
			||||
 | 
					import com.epmet.commons.tools.feign.fallback.CommonThirdFeignClientFallBackFactory; | 
				
			||||
 | 
					import com.epmet.commons.tools.redis.common.bean.DingMiniInfoCache; | 
				
			||||
 | 
					import com.epmet.commons.tools.utils.Result; | 
				
			||||
 | 
					import org.springframework.cloud.openfeign.FeignClient; | 
				
			||||
 | 
					import org.springframework.web.bind.annotation.PostMapping; | 
				
			||||
 | 
					import org.springframework.web.bind.annotation.RequestBody; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					/** | 
				
			||||
 | 
					 * @Description | 
				
			||||
 | 
					 * @Author zxc | 
				
			||||
 | 
					 */ | 
				
			||||
 | 
					@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = CommonThirdFeignClientFallBackFactory.class) | 
				
			||||
 | 
					// @FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = CommonAggFeignClientFallBackFactory.class,url = "localhost:8110")
 | 
				
			||||
 | 
					public interface CommonThirdFeignClient { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @PostMapping("/third/dingTalk/getDingMiniInfo") | 
				
			||||
 | 
					    Result<DingMiniInfoCache> getDingMiniInfo(@RequestBody DingMiniInfoFormDTO formDTO); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,20 @@ | 
				
			|||||
 | 
					package com.epmet.commons.tools.feign.fallback; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import com.epmet.commons.tools.exception.ExceptionUtils; | 
				
			||||
 | 
					import com.epmet.commons.tools.feign.CommonThirdFeignClient; | 
				
			||||
 | 
					import feign.hystrix.FallbackFactory; | 
				
			||||
 | 
					import lombok.extern.slf4j.Slf4j; | 
				
			||||
 | 
					import org.springframework.stereotype.Component; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					@Component | 
				
			||||
 | 
					@Slf4j | 
				
			||||
 | 
					public class CommonThirdFeignClientFallBackFactory implements FallbackFactory<CommonThirdFeignClient> { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    private CommonThirdFeignClientFallback fallback = new CommonThirdFeignClientFallback(); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @Override | 
				
			||||
 | 
					    public CommonThirdFeignClient create(Throwable cause) { | 
				
			||||
 | 
					        log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); | 
				
			||||
 | 
					        return fallback; | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,24 @@ | 
				
			|||||
 | 
					package com.epmet.commons.tools.feign.fallback; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import com.epmet.commons.tools.constant.ServiceConstant; | 
				
			||||
 | 
					import com.epmet.commons.tools.dto.form.DingMiniInfoFormDTO; | 
				
			||||
 | 
					import com.epmet.commons.tools.feign.CommonThirdFeignClient; | 
				
			||||
 | 
					import com.epmet.commons.tools.redis.common.bean.DingMiniInfoCache; | 
				
			||||
 | 
					import com.epmet.commons.tools.utils.ModuleUtils; | 
				
			||||
 | 
					import com.epmet.commons.tools.utils.Result; | 
				
			||||
 | 
					import org.springframework.stereotype.Component; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					/** | 
				
			||||
 | 
					 * | 
				
			||||
 | 
					 * @Author zxc | 
				
			||||
 | 
					 * @Description | 
				
			||||
 | 
					 * @Date | 
				
			||||
 | 
					 **/ | 
				
			||||
 | 
					@Component | 
				
			||||
 | 
					public class CommonThirdFeignClientFallback implements CommonThirdFeignClient { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @Override | 
				
			||||
 | 
					    public Result<DingMiniInfoCache> getDingMiniInfo(DingMiniInfoFormDTO formDTO) { | 
				
			||||
 | 
					        return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "getDingMiniInfo", formDTO); | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,58 @@ | 
				
			|||||
 | 
					package com.epmet.commons.tools.redis.common; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import com.epmet.commons.tools.dto.form.DingMiniInfoFormDTO; | 
				
			||||
 | 
					import com.epmet.commons.tools.exception.EpmetException; | 
				
			||||
 | 
					import com.epmet.commons.tools.feign.CommonThirdFeignClient; | 
				
			||||
 | 
					import com.epmet.commons.tools.redis.RedisKeys; | 
				
			||||
 | 
					import com.epmet.commons.tools.redis.RedisUtils; | 
				
			||||
 | 
					import com.epmet.commons.tools.redis.common.bean.DingMiniInfoCache; | 
				
			||||
 | 
					import com.epmet.commons.tools.utils.ConvertUtils; | 
				
			||||
 | 
					import com.epmet.commons.tools.utils.Result; | 
				
			||||
 | 
					import lombok.extern.slf4j.Slf4j; | 
				
			||||
 | 
					import org.springframework.beans.factory.annotation.Autowired; | 
				
			||||
 | 
					import org.springframework.stereotype.Component; | 
				
			||||
 | 
					import org.springframework.util.CollectionUtils; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import javax.annotation.PostConstruct; | 
				
			||||
 | 
					import java.util.Map; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					/** | 
				
			||||
 | 
					 * @Author zxc | 
				
			||||
 | 
					 * @DateTime 2022/9/15 10:01 | 
				
			||||
 | 
					 * @DESC | 
				
			||||
 | 
					 */ | 
				
			||||
 | 
					@Slf4j | 
				
			||||
 | 
					@Component | 
				
			||||
 | 
					public class CustomerDingDingRedis { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @Autowired | 
				
			||||
 | 
					    private CommonThirdFeignClient thirdFeignClient; | 
				
			||||
 | 
					    @Autowired | 
				
			||||
 | 
					    private RedisUtils redisUtils; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    private static CustomerDingDingRedis customerDingDingRedis; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @PostConstruct | 
				
			||||
 | 
					    public void init() { | 
				
			||||
 | 
					        customerDingDingRedis = this; | 
				
			||||
 | 
					        customerDingDingRedis.thirdFeignClient = this.thirdFeignClient; | 
				
			||||
 | 
					        customerDingDingRedis.redisUtils = this.redisUtils; | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    public static DingMiniInfoCache getDingMiniInfo(String suiteKey){ | 
				
			||||
 | 
					        String key = RedisKeys.getDingMiniInfoKey(suiteKey); | 
				
			||||
 | 
					        Map<String, Object> miniInfoMap = customerDingDingRedis.redisUtils.hGetAll(key); | 
				
			||||
 | 
					        if (!CollectionUtils.isEmpty(miniInfoMap)){ | 
				
			||||
 | 
					            return ConvertUtils.mapToEntity(miniInfoMap,DingMiniInfoCache.class); | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        Result<DingMiniInfoCache> dingMiniInfoResult = customerDingDingRedis.thirdFeignClient.getDingMiniInfo(new DingMiniInfoFormDTO(suiteKey)); | 
				
			||||
 | 
					        if (!dingMiniInfoResult.success()){ | 
				
			||||
 | 
					            throw new EpmetException("查询dingMiniInfo失败..."); | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        if (null == dingMiniInfoResult.getData()){ | 
				
			||||
 | 
					            return null; | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        return dingMiniInfoResult.getData(); | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,52 @@ | 
				
			|||||
 | 
					package com.epmet.commons.tools.redis.common.bean; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import lombok.Data; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import java.io.Serializable; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					/** | 
				
			||||
 | 
					 * @Author zxc | 
				
			||||
 | 
					 * @DateTime 2022/9/15 10:11 | 
				
			||||
 | 
					 * @DESC | 
				
			||||
 | 
					 */ | 
				
			||||
 | 
					@Data | 
				
			||||
 | 
					public class DingMiniInfoCache implements Serializable { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    private static final long serialVersionUID = -6956910978074595334L; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    private String id; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    /** | 
				
			||||
 | 
					     * | 
				
			||||
 | 
					     */ | 
				
			||||
 | 
					    private String suiteId; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    /** | 
				
			||||
 | 
					     * | 
				
			||||
 | 
					     */ | 
				
			||||
 | 
					    private String appId; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    /** | 
				
			||||
 | 
					     * | 
				
			||||
 | 
					     */ | 
				
			||||
 | 
					    private String miniAppId; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    /** | 
				
			||||
 | 
					     * | 
				
			||||
 | 
					     */ | 
				
			||||
 | 
					    private String suiteName; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    /** | 
				
			||||
 | 
					     * | 
				
			||||
 | 
					     */ | 
				
			||||
 | 
					    private String suiteKey; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    /** | 
				
			||||
 | 
					     * | 
				
			||||
 | 
					     */ | 
				
			||||
 | 
					    private String suiteSecret; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    private String token; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    private String aesKey; | 
				
			||||
 | 
					} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue