parent
31c4ecd5c0
commit
08db46f3ca
@ -1,4 +1,4 @@
|
|||||||
package com.xjs.aop;
|
package com.xjs.common.aop;
|
||||||
|
|
||||||
import com.ruoyi.common.log.enums.BusinessType;
|
import com.ruoyi.common.log.enums.BusinessType;
|
||||||
import com.ruoyi.common.log.enums.OperatorType;
|
import com.ruoyi.common.log.enums.OperatorType;
|
@ -1,8 +1,8 @@
|
|||||||
package com.xjs.client;
|
package com.xjs.common.client;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.xjs.aop.ApiLog;
|
import com.xjs.common.aop.ApiLog;
|
||||||
import com.xjs.client.factory.BaiduFeignFactory;
|
import com.xjs.common.client.factory.BaiduFeignFactory;
|
||||||
import com.xjs.translation.domain.qo.translation.BaiDuTranslationQo;
|
import com.xjs.translation.domain.qo.translation.BaiDuTranslationQo;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
@ -1,8 +1,8 @@
|
|||||||
package com.xjs.client;
|
package com.xjs.common.client;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.xjs.aop.ApiLog;
|
import com.xjs.common.aop.ApiLog;
|
||||||
import com.xjs.client.factory.TianXingJDTCFeignFactory;
|
import com.xjs.common.client.factory.TianXingJDTCFeignFactory;
|
||||||
import com.xjs.copywriting.domain.RequestBody;
|
import com.xjs.copywriting.domain.RequestBody;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.cloud.openfeign.SpringQueryMap;
|
import org.springframework.cloud.openfeign.SpringQueryMap;
|
@ -1,8 +1,8 @@
|
|||||||
package com.xjs.client;
|
package com.xjs.common.client;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.xjs.aop.ApiLog;
|
import com.xjs.common.aop.ApiLog;
|
||||||
import com.xjs.client.factory.TianXingMMMYFeignFactory;
|
import com.xjs.common.client.factory.TianXingMMMYFeignFactory;
|
||||||
import com.xjs.copywriting.domain.RequestBody;
|
import com.xjs.copywriting.domain.RequestBody;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.cloud.openfeign.SpringQueryMap;
|
import org.springframework.cloud.openfeign.SpringQueryMap;
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.xjs.common.client;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.xjs.common.aop.ApiLog;
|
||||||
|
import com.xjs.common.client.factory.TianXingOneEnglishFeignFactory;
|
||||||
|
import com.xjs.oneenglish.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.consts.ApiConst.TIANXING_ONE_ENGLISH;
|
||||||
|
import static com.xjs.consts.ApiConst.TIANXING_ONE_ENGLISH_URL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xiejs
|
||||||
|
* @desc 天行英语一言第三方api调用
|
||||||
|
* @create 2021-12-31
|
||||||
|
*/
|
||||||
|
@FeignClient(name = "tianXingOneEnglish",url = TIANXING_ONE_ENGLISH_URL,fallbackFactory = TianXingOneEnglishFeignFactory.class)
|
||||||
|
public interface TianXingOneEnglishFeignClient {
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
@ApiLog(name = TIANXING_ONE_ENGLISH,
|
||||||
|
url = TIANXING_ONE_ENGLISH_URL,
|
||||||
|
method = "Get")
|
||||||
|
JSONObject oneEnglishApi(@SpringQueryMap RequestBody requestBody);
|
||||||
|
}
|
@ -1,8 +1,8 @@
|
|||||||
package com.xjs.client;
|
package com.xjs.common.client;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.xjs.aop.ApiLog;
|
import com.xjs.common.aop.ApiLog;
|
||||||
import com.xjs.client.factory.TianXingPYQFeignFactory;
|
import com.xjs.common.client.factory.TianXingPYQFeignFactory;
|
||||||
import com.xjs.copywriting.domain.RequestBody;
|
import com.xjs.copywriting.domain.RequestBody;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.cloud.openfeign.SpringQueryMap;
|
import org.springframework.cloud.openfeign.SpringQueryMap;
|
@ -1,8 +1,8 @@
|
|||||||
package com.xjs.client;
|
package com.xjs.common.client;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.xjs.aop.ApiLog;
|
import com.xjs.common.aop.ApiLog;
|
||||||
import com.xjs.client.factory.TianXingTranDictFeignFactory;
|
import com.xjs.common.client.factory.TianXingTranDictFeignFactory;
|
||||||
import com.xjs.copywriting.domain.RequestBody;
|
import com.xjs.copywriting.domain.RequestBody;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.cloud.openfeign.SpringQueryMap;
|
import org.springframework.cloud.openfeign.SpringQueryMap;
|
@ -1,8 +1,8 @@
|
|||||||
package com.xjs.client;
|
package com.xjs.common.client;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.xjs.aop.ApiLog;
|
import com.xjs.common.aop.ApiLog;
|
||||||
import com.xjs.client.factory.TianXingWYYFeignFactory;
|
import com.xjs.common.client.factory.TianXingWYYFeignFactory;
|
||||||
import com.xjs.copywriting.domain.RequestBody;
|
import com.xjs.copywriting.domain.RequestBody;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.cloud.openfeign.SpringQueryMap;
|
import org.springframework.cloud.openfeign.SpringQueryMap;
|
@ -1,8 +1,8 @@
|
|||||||
package com.xjs.client;
|
package com.xjs.common.client;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.xjs.aop.ApiLog;
|
import com.xjs.common.aop.ApiLog;
|
||||||
import com.xjs.client.factory.YouDaoFeignFactory;
|
import com.xjs.common.client.factory.YouDaoFeignFactory;
|
||||||
import com.xjs.translation.domain.qo.translation.YouDaoTranslationQo;
|
import com.xjs.translation.domain.qo.translation.YouDaoTranslationQo;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.cloud.openfeign.SpringQueryMap;
|
import org.springframework.cloud.openfeign.SpringQueryMap;
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.xjs.common.client.factory;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import com.xjs.common.client.TianXingOneEnglishFeignClient;
|
||||||
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xiejs
|
||||||
|
* @desc
|
||||||
|
* @create 2021-12-31
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Log4j2
|
||||||
|
public class TianXingOneEnglishFeignFactory implements FallbackFactory<TianXingOneEnglishFeignClient> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TianXingOneEnglishFeignClient create(Throwable cause) {
|
||||||
|
log.error("api模块英语一言服务调用失败:{},执行降级处理", cause.getMessage());
|
||||||
|
return requestBody -> {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("error", R.FAIL);
|
||||||
|
return jsonObject;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,8 @@
|
|||||||
package com.xjs.client.factory;
|
package com.xjs.common.client.factory;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.R;
|
||||||
import com.xjs.client.TianXingTranDictClient;
|
import com.xjs.common.client.TianXingTranDictClient;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import org.springframework.cloud.openfeign.FallbackFactory;
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
@ -1,8 +1,8 @@
|
|||||||
package com.xjs.client.factory;
|
package com.xjs.common.client.factory;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.R;
|
||||||
import com.xjs.client.YouDaoFeignClient;
|
import com.xjs.common.client.YouDaoFeignClient;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import org.springframework.cloud.openfeign.FallbackFactory;
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
@ -1,19 +1,52 @@
|
|||||||
package com.xjs.oneenglish.factory;
|
package com.xjs.oneenglish.factory;
|
||||||
|
|
||||||
|
import cn.hutool.http.HttpStatus;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.xjs.common.client.TianXingOneEnglishFeignClient;
|
||||||
|
import com.xjs.config.TianXingProperties;
|
||||||
|
import com.xjs.exception.ApiException;
|
||||||
import com.xjs.oneenglish.domain.ApiEnglish;
|
import com.xjs.oneenglish.domain.ApiEnglish;
|
||||||
import com.xjs.oneenglish.domain.RequestBody;
|
import com.xjs.oneenglish.domain.RequestBody;
|
||||||
|
import com.xjs.oneenglish.mapper.ApiEnglishMapper;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xiejs
|
* @author xiejs
|
||||||
* @desc 一言英语工厂实现
|
* @desc 一言英语工厂实现
|
||||||
* @create 2021-12-31
|
* @create 2021-12-31
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class TianXingOneEnglishFactory implements OneEnglishFactory{
|
public class TianXingOneEnglishFactory implements OneEnglishFactory {
|
||||||
|
@Resource
|
||||||
|
private ApiEnglishMapper apiEnglishMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TianXingProperties tianXingProperties;
|
||||||
|
@Autowired
|
||||||
|
private TianXingOneEnglishFeignClient tianXingOneEnglishFeignClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiEnglish getOneEnglish(RequestBody requestBody) {
|
public ApiEnglish getOneEnglish(RequestBody requestBody) {
|
||||||
return null;
|
requestBody.setKey(tianXingProperties.getKey());
|
||||||
|
JSONObject jsonObject = tianXingOneEnglishFeignClient.oneEnglishApi(requestBody);
|
||||||
|
ApiEnglish apiEnglish = new ApiEnglish();
|
||||||
|
if (!jsonObject.containsKey("error")) {
|
||||||
|
if (jsonObject.getInteger("code") == HttpStatus.HTTP_OK) {
|
||||||
|
JSONArray newslist = jsonObject.getJSONArray("newslist");
|
||||||
|
JSONObject content = newslist.getJSONObject(0);
|
||||||
|
apiEnglish.setEn(content.getString("en"));
|
||||||
|
apiEnglish.setZh(content.getString("zh"));
|
||||||
|
apiEnglishMapper.insert(apiEnglish);
|
||||||
|
}else {
|
||||||
|
throw new ApiException("英语一言接口调用成功,但内部错误");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new ApiException("英语一言接口降级!!!");
|
||||||
|
}
|
||||||
|
return apiEnglish;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
package com.xjs.oneenglish.factory;
|
||||||
|
|
||||||
|
import com.xjs.XjsOpenApiApp;
|
||||||
|
import com.xjs.config.TianXingProperties;
|
||||||
|
import com.xjs.oneenglish.domain.ApiEnglish;
|
||||||
|
import com.xjs.oneenglish.domain.RequestBody;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xiejs
|
||||||
|
* @desc
|
||||||
|
* @create 2021-12-31
|
||||||
|
*/
|
||||||
|
@SpringBootTest(classes = XjsOpenApiApp.class)
|
||||||
|
class TianXingOneEnglishFactoryTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
TianXingOneEnglishFactory tianXingOneEnglishFactory;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
TianXingProperties tianXingProperties;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void getOneEnglish() {
|
||||||
|
RequestBody requestBody = new RequestBody();
|
||||||
|
requestBody.setKey(tianXingProperties.getKey());
|
||||||
|
ApiEnglish oneEnglish = tianXingOneEnglishFactory.getOneEnglish(requestBody);
|
||||||
|
System.out.println(oneEnglish);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue