|
@@ -53,280 +53,285 @@ import java.util.concurrent.Executors;
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
public class MaterialUploadTaskServiceImpl
|
|
|
- extends ServiceImpl<MaterialUploadTaskMapper, MaterialUploadTask>
|
|
|
- implements IMaterialUploadTaskService {
|
|
|
- @Autowired private MaterialUploadTaskMapper materialUploadTaskMapper;
|
|
|
- private static String downloadUrl = "/data/file/video/";
|
|
|
- // private static String downloadUrl = "D:\\file";
|
|
|
- private static ExecutorService kuaishouExecutorService = Executors.newFixedThreadPool(6);
|
|
|
- private static ExecutorService bytedanceExecutorService = Executors.newFixedThreadPool(8);
|
|
|
- private static ExecutorService submitExecutorService = Executors.newFixedThreadPool(5);
|
|
|
+ extends ServiceImpl<MaterialUploadTaskMapper, MaterialUploadTask>
|
|
|
+ implements IMaterialUploadTaskService {
|
|
|
+ @Autowired
|
|
|
+ private MaterialUploadTaskMapper materialUploadTaskMapper;
|
|
|
+ private static String downloadUrl = "/data/file/video/";
|
|
|
+ // private static String downloadUrl = "D:\\file";
|
|
|
+ private static ExecutorService kuaishouExecutorService = Executors.newFixedThreadPool(6);
|
|
|
+ private static ExecutorService bytedanceExecutorService = Executors.newFixedThreadPool(8);
|
|
|
+ private static ExecutorService submitExecutorService = Executors.newFixedThreadPool(5);
|
|
|
|
|
|
- @Override
|
|
|
- public void upload(String signature) {
|
|
|
- submitExecutorService.submit(
|
|
|
- new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- TaskVo taskVo = getTaskList(signature);
|
|
|
- if (Check.isNull(taskVo)) {
|
|
|
- log.info("此素材md5未获取到待上传的任务列表,signature:{}", signature);
|
|
|
- return;
|
|
|
- }
|
|
|
- List<MaterialUploadTask> taskList = taskVo.getTaskList();
|
|
|
- if (Check.isNull(taskList)) {
|
|
|
- log.info("此素材md5未获取到待上传的任务列表,signature:{}", signature);
|
|
|
- return;
|
|
|
- }
|
|
|
- MaterialUploadTask materialUploadTask = taskList.get(0);
|
|
|
- String materialUrl = materialUploadTask.getMaterialUrl();
|
|
|
- String localUrl = LoadFileUtil.downLoadFromUrl(materialUrl, downloadUrl);
|
|
|
- File file = new File(localUrl);
|
|
|
- FileSystemResource resource = null;
|
|
|
- Integer materialType = null;
|
|
|
- if (!Check.isNull(taskVo.getKuaiShou())) {
|
|
|
- resource = new FileSystemResource(file);
|
|
|
- JSONObject sizeJson = materialUploadTaskMapper.getVideoSize(signature);
|
|
|
- if (!Check.isNull(sizeJson)) {
|
|
|
- Integer width = sizeJson.getInteger("width");
|
|
|
- Integer height = sizeJson.getInteger("height");
|
|
|
- Integer type = MaterialEnum.getTypeBySize(width, height);
|
|
|
- if (!Check.isNull(type) && type != 0) {
|
|
|
- materialType = type;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- FileBody fileBody = null;
|
|
|
- if (!Check.isNull(taskVo.getBytedance())) {
|
|
|
- fileBody = new FileBody(file);
|
|
|
- }
|
|
|
- for (MaterialUploadTask task : taskList) {
|
|
|
- if (task.getMediaId() == 2 || task.getMediaId() == 4) {
|
|
|
- uploadKuaiShou(task, resource, materialType);
|
|
|
- } else if (task.getMediaId() == 1 || task.getMediaId() == 3) {
|
|
|
- uploadBytedance(fileBody, task);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void upload(String signature) {
|
|
|
+ submitExecutorService.submit(
|
|
|
+ new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ TaskVo taskVo = getTaskList(signature);
|
|
|
+ if (Check.isNull(taskVo)) {
|
|
|
+ log.info("此素材md5未获取到待上传的任务列表,signature:{}", signature);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<MaterialUploadTask> taskList = taskVo.getTaskList();
|
|
|
+ if (Check.isNull(taskList)) {
|
|
|
+ log.info("此素材md5未获取到待上传的任务列表,signature:{}", signature);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ MaterialUploadTask materialUploadTask = taskList.get(0);
|
|
|
+ String materialUrl = materialUploadTask.getMaterialUrl();
|
|
|
+ String localUrl = LoadFileUtil.downLoadFromUrl(materialUrl, downloadUrl);
|
|
|
+ File file = new File(localUrl);
|
|
|
+ FileSystemResource resource = null;
|
|
|
+ Integer materialType = null;
|
|
|
+ if (!Check.isNull(taskVo.getKuaiShou())) {
|
|
|
+ resource = new FileSystemResource(file);
|
|
|
+ JSONObject sizeJson = materialUploadTaskMapper.getVideoSize(signature);
|
|
|
+ if (!Check.isNull(sizeJson)) {
|
|
|
+ Integer width = sizeJson.getInteger("width");
|
|
|
+ Integer height = sizeJson.getInteger("height");
|
|
|
+ Integer type = MaterialEnum.getTypeBySize(width, height);
|
|
|
+ if (!Check.isNull(type) && type != 0) {
|
|
|
+ materialType = type;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ FileBody fileBody = null;
|
|
|
+ if (!Check.isNull(taskVo.getBytedance())) {
|
|
|
+ fileBody = new FileBody(file);
|
|
|
+ }
|
|
|
+ for (MaterialUploadTask task : taskList) {
|
|
|
+ if (task.getMediaId() == 2 || task.getMediaId() == 4) {
|
|
|
+ uploadKuaiShou(task, resource, materialType);
|
|
|
+ } else if (task.getMediaId() == 1 || task.getMediaId() == 3) {
|
|
|
+ uploadBytedance(fileBody, task);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
- private void uploadKuaiShou(MaterialUploadTask task, FileSystemResource resource, Integer type) {
|
|
|
- kuaishouExecutorService.submit(
|
|
|
- new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- try {
|
|
|
- Long accountId = task.getAccountId();
|
|
|
- if (Check.isNull(accountId)) {
|
|
|
- log.error("账户不能为空。");
|
|
|
- return;
|
|
|
- }
|
|
|
- String token = materialUploadTaskMapper.getKuaiShouTokenByAccountId(accountId);
|
|
|
- if (Check.isNull(token)) {
|
|
|
- log.error("此账户id未获取到token,accountId:{}", accountId);
|
|
|
- return;
|
|
|
- }
|
|
|
- Map<String, String> headerMap = new HashMap<>();
|
|
|
- headerMap.put("Content-Type", "multipart/form-data");
|
|
|
- headerMap.put("Access-Token", token);
|
|
|
- JSONObject requestJson = new JSONObject();
|
|
|
- requestJson.put("file", resource);
|
|
|
- requestJson.put("signature", task.getSignature());
|
|
|
- if (!Check.isNull(task.getShieldBackwardSwitch())) {
|
|
|
- if (task.getShieldBackwardSwitch() == 1) {
|
|
|
- requestJson.put("shield_backward_switch", true);
|
|
|
- } else {
|
|
|
- requestJson.put("shield_backward_switch", false);
|
|
|
- }
|
|
|
- }
|
|
|
- if (!Check.isNull(type)) {
|
|
|
- requestJson.put("type", type);
|
|
|
- }
|
|
|
- requestJson.put("photo_name", task.getMaterialName());
|
|
|
- requestJson.put("advertiser_id", accountId);
|
|
|
- String url = HttpConstant.VIDEO_UPLOAD;
|
|
|
- String result = exceptInfoForRestTemplate(url, requestJson, headerMap);
|
|
|
- JSONObject resultJson = JSONObject.parseObject(result);
|
|
|
- if (!Check.isNull(resultJson)) {
|
|
|
- Integer code = resultJson.getInteger("code");
|
|
|
- if (code == 0) {
|
|
|
- materialUploadTaskMapper.syncKuaishou(task.getSignature());
|
|
|
- materialUploadTaskMapper.updateStatusById(task.getId(), 3, "同步成功", new Date());
|
|
|
- log.info(
|
|
|
- "快手素材同步完成,accountId:{},code:{},返回信息:{}",
|
|
|
- accountId,
|
|
|
- task.getSignature(),
|
|
|
- resultJson);
|
|
|
- } else {
|
|
|
- String message = resultJson.getString("message");
|
|
|
- if (code == 400001 && message.equals("文件操作过于频繁")) {
|
|
|
- materialUploadTaskMapper.updateStatusById(task.getId(), 0, "文件操作频繁-待重试", new Date());
|
|
|
- } else if (code == 500000 && message.equals("系统错误")) {
|
|
|
- materialUploadTaskMapper.updateStatusById(task.getId(), 0, "系统错误-待重试", new Date());
|
|
|
- } else if (code == 500000 && message.contains("限流")) {
|
|
|
- materialUploadTaskMapper.updateStatusById(task.getId(), 0, "触发限流-待重试", new Date());
|
|
|
- } else if (code == 400001 && message.contains("频繁")) {
|
|
|
- materialUploadTaskMapper.updateStatusById(task.getId(), 0, "接口请求频繁-待重试", new Date());
|
|
|
- } else {
|
|
|
- materialUploadTaskMapper.updateStatusById(task.getId(), 4, message, new Date());
|
|
|
- }
|
|
|
- log.error("快手同步素材失败,返回信息:{},请求参数:{}", resultJson, requestJson);
|
|
|
- }
|
|
|
- } else {
|
|
|
- materialUploadTaskMapper.updateStatusById(
|
|
|
- task.getId(), 0, "返回结果为空-待重试", new Date());
|
|
|
- }
|
|
|
- Thread.sleep(1000L);
|
|
|
- } catch (Exception e) {
|
|
|
- materialUploadTaskMapper.updateStatusById(task.getId(), 0, "接口异常-待重试", new Date());
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
+ private void uploadKuaiShou(MaterialUploadTask task, FileSystemResource resource, Integer type) {
|
|
|
+ kuaishouExecutorService.submit(
|
|
|
+ new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ try {
|
|
|
+ Long accountId = task.getAccountId();
|
|
|
+ if (Check.isNull(accountId)) {
|
|
|
+ log.error("账户不能为空。");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String token = materialUploadTaskMapper.getKuaiShouTokenByAccountId(accountId);
|
|
|
+ if (Check.isNull(token)) {
|
|
|
+ log.error("此账户id未获取到token,accountId:{}", accountId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Map<String, String> headerMap = new HashMap<>();
|
|
|
+ headerMap.put("Content-Type", "multipart/form-data");
|
|
|
+ headerMap.put("Access-Token", token);
|
|
|
+ JSONObject requestJson = new JSONObject();
|
|
|
+ requestJson.put("file", resource);
|
|
|
+ requestJson.put("signature", task.getSignature());
|
|
|
+ if (!Check.isNull(task.getShieldBackwardSwitch())) {
|
|
|
+ if (task.getShieldBackwardSwitch() == 1) {
|
|
|
+ requestJson.put("shield_backward_switch", true);
|
|
|
+ } else {
|
|
|
+ requestJson.put("shield_backward_switch", false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!Check.isNull(type)) {
|
|
|
+ requestJson.put("type", type);
|
|
|
+ }
|
|
|
+ requestJson.put("photo_name", task.getMaterialName());
|
|
|
+ requestJson.put("advertiser_id", accountId);
|
|
|
+ String url = HttpConstant.VIDEO_UPLOAD;
|
|
|
+ String result = exceptInfoForRestTemplate(url, requestJson, headerMap);
|
|
|
+ JSONObject resultJson = JSONObject.parseObject(result);
|
|
|
+ if (!Check.isNull(resultJson)) {
|
|
|
+ Integer code = resultJson.getInteger("code");
|
|
|
+ if (code == 0) {
|
|
|
+ materialUploadTaskMapper.syncKuaishou(task.getSignature());
|
|
|
+ materialUploadTaskMapper.updateStatusById(task.getId(), 3, "同步成功", new Date());
|
|
|
+ log.info(
|
|
|
+ "快手素材同步完成,accountId:{},code:{},返回信息:{}",
|
|
|
+ accountId,
|
|
|
+ task.getSignature(),
|
|
|
+ resultJson);
|
|
|
+ } else {
|
|
|
+ String message = resultJson.getString("message");
|
|
|
+ if (code == 400001 && message.equals("文件操作过于频繁")) {
|
|
|
+ materialUploadTaskMapper.updateStatusById(task.getId(), 0, "文件操作频繁-待重试", new Date());
|
|
|
+ } else if (code == 500000 && message.equals("系统错误")) {
|
|
|
+ materialUploadTaskMapper.updateStatusById(task.getId(), 0, "系统错误-待重试", new Date());
|
|
|
+ } else if (code == 500000 && message.contains("限流")) {
|
|
|
+ materialUploadTaskMapper.updateStatusById(task.getId(), 0, "触发限流-待重试", new Date());
|
|
|
+ } else if (code == 400001 && message.contains("频繁")) {
|
|
|
+ materialUploadTaskMapper.updateStatusById(task.getId(), 0, "接口请求频繁-待重试", new Date());
|
|
|
+ } else {
|
|
|
+ materialUploadTaskMapper.updateStatusById(task.getId(), 4, message, new Date());
|
|
|
+ }
|
|
|
+ log.error("快手同步素材失败,返回信息:{},请求参数:{}", resultJson, requestJson);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ materialUploadTaskMapper.updateStatusById(
|
|
|
+ task.getId(), 0, "返回结果为空-待重试", new Date());
|
|
|
+ }
|
|
|
+ Thread.sleep(500L);
|
|
|
+ } catch (Exception e) {
|
|
|
+ materialUploadTaskMapper.updateStatusById(task.getId(), 0, "接口异常-待重试", new Date());
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void uploadBytedance(FileBody fileBody, MaterialUploadTask task) {
|
|
|
+ bytedanceExecutorService.submit(
|
|
|
+ new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ Long accountId = task.getAccountId();
|
|
|
+ if (Check.isNull(accountId)) {
|
|
|
+ log.error("账户不能为空");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String token = materialUploadTaskMapper.getTokenByAccountId(accountId);
|
|
|
+ if (Check.isNull(token)) {
|
|
|
+ log.error("此账户id未获取到token,accountId:{}", accountId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ long l = System.currentTimeMillis();
|
|
|
+ String url = HttpConstant.BYTEDANCE_VIDEO_UPLOAD;
|
|
|
+ CloseableHttpResponse response = null;
|
|
|
+ CloseableHttpClient client = null;
|
|
|
+ // 构造请求
|
|
|
+ HttpPost httpPost = new HttpPost(url);
|
|
|
+ httpPost.setHeader("Access-Token", token);
|
|
|
+ // 文件参数
|
|
|
+ try {
|
|
|
+ MultipartEntityBuilder entityBuilder =
|
|
|
+ MultipartEntityBuilder.create().addPart("video_file", fileBody);
|
|
|
+ // 其他参数
|
|
|
+ entityBuilder.addTextBody("advertiser_id", String.valueOf(task.getAccountId()));
|
|
|
+ entityBuilder.addTextBody("video_signature", task.getSignature());
|
|
|
+ entityBuilder.addTextBody(
|
|
|
+ "filename",
|
|
|
+ task.getMaterialName(),
|
|
|
+ ContentType.create("text/plain", Charset.forName("UTF-8")));
|
|
|
+ org.apache.http.HttpEntity entity = entityBuilder.build();
|
|
|
+ client = HttpClientBuilder.create().build();
|
|
|
+ httpPost.setURI(URI.create(url));
|
|
|
+ httpPost.setEntity(entity);
|
|
|
+ response = client.execute(httpPost);
|
|
|
+ if (response != null && response.getStatusLine().getStatusCode() == 200) {
|
|
|
+ BufferedReader bufferedReader =
|
|
|
+ new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
|
|
|
+ StringBuilder result = new StringBuilder();
|
|
|
+ String line = "";
|
|
|
+ while ((line = bufferedReader.readLine()) != null) {
|
|
|
+ result.append(line);
|
|
|
+ }
|
|
|
+ bufferedReader.close();
|
|
|
+ log.info(
|
|
|
+ "头条上传素材时间:{} s ,账户:{}。code:{}",
|
|
|
+ (System.currentTimeMillis() - l) / 1000, accountId, task.getSignature());
|
|
|
+ JSONObject resultJson = JSONObject.parseObject(result.toString());
|
|
|
+ if (!Check.isNull(resultJson)) {
|
|
|
+ if (resultJson.getInteger("code") == 0) {
|
|
|
+ materialUploadTaskMapper.updateStatusById(task.getId(), 3, "同步成功", new Date());
|
|
|
+ materialUploadTaskMapper.syncBytedance(task.getSignature());
|
|
|
+ log.info(
|
|
|
+ "头条素材同步完成,accountId:{},code:{},返回信息:{}",
|
|
|
+ accountId,
|
|
|
+ task.getSignature(),
|
|
|
+ resultJson);
|
|
|
+ } else {
|
|
|
+ String message = resultJson.getString("message");
|
|
|
+ materialUploadTaskMapper.updateStatusById(task.getId(), 4, message, new Date());
|
|
|
+ log.error("头条同步步素材失败,返回信息:{}", resultJson);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ materialUploadTaskMapper.updateStatusById(
|
|
|
+ task.getId(), 0, "返回结果为空,待重试", new Date());
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(e.getMessage(), e);
|
|
|
+ materialUploadTaskMapper.updateStatusById(task.getId(), 0, "接口异常,待重试", new Date());
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ if (response != null) {
|
|
|
+ response.close();
|
|
|
+ }
|
|
|
+ if (null != client) {
|
|
|
+ client.close();
|
|
|
+ }
|
|
|
+ } catch (IOException e) {
|
|
|
+ log.error(e.getMessage(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
- private void uploadBytedance(FileBody fileBody, MaterialUploadTask task) {
|
|
|
- bytedanceExecutorService.submit(
|
|
|
- new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- Long accountId = task.getAccountId();
|
|
|
- if (Check.isNull(accountId)) {
|
|
|
- log.error("账户不能为空");
|
|
|
- return;
|
|
|
+ private TaskVo getTaskList(String signature) {
|
|
|
+ TaskVo taskVo = new TaskVo();
|
|
|
+ QueryWrapper<MaterialUploadTask> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("signature", signature);
|
|
|
+ queryWrapper.eq("task_status", 1);
|
|
|
+ List<MaterialUploadTask> materialUploadTasks =
|
|
|
+ materialUploadTaskMapper.selectList(queryWrapper);
|
|
|
+ if (Check.isNull(materialUploadTasks)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ taskVo.setTaskList(materialUploadTasks);
|
|
|
+ List<Integer> mediaList = materialUploadTaskMapper.getMediaList(signature);
|
|
|
+ for (int i = 0; i < mediaList.size(); i++) {
|
|
|
+ Integer mediaId = mediaList.get(i);
|
|
|
+ if (mediaId == 2 || mediaId == 4) {
|
|
|
+ taskVo.setKuaiShou(1);
|
|
|
}
|
|
|
- String token = materialUploadTaskMapper.getTokenByAccountId(accountId);
|
|
|
- if (Check.isNull(token)) {
|
|
|
- log.error("此账户id未获取到token,accountId:{}", accountId);
|
|
|
- return;
|
|
|
+ if (mediaId == 1 || mediaId == 3) {
|
|
|
+ taskVo.setBytedance(1);
|
|
|
}
|
|
|
- String url = HttpConstant.BYTEDANCE_VIDEO_UPLOAD;
|
|
|
- CloseableHttpResponse response = null;
|
|
|
- CloseableHttpClient client = null;
|
|
|
- // 构造请求
|
|
|
- HttpPost httpPost = new HttpPost(url);
|
|
|
- httpPost.setHeader("Access-Token", token);
|
|
|
- // 文件参数
|
|
|
- try {
|
|
|
- MultipartEntityBuilder entityBuilder =
|
|
|
- MultipartEntityBuilder.create().addPart("video_file", fileBody);
|
|
|
- // 其他参数
|
|
|
- entityBuilder.addTextBody("advertiser_id", String.valueOf(task.getAccountId()));
|
|
|
- entityBuilder.addTextBody("video_signature", task.getSignature());
|
|
|
- entityBuilder.addTextBody(
|
|
|
- "filename",
|
|
|
- task.getMaterialName(),
|
|
|
- ContentType.create("text/plain", Charset.forName("UTF-8")));
|
|
|
- org.apache.http.HttpEntity entity = entityBuilder.build();
|
|
|
- client = HttpClientBuilder.create().build();
|
|
|
- httpPost.setURI(URI.create(url));
|
|
|
- httpPost.setEntity(entity);
|
|
|
- response = client.execute(httpPost);
|
|
|
- if (response != null && response.getStatusLine().getStatusCode() == 200) {
|
|
|
- BufferedReader bufferedReader =
|
|
|
- new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
|
|
|
- StringBuilder result = new StringBuilder();
|
|
|
- String line = "";
|
|
|
- while ((line = bufferedReader.readLine()) != null) {
|
|
|
- result.append(line);
|
|
|
- }
|
|
|
- bufferedReader.close();
|
|
|
- JSONObject resultJson = JSONObject.parseObject(result.toString());
|
|
|
- if (!Check.isNull(resultJson)) {
|
|
|
- if (resultJson.getInteger("code") == 0) {
|
|
|
- materialUploadTaskMapper.updateStatusById(task.getId(), 3, "同步成功", new Date());
|
|
|
- materialUploadTaskMapper.syncBytedance(task.getSignature());
|
|
|
- log.info(
|
|
|
- "头条素材同步完成,accountId:{},code:{},返回信息:{}",
|
|
|
- accountId,
|
|
|
- task.getSignature(),
|
|
|
- resultJson);
|
|
|
- } else {
|
|
|
- String message = resultJson.getString("message");
|
|
|
- materialUploadTaskMapper.updateStatusById(task.getId(), 4, message, new Date());
|
|
|
- log.error("头条同步步素材失败,返回信息:{}", resultJson);
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- materialUploadTaskMapper.updateStatusById(
|
|
|
- task.getId(), 0, "返回结果为空,待重试", new Date());
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.error(e.getMessage(), e);
|
|
|
- materialUploadTaskMapper.updateStatusById(task.getId(), 0, "接口异常,待重试", new Date());
|
|
|
- } finally {
|
|
|
- try {
|
|
|
- if (response != null) {
|
|
|
- response.close();
|
|
|
+ }
|
|
|
+ return taskVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String exceptInfoForRestTemplate(
|
|
|
+ String url, Map<String, Object> paramMap, Map<String, String> headerMap) {
|
|
|
+ try {
|
|
|
+ long l = System.currentTimeMillis();
|
|
|
+ MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
|
|
|
+ if (!Check.isNullMap(paramMap)) {
|
|
|
+ for (String key : paramMap.keySet()) {
|
|
|
+ param.add(key, paramMap.get(key));
|
|
|
}
|
|
|
- if (null != client) {
|
|
|
- client.close();
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ if (!Check.isNullMap(headerMap)) {
|
|
|
+ for (String key : headerMap.keySet()) {
|
|
|
+ headers.add(key, headerMap.get(key));
|
|
|
+ }
|
|
|
}
|
|
|
- } catch (IOException e) {
|
|
|
- log.error(e.getMessage(), e);
|
|
|
- }
|
|
|
+ SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
|
|
|
+ requestFactory.setConnectTimeout(1000 * 500); // 设置超时
|
|
|
+ requestFactory.setReadTimeout(1000 * 500);
|
|
|
+ RestTemplate rest = new RestTemplate(requestFactory);
|
|
|
+ HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(param, headers);
|
|
|
+ ResponseEntity<String> responseEntity =
|
|
|
+ rest.exchange(url, HttpMethod.POST, httpEntity, String.class);
|
|
|
+ log.info(
|
|
|
+ "快手上传素材时间:{} s ,账户:{}。code:{}",
|
|
|
+ (System.currentTimeMillis() - l) / 1000,
|
|
|
+ paramMap.get("advertiser_id"),
|
|
|
+ paramMap.get("signature"));
|
|
|
+ return responseEntity.getBody();
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- private TaskVo getTaskList(String signature) {
|
|
|
- TaskVo taskVo = new TaskVo();
|
|
|
- QueryWrapper<MaterialUploadTask> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("signature", signature);
|
|
|
- queryWrapper.eq("task_status", 1);
|
|
|
- List<MaterialUploadTask> materialUploadTasks =
|
|
|
- materialUploadTaskMapper.selectList(queryWrapper);
|
|
|
- if (Check.isNull(materialUploadTasks)) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- taskVo.setTaskList(materialUploadTasks);
|
|
|
- List<Integer> mediaList = materialUploadTaskMapper.getMediaList(signature);
|
|
|
- for (int i = 0; i < mediaList.size(); i++) {
|
|
|
- Integer mediaId = mediaList.get(i);
|
|
|
- if (mediaId == 2 || mediaId == 4) {
|
|
|
- taskVo.setKuaiShou(1);
|
|
|
- }
|
|
|
- if (mediaId == 1 || mediaId == 3) {
|
|
|
- taskVo.setBytedance(1);
|
|
|
- }
|
|
|
- }
|
|
|
- return taskVo;
|
|
|
- }
|
|
|
-
|
|
|
- private String exceptInfoForRestTemplate(
|
|
|
- String url, Map<String, Object> paramMap, Map<String, String> headerMap) {
|
|
|
- try {
|
|
|
- long l = System.currentTimeMillis();
|
|
|
- MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
|
|
|
- if (!Check.isNullMap(paramMap)) {
|
|
|
- for (String key : paramMap.keySet()) {
|
|
|
- param.add(key, paramMap.get(key));
|
|
|
- }
|
|
|
- HttpHeaders headers = new HttpHeaders();
|
|
|
- if (!Check.isNullMap(headerMap)) {
|
|
|
- for (String key : headerMap.keySet()) {
|
|
|
- headers.add(key, headerMap.get(key));
|
|
|
- }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
- SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
|
|
|
- requestFactory.setConnectTimeout(1000 * 500); // 设置超时
|
|
|
- requestFactory.setReadTimeout(1000 * 500);
|
|
|
- RestTemplate rest = new RestTemplate(requestFactory);
|
|
|
- HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(param, headers);
|
|
|
- ResponseEntity<String> responseEntity =
|
|
|
- rest.exchange(url, HttpMethod.POST, httpEntity, String.class);
|
|
|
- log.info(
|
|
|
- "上传素材时间:{} s ,账户:{}。code:{}",
|
|
|
- (System.currentTimeMillis() - l) / 1000,
|
|
|
- paramMap.get("advertiser_id"),
|
|
|
- paramMap.get("signature"));
|
|
|
- return responseEntity.getBody();
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
+ return null;
|
|
|
}
|
|
|
- return null;
|
|
|
- }
|
|
|
}
|