说明:1、接入天行数据经典台词接口
This commit is contained in:
parent
db95cba280
commit
0ec22bd4b3
|
|
@ -20,7 +20,7 @@ public class RemoteCopyWritingFactory implements FallbackFactory<RemoteCopyWriti
|
|||
|
||||
@Override
|
||||
public RemoteCopyWritingFeign create(Throwable cause) {
|
||||
log.error("英语模块文案服务调用失败:{}", cause.getMessage());
|
||||
log.error("api模块文案服务调用失败:{}", cause.getMessage());
|
||||
return () -> R.fail("文案服务调用失败" + cause.getMessage());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
package com.xjs.common.client;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xjs.common.aop.ApiLog;
|
||||
import com.xjs.common.client.factory.TianXingJDTCFeignFactory;
|
||||
import com.xjs.copywriting.domain.RequestBody;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.cloud.openfeign.SpringQueryMap;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
import static com.xjs.common.consts.ApiConst.TIANXING_JDTC;
|
||||
|
||||
/**
|
||||
* @author xiejs
|
||||
* @desc 天行数据经典台词接口api调用
|
||||
* @create 2021-12-29
|
||||
*/
|
||||
@FeignClient(name = "tianXingJDTC",url = "http://api.tianapi.com/dialogue/index?",fallbackFactory = TianXingJDTCFeignFactory.class)
|
||||
public interface TianXingJDTCFeignClient {
|
||||
|
||||
@GetMapping
|
||||
@ApiLog(name = TIANXING_JDTC,
|
||||
url = "http://api.tianapi.com/dialogue/index",
|
||||
method = "Get")
|
||||
JSONObject copyWritingApi(@SpringQueryMap RequestBody requestBody);
|
||||
}
|
||||
|
|
@ -18,6 +18,7 @@ import static com.xjs.common.consts.ApiConst.TIANXING_WYY;
|
|||
@FunctionalInterface
|
||||
@FeignClient(name = "tianXingWYY",url = "http://api.tianapi.com/hotreview/index",fallbackFactory = TianXingWYYFeignFactory.class)
|
||||
public interface TianXingWYYFeignClient {
|
||||
|
||||
@GetMapping
|
||||
@ApiLog(name = TIANXING_WYY,
|
||||
url = "http://api.tianapi.com/hotreview/index",
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import org.springframework.stereotype.Component;
|
|||
public class BaiduFeignFactory implements FallbackFactory<BaiduFeignClient> {
|
||||
@Override
|
||||
public BaiduFeignClient create(Throwable cause) {
|
||||
log.error("英语模块百度翻译服务调用失败:{},执行降级处理", cause.getMessage());
|
||||
log.error("api模块百度翻译服务调用失败:{},执行降级处理", cause.getMessage());
|
||||
return qo -> {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
//构建一个异常json给下层接口处理
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
package com.xjs.common.client.factory;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xjs.common.client.TianXingJDTCFeignClient;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author xiejs
|
||||
* @desc 天行数据经典台词降级处理
|
||||
* @create 2021-12-29
|
||||
*/
|
||||
@Component
|
||||
@Log4j2
|
||||
public class TianXingJDTCFeignFactory implements FallbackFactory<TianXingJDTCFeignClient> {
|
||||
|
||||
@Override
|
||||
public TianXingJDTCFeignClient create(Throwable cause) {
|
||||
log.error("api模块经典台词服务调用失败:{},执行降级处理", cause.getMessage());
|
||||
return requestBody -> {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
//构建一个异常json给下层接口处理
|
||||
jsonObject.put("error", 500);
|
||||
return jsonObject;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -16,7 +16,7 @@ import org.springframework.stereotype.Component;
|
|||
public class TianXingPYQFeignFactory implements FallbackFactory<TianXingPYQFeignClient> {
|
||||
@Override
|
||||
public TianXingPYQFeignClient create(Throwable cause) {
|
||||
log.error("英语模块网易云热评服务调用失败:{},执行降级处理", cause.getMessage());
|
||||
log.error("api模块网易云热评服务调用失败:{},执行降级处理", cause.getMessage());
|
||||
return requestBody -> {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
//构建一个异常json给下层接口处理
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import org.springframework.stereotype.Component;
|
|||
public class TianXingWYYFeignFactory implements FallbackFactory<TianXingWYYFeignClient> {
|
||||
@Override
|
||||
public TianXingWYYFeignClient create(Throwable cause) {
|
||||
log.error("英语模块朋友圈文案服务调用失败:{},执行降级处理", cause.getMessage());
|
||||
log.error("api模块朋友圈文案服务调用失败:{},执行降级处理", cause.getMessage());
|
||||
return requestBody -> {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
//构建一个异常json给下层接口处理
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ public class YouDaoFeignFactory implements FallbackFactory<YouDaoFeignClient> {
|
|||
|
||||
@Override
|
||||
public YouDaoFeignClient create(Throwable cause) {
|
||||
log.error("英语模块有道翻译服务调用失败:{},执行降级处理", cause.getMessage());
|
||||
log.error("api模块有道翻译服务调用失败:{},执行降级处理", cause.getMessage());
|
||||
return qo -> {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
//构建一个异常json给下层接口处理
|
||||
|
|
|
|||
|
|
@ -13,4 +13,6 @@ public class ApiConst {
|
|||
public static final String TIANXING_PYQ= "天行-朋友圈";
|
||||
|
||||
public static final String TIANXING_WYY= "天行-网易云";
|
||||
|
||||
public static final String TIANXING_JDTC= "天行-经典台词";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,10 @@ package com.xjs.common.consts;
|
|||
*/
|
||||
public class TianXingConst {
|
||||
|
||||
//朋友圈
|
||||
public static final Integer PYQ= 1;
|
||||
//网易云
|
||||
public static final Integer WYY= 2;
|
||||
//经典台词
|
||||
public static final Integer JDTC= 3;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@ public class CopyWritingController extends BaseController {
|
|||
@Autowired
|
||||
private CopyWritingFactory tianXingWYYCopyWritingFactory;
|
||||
@Autowired
|
||||
private CopyWritingFactory tianXingJDTCCopyWritingFactory;
|
||||
@Autowired
|
||||
private CopyWritingService copyWritingService;
|
||||
|
||||
|
||||
|
|
@ -73,6 +75,7 @@ public class CopyWritingController extends BaseController {
|
|||
//添加了新接口只需要在这add接口进去
|
||||
factories.add(tianXingPYQCopyWritingFactory);
|
||||
factories.add(tianXingWYYCopyWritingFactory);
|
||||
factories.add(tianXingJDTCCopyWritingFactory);
|
||||
//--------add----------------------------;-
|
||||
//随机调用集合中的接口
|
||||
return RandomUtil.randomEle(factories);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,58 @@
|
|||
package com.xjs.copywriting.factory.impl;
|
||||
|
||||
import cn.hutool.http.HttpStatus;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xjs.common.client.TianXingJDTCFeignClient;
|
||||
import com.xjs.common.config.TianXingProperties;
|
||||
import com.xjs.common.consts.TianXingConst;
|
||||
import com.xjs.common.exception.ApiException;
|
||||
import com.xjs.copywriting.domain.CopyWriting;
|
||||
import com.xjs.copywriting.domain.RequestBody;
|
||||
import com.xjs.copywriting.factory.CopyWritingFactory;
|
||||
import com.xjs.copywriting.mapper.CopyWritingMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author xiejs
|
||||
* @desc 天行数据经典台词工厂实现
|
||||
* @create 2021-12-29
|
||||
*/
|
||||
@Service
|
||||
public class TianXingJDTCCopyWritingFactory implements CopyWritingFactory {
|
||||
@Autowired
|
||||
private TianXingProperties tianXingProperties;
|
||||
@Autowired
|
||||
private TianXingJDTCFeignClient tianXingJDTCFeignClient;
|
||||
@Resource
|
||||
private CopyWritingMapper copyWritingMapper;
|
||||
|
||||
@Override
|
||||
public CopyWriting productCopyWriting(RequestBody requestBody) {
|
||||
requestBody.setKey(tianXingProperties.getKey());
|
||||
JSONObject jsonObject = tianXingJDTCFeignClient.copyWritingApi(requestBody);
|
||||
if(jsonObject.containsKey("code")){
|
||||
if (HttpStatus.HTTP_OK !=jsonObject.getInteger("code")) {
|
||||
throw new ApiException("天行数据朋友圈文案接口调用异常");
|
||||
}
|
||||
JSONArray newslist = jsonObject.getJSONArray("newslist");
|
||||
String dialogue = newslist.getJSONObject(0).getString("dialogue");
|
||||
String source = newslist.getJSONObject(0).getString("source");
|
||||
CopyWriting copyWriting = new CopyWriting();
|
||||
copyWriting.setContent(dialogue);
|
||||
copyWriting.setSource(source);
|
||||
copyWriting.setType(TianXingConst.JDTC);
|
||||
copyWritingMapper.insert(copyWriting);
|
||||
return copyWriting;
|
||||
}else {
|
||||
//调用服务失败的降级之后的处理
|
||||
if (jsonObject.containsKey("error")) {
|
||||
return copyWritingMapper.getOneToNew();
|
||||
}
|
||||
return new CopyWriting();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue