public void executeTask()

in lambda/src/main/java/cn/amazon/aws/rp/spapi/lambda/finances/ExecuteTaskForOneSeller.java [60:99]


    public void executeTask(SellerCredentials sellerCredentials) {
        try {
	        //get task
	        final String sellerTaskKey = sellerCredentials.getSeller_id() + "_" + TaskConstants.LIST_FINANCIAL_EVENTS;
	        List<SpApiTask> spApiTaskList = spApiTaskDao.getTask(sellerTaskKey);
	        if (spApiTaskList.isEmpty()) {
                SpApiTask task = new SpApiTask();
                task.setSellerKey(sellerTaskKey);
                task.setSellerId(sellerCredentials.getSeller_id());
                task.setStartTime("2020-08-01 00:00:00");
                task.setEndTime("2020-08-02 00:00:00");
                task.setTaskId(idWorker.nextId());
                task.setTaskName(TaskConstants.LIST_FINANCIAL_EVENTS);
                task.setExecuteStatus(StatusEnum.INIT.getStatus());
                spApiTaskDao.addTask(task);
                spApiTaskList.add(task);
	        }
	        SpApiTask apiTask = spApiTaskList.stream().findFirst().get();
	        logger.info("sellerId:{} queryTime:{}-{}", apiTask.getSellerId(), apiTask.getStartTime(), apiTask.getEndTime());
	        //check time
	        long diff = DateUtil.betweenTwoTime(DateUtil.toUtc(DateUtil.getLocalDateTime(apiTask.getEndTime())), DateUtil.toUtc(LocalDateTime.now()), ChronoUnit.HOURS);
	        if (diff < 1) {
		        return;
	        }
	        if (StatusEnum.WORKING.getStatus().intValue() == apiTask.getExecuteStatus().intValue()) {
		        return;
	        }

            sellerCredentials.getMarketplaces().forEach(marketplace -> {
		        requestFinancesForOneMkt(marketplace, sellerCredentials, apiTask);
	        });

            //update task
            spApiTaskDao.upTaskStatus(sellerTaskKey, sellerCredentials.getSeller_id(), StatusEnum.WORKING.getStatus());
	        //add task
	        spApiTaskDao.addNewTask(apiTask, DateType.DAYS.name(), 2L);
        } catch (Throwable throwable) {
            logger.error("Api call failed", throwable);
        }
    }