1、实现roll平台搞笑段子api
This commit is contained in:
parent
73391b8b84
commit
247fe674cf
|
|
@ -78,6 +78,8 @@ public class ApiConst {
|
||||||
|
|
||||||
public static final String ALAPI_JOKE_ALL = "ALAPI-笑话大全";
|
public static final String ALAPI_JOKE_ALL = "ALAPI-笑话大全";
|
||||||
|
|
||||||
|
public static final String ROLL_JOKE = "ROLL-搞笑段子";
|
||||||
|
|
||||||
|
|
||||||
//-------------------url------------------------------
|
//-------------------url------------------------------
|
||||||
|
|
||||||
|
|
@ -192,6 +194,11 @@ public class ApiConst {
|
||||||
*/
|
*/
|
||||||
public static final String ALAPI_JOKE_ALL_URL = "http://v2.alapi.cn/api/joke/random";
|
public static final String ALAPI_JOKE_ALL_URL = "http://v2.alapi.cn/api/joke/random";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接口文档:https://www.mxnzp.com/doc/detail?id=5
|
||||||
|
*/
|
||||||
|
public static final String ROLL_JOKE_URL = "https://www.mxnzp.com/api/jokes/list/random";
|
||||||
|
|
||||||
|
|
||||||
//-----------------------api请求参数常量-----------------------------
|
//-----------------------api请求参数常量-----------------------------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ public class CopyWritingConst {
|
||||||
|
|
||||||
//每日一句
|
//每日一句
|
||||||
public static final Integer MRYJ= 5;
|
public static final Integer MRYJ= 5;
|
||||||
|
//搞笑段子
|
||||||
|
public static final Integer GXDZ= 11;
|
||||||
|
|
||||||
|
|
||||||
//--------------------零七平台参数-----------------------
|
//--------------------零七平台参数-----------------------
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.xjs.common.client.api.roll;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.xjs.annotation.ApiLog;
|
||||||
|
import com.xjs.common.client.factory.RollJokeFeignFactory;
|
||||||
|
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.consts.ApiConst.ROLL_JOKE;
|
||||||
|
import static com.xjs.consts.ApiConst.ROLL_JOKE_URL;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* roll平台 搞笑段子 api feign
|
||||||
|
* @author xiejs
|
||||||
|
* @since 2022-02-15
|
||||||
|
*/
|
||||||
|
@FeignClient(name = "rollJoke", url = ROLL_JOKE_URL, fallbackFactory = RollJokeFeignFactory.class)
|
||||||
|
public interface RollJokeFeignClient {
|
||||||
|
@GetMapping()
|
||||||
|
@ApiLog(name = ROLL_JOKE,
|
||||||
|
url = ROLL_JOKE_URL,
|
||||||
|
method = "Get")
|
||||||
|
JSONObject jokeApi(@SpringQueryMap RequestBody requestBody);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.xjs.common.client.factory;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import com.xjs.common.client.api.roll.RollJokeFeignClient;
|
||||||
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import static com.xjs.consts.ApiConst.DEMOTE_ERROR;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* roll平台搞笑段子降级
|
||||||
|
* @author xiejs
|
||||||
|
* @since 2022-02-15
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Log4j2
|
||||||
|
public class RollJokeFeignFactory implements FallbackFactory<RollJokeFeignClient> {
|
||||||
|
@Override
|
||||||
|
public RollJokeFeignClient create(Throwable cause) {
|
||||||
|
log.error("api模块roll 搞笑段子服务调用失败:{},执行降级处理", cause.getMessage());
|
||||||
|
return requestBody -> {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put(DEMOTE_ERROR, R.FAIL);
|
||||||
|
return jsonObject;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -59,6 +59,8 @@ public class CopyWritingController extends BaseController {
|
||||||
private CopyWritingFactory uomgEarthLoveCopyWritingFactory;
|
private CopyWritingFactory uomgEarthLoveCopyWritingFactory;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CopyWritingFactory alapiJokeAllCopyWritingFactory;
|
private CopyWritingFactory alapiJokeAllCopyWritingFactory;
|
||||||
|
@Autowired
|
||||||
|
private CopyWritingFactory rollJokeCopyWritingFactory;
|
||||||
|
|
||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
|
|
@ -113,6 +115,7 @@ public class CopyWritingController extends BaseController {
|
||||||
factories.add(lqPoisonChickenWritingFactory);
|
factories.add(lqPoisonChickenWritingFactory);
|
||||||
factories.add(lqAWordCopyWritingFactory);
|
factories.add(lqAWordCopyWritingFactory);
|
||||||
factories.add(alapiJokeAllCopyWritingFactory);
|
factories.add(alapiJokeAllCopyWritingFactory);
|
||||||
|
factories.add(rollJokeCopyWritingFactory);
|
||||||
//factories.add(uomgEarthLoveCopyWritingFactory);
|
//factories.add(uomgEarthLoveCopyWritingFactory);
|
||||||
//--------add----------------------------;-
|
//--------add----------------------------;-
|
||||||
//随机调用集合中的接口
|
//随机调用集合中的接口
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,63 @@
|
||||||
|
package com.xjs.copywriting.factory.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.xjs.common.client.api.roll.RollJokeFeignClient;
|
||||||
|
import com.xjs.consts.CopyWritingConst;
|
||||||
|
import com.xjs.copywriting.domain.CopyWriting;
|
||||||
|
import com.xjs.copywriting.domain.RequestBody;
|
||||||
|
import com.xjs.copywriting.factory.CopyWritingFactory;
|
||||||
|
import com.xjs.copywriting.service.CopyWritingService;
|
||||||
|
import com.xjs.exception.ApiException;
|
||||||
|
import com.xjs.properties.RollProperties;
|
||||||
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static com.xjs.consts.ApiConst.DEMOTE_ERROR;
|
||||||
|
import static com.xjs.consts.ApiConst.ROLL_CODE_SUCCESS;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* roll平台 搞笑段子 工厂实现
|
||||||
|
* @author xiejs
|
||||||
|
* @since 2022-02-15
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Log4j2
|
||||||
|
public class RollJokeCopyWritingFactory implements CopyWritingFactory {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CopyWritingService copyWritingService;
|
||||||
|
@Autowired
|
||||||
|
private RollProperties rollProperties;
|
||||||
|
@Autowired
|
||||||
|
private RollJokeFeignClient rollJokeFeignClient;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CopyWriting productCopyWriting(RequestBody requestBody) {
|
||||||
|
requestBody.setApp_id(rollProperties.getApp_id());
|
||||||
|
requestBody.setApp_secret(rollProperties.getApp_secret());
|
||||||
|
JSONObject jsonObject = rollJokeFeignClient.jokeApi(requestBody);
|
||||||
|
if (jsonObject.containsKey(DEMOTE_ERROR)) {
|
||||||
|
throw new ApiException("roll搞笑段子接口调用异常");
|
||||||
|
}
|
||||||
|
if (ROLL_CODE_SUCCESS.equals(jsonObject.getInteger("code"))) {
|
||||||
|
JSONArray jsonArrayData = jsonObject.getJSONArray("data");
|
||||||
|
List<CopyWriting> collect = jsonArrayData.stream().map(json -> {
|
||||||
|
CopyWriting copyWriting = new CopyWriting();
|
||||||
|
JSONObject toJSON = (JSONObject) JSONObject.toJSON(json);
|
||||||
|
copyWriting.setSource("搞笑段子");
|
||||||
|
copyWriting.setContent(toJSON.getString("content"));
|
||||||
|
copyWriting.setType(CopyWritingConst.GXDZ);
|
||||||
|
return copyWriting;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
log.info("搞笑段子批量插入成功了嘛---"+copyWritingService.saveBatch(collect));
|
||||||
|
return collect.get(0);
|
||||||
|
}else {
|
||||||
|
throw new ApiException("roll搞笑段子接口调用异常");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -58,7 +58,7 @@ public class RollMMYJCopyWritingFactory implements CopyWritingFactory {
|
||||||
}
|
}
|
||||||
return copyWriting;
|
return copyWriting;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
log.info("批量插入成功了嘛---"+copyWritingService.saveBatch(collect));
|
log.info("每日一句批量插入成功了嘛---"+copyWritingService.saveBatch(collect));
|
||||||
return collect.get(0);
|
return collect.get(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue