package com.base.track.service;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.base.orbit.utils.StringUtil;
import com.base.track.mapper.EphDataMapper;
import com.base.track.mapper.SubPointDataMapper;
import com.base.track.model.dto.request.QueryEphListDTO;
import com.base.track.model.dto.response.EphDataDTO;
import com.base.track.model.entity.EphData;
import com.base.track.model.entity.SubPointData;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

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

@Service
public class EphDataService extends ServiceImpl<EphDataMapper, EphData> {

    @Resource
    EphDataMapper ephDataMapper;

    public List<EphDataDTO> getEphList(QueryEphListDTO queryEphListDTO) {
        // 如果开始结束时间为同一天，则结束时间+1
        QueryWrapper<EphData> queryWrapper=new QueryWrapper();
        if (queryEphListDTO.getStartTime()!=null){
            queryWrapper.ge("eph_time", queryEphListDTO.getStartTime());
        }
        if (queryEphListDTO.getEndTime()!=null){
            queryWrapper.le("eph_time", queryEphListDTO.getEndTime());
        }
        if (queryEphListDTO.getCode()!=null){
            queryWrapper.eq("code", queryEphListDTO.getCode());
        }
        List<EphData> list = ephDataMapper.selectList(queryWrapper);
        List<EphDataDTO> res = new ArrayList<>();
        for (EphData ephData:list){
            EphDataDTO ephDataDTO = new EphDataDTO();
            BeanUtils.copyProperties(ephData,ephDataDTO);
            ephDataDTO.setX(ephData.getX());
            ephDataDTO.setY(ephData.getY());
            ephDataDTO.setZ(ephData.getZ());
            res.add(ephDataDTO);
        }
        return res;
    }

    public List<EphDataDTO> getList(QueryEphListDTO queryEphListDTO) {
        QueryWrapper<EphData> queryWrapper=new QueryWrapper();
        if (queryEphListDTO.getStartTime()!=null){
            queryWrapper.ge("eph_time", queryEphListDTO.getStartTime());
        }
        if (queryEphListDTO.getEndTime()!=null){
            queryWrapper.le("eph_time", queryEphListDTO.getEndTime());
        }
        if (queryEphListDTO.getCode()!=null){
            queryWrapper.eq("code", queryEphListDTO.getCode());
        }
        List<EphData> list = ephDataMapper.selectList(queryWrapper);
       /* List<EphData> list = ephDataMapper.getList(queryEphListDTO);*/
        List<EphDataDTO> res = new ArrayList<>();
        for (EphData ephData:list){
            EphDataDTO ephDataDTO = new EphDataDTO();
            BeanUtils.copyProperties(ephData,ephDataDTO);
            ephDataDTO.setX(ephData.getX());
            ephDataDTO.setY(ephData.getY());
            ephDataDTO.setZ(ephData.getZ());
            res.add(ephDataDTO);
        }
        return res;
    }

}
