package com.yuchen.saas.torch.api.feign;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yuchen.saas.torch.api.dto.PageMyVisitorReqDTO;
import com.yuchen.saas.torch.api.entity.TorchVisitorInfo;
import com.yuchen.saas.torch.api.dto.PageTorchVisitorReqDTO;
import com.yuchen.saas.torch.api.entity.TorchVisitorOrg;
import com.yuchen.saas.torch.api.vo.*;
import feign.hystrix.FallbackFactory;
import org.nest.springwrap.core.mp.support.Query;
import org.nest.springwrap.core.tool.api.R;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @description: 订单管理接口熔断
 * @author mqs
 * @date 2023/5/18 15:22
 * @version 1.0
 */
@Component
public class TorchVisitorFeignServiceFallback implements FallbackFactory<TorchVisitorFeignService> {

    @Override
    public TorchVisitorFeignService create(Throwable cause) {

        return new TorchVisitorFeignService() {

            @Override
            public R saveOrUpdate(TorchVisitorInfoVO torchVisitorInfoVO){
                return R.error("进入熔断");
            }

            @Override
            public R detail(String id) {
                return R.error("进入熔断");
            }

            @Override
            public R<IPage<TorchVisitorInfo>> page(PageTorchVisitorReqDTO pageTorchVisitorReqDTO, Query query) {
                return R.error("进入熔断");
            }

            @Override
            public R<TorchTodayVisitorCountVO> toDayCountNum() {
                return R.error("进入熔断");
            }

            @Override
            public void exportVisitor(PageTorchVisitorReqDTO reqDTO, HttpServletResponse response) {
            }

            @Override
            public R<List<TorchInterTop>> topInterByMonth(PageTorchVisitorReqDTO reqDTO) {
                return R.error("进入熔断");
            }

            @Override
            public R<TorchCountMonthVO> getMonthCount(PageTorchVisitorReqDTO reqDTO) {
                return R.error("进入熔断");
            }

            @Override
            public R<TorchCountYearVO> getCountYear(PageTorchVisitorReqDTO reqDTO) {
                return R.error("进入熔断");
            }

            @Override
            public R<List<TorchVisitorInfoCrewVO>> getCountYear(PageMyVisitorReqDTO reqDTO) {
                return R.error("进入熔断");
            }

            @Override
            public R<TorchVisitorInfoVO> getVisitByQrCode(String qrCode) {
                return R.error("进入熔断");
            }

            @Override
            public R<TorchNoReadMsgVO> selectNoReadList() {
                return R.error("进入熔断");
            }

            @Override
            public R updateReadStateByIds(String ids) {
                return R.error("进入熔断");
            }

            @Override
            public R cancelVisitorById(String id) {
                return R.error("进入熔断");
            }

            @Override
            public R saveOrUpdate(TorchVisitorOrg visitorOrg) {
                return null;
            }

            @Override
            public R getDetail() {
                return null;
            }

        };
    }
}