package jnpf.cultivate.fallback;

import jnpf.base.ActionResult;
import jnpf.cultivate.FtbCultivateStoreStatisticApi;
import jnpf.model.cultivate.dto.storestatistics.*;
import jnpf.model.cultivate.vo.position.*;
import jnpf.model.thousandsfaces.TodayWorkVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;

import java.util.List;

@Slf4j
@Component
public class FtbCultivateStoreStatisticApiFallback implements FallbackFactory<FtbCultivateStoreStatisticApi> {


    @Override
    public FtbCultivateStoreStatisticApi create(Throwable cause) {
        log.error("进入 FtbCultivateStoreStatisticApi 的 fallback，降级原因：", cause); // 打印降级原因

        return new FtbCultivateStoreStatisticApi() {

            @Override
            public ActionResult<FtbCultivateStoreCountVO> getCultivateCount(FtbCultivateStoreStatisticsReq req) {
                return null;
            }

            @Override
            public ActionResult<List<TodayWorkVo>> queryMyExamList(StoreStatisticsMyExamReq req) {
                return null;
            }

            @Override
            public ActionResult<List<TodayWorkVo>> queryWaitMyReadOver(StoreStatisticsWaitMyCheckExamReq req) {
                return null;
            }

            @Override
            public ActionResult<List<TodayWorkVo>> queryOfflineTrainList(StoreOfflineTrainReq req) {
                return null;
            }

            @Override
            public ActionResult<List<TodayWorkVo>> storeMyTaskList(StoreOfflineTrainReq req) {
                return null;
            }

            @Override
            public ActionResult<List<TodayWorkVo>> storeMyIdentityList(StoreIdentityReq req) {
                return null;
            }

            @Override
            public ActionResult<FtbCultivateWorkerCountVO> getWorkerCultivateCount(FtbCultivateStoreStatisticsReq req) {
                return null;
            }

            @Override
            public ActionResult<FtbPersonTrainingStatisticsVO> personTrainingStatistics(FtbCultivateStoreStatisticsReq req) {
                return null;
            }

            @Override
            public ActionResult<FtbStoreManagerTrainingStatisticsVO> storeManagerTrainingStatistics(FtbCultivateStoreStatisticsReq req) {
                return null;
            }

            @Override
            public ActionResult<FtbManagerTrainingStatisticsVO> managerTrainingStatistics(FtbCultivateStoreStatisticsReq req) {
                return null;
            }
        };
    }
}
