package com.base.track.controller.rpc;

import com.base.api.model.CxStationRpcDTO;
import com.base.api.model.TrbutDataRpcDTO;
import com.base.orbit.utils.BizUtils;
import com.base.track.model.dto.response.TrbutDataDTO;
import com.base.track.model.entity.CxStationVo;
import com.base.track.service.TrbutDataService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@RestController

@RequestMapping("/rpc/trbut")
public class TrbutDataRpcController {
    @Resource
    TrbutDataService trbutDataService;

    @PostMapping("/list")
    public List<TrbutDataRpcDTO> selTrButData(@RequestBody CxStationRpcDTO cxStationRpcDTO) {
        CxStationVo cxStationVo = new CxStationVo();
        BeanUtils.copyProperties(cxStationRpcDTO, cxStationVo);
        List<TrbutDataDTO> trbutDataDTOList = trbutDataService.selTrButDataByVo(cxStationVo);
        return BizUtils.copyEntityToDto(TrbutDataRpcDTO.class, trbutDataDTOList);
    }

    @PostMapping("/getTrbutDataList")
    public List<TrbutDataRpcDTO> getTrbutDataList(@RequestParam("observationStartTime") Date observationStartTime, @RequestParam("observationEndTime") Date observationEndTime) {
        List<TrbutDataDTO> trbutDataDTOList = trbutDataService.getTrbutDataList(observationStartTime, observationEndTime);
        return BizUtils.copyEntityToDto(TrbutDataRpcDTO.class, trbutDataDTOList);
    }

    @PostMapping("/selTrButDataByCode")
    public List<TrbutDataRpcDTO> selTrButDataByCode(@RequestParam("satelliteCode") String satelliteCode) {
        if (StringUtils.isNotEmpty(satelliteCode)) {
            List<TrbutDataRpcDTO> trbutDataDTOS = trbutDataService.selTrButDataByCode(satelliteCode);
            return trbutDataDTOS;
        }
        return new ArrayList<>();
    }
}
