package cn.iocoder.yudao.module.rescue.controller.admin;

import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.rescue.service.IRescueCarInfoService;
import cn.iocoder.yudao.module.rescue.service.IRescueInfoService;
import cn.iocoder.yudao.module.rescue.service.IRescueOrderInfoService;
import cn.iocoder.yudao.module.rescue.service.IRescueRefuelRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 大屏数据统计
 */
@RestController
@RequestMapping("/rescue/bigScree")
public class RescueBigScreeController {
    @Autowired
    private IRescueOrderInfoService rescueOrderInfoService;
    @Autowired
    private IRescueRefuelRecordService rescueRefuelRecordService;
    @Autowired
    private IRescueInfoService rescueInfoService;
    @Autowired
    private IRescueCarInfoService rescueCarInfoService;

    /**
     * 救援大屏救援订单接口
     *
     * @param type     count 数量  money 金额
     * @param timeType day 日 month 月 year 年
     * @return
     */
    @GetMapping("/getRescueOrderCount")
    public CommonResult getRescueOrderCount(String type, String timeType) {
        return CommonResult.success(rescueOrderInfoService.getRescueOrderCount(type, timeType));
    }

    /**
     * 救援大屏日常费用统计接口
     * @param timeType day 日  week 周  month 月
     * @return
     */
    @GetMapping("/getRescueExpenseCount")
    public CommonResult getRescueExpenseCount(String timeType) {
        return CommonResult.success(rescueRefuelRecordService.getRescueExpenseCount(timeType));
    }

    /**
     * 救援大屏获取经营分析接口
     * @return
     */
    @GetMapping("/getManageAnalyze")
    public CommonResult getManageAnalyze(String timeType) {
        if (ObjectUtil.isEmpty(timeType)){
            timeType = "month";
        }
        return CommonResult.success(rescueInfoService.getManageAnalyze(timeType));
    }

    /**
     * 救援大屏获取出车次数统计接口
     * @param timeType day 日  month 月  year 年
     * @return
     */
    @GetMapping("/getDrawOutAVehicleCount")
    public CommonResult getDrawOutAVehicleCount(String timeType) {
        return CommonResult.success(rescueInfoService.getDrawOutAVehicleCount(timeType));
    }

    /**
     * 救援大屏获取司机排名接口
     * @param timeType recentMonth 近一月  recentYear 近一年 recentQuarter 近季度
     * @return
     */
    @GetMapping("/getDriverSort")
    public CommonResult getDriverSort(String timeType){
        return CommonResult.success(rescueInfoService.getDriverSort(timeType));
    }

    /**
     * 救援大屏获取车辆预警接口
     * @param type keep 保养  insurance 保险 check 年审
     * @return
     */
    @GetMapping("/getRescueCarEarlyWarning")
    public CommonResult getRescueCarEarlyWarning(String type){
        return CommonResult.success(rescueCarInfoService.getRescueCarEarlyWarning(type));
    }

    /**
     * 救援大屏获取救援订单占比接口
     * @return
     */
    @GetMapping("/getRescueOrderByRoad")
    public CommonResult getRescueOrderByRoad(){
        return CommonResult.success(rescueInfoService.getRescueOrderByRoad());
    }

    /**
     * 救援大屏获取救援详细数据接口
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return
     */
    @GetMapping("/getRescueStatistics")
    public CommonResult getRescueMessage(String startTime, String endTime){
        return CommonResult.success(rescueInfoService.getRescueMessage(startTime,endTime));
    }
}
