package com.sptg.video.cloud.biz.service.impl;

import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.sptg.common.core.beans.PageBean;
import com.sptg.video.cloud.api.dto.VCApiLogDto;
import com.sptg.video.cloud.api.dto.VCDeviceDto;
import com.sptg.video.cloud.api.entity.VCApiLog;
import com.sptg.video.cloud.api.entity.VCDevice;
import com.sptg.video.cloud.biz.mapper.ApiLogMapper;
import com.sptg.video.cloud.biz.service.VCApiLogServiceInterface;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;

/**
 * @author zwx
 * @create 2020/10/17 16:18
 */
@Service
@RequiredArgsConstructor
public class VCApiLogServiceImpl extends ServiceImpl<ApiLogMapper, VCApiLog> implements VCApiLogServiceInterface {
    @Override
    public Page<VCApiLog> pagingQuery(PageBean<VCApiLog, VCApiLogDto> pageBean) {
        VCApiLogDto apiLogDto = pageBean.getDto();
        //  排序字段 时间降序
        pageBean.setOrderByField("t_create_date").setAsc(false);
        // 构建查询条件
        Wrapper<VCApiLog> wrapper = new EntityWrapper<>();

        if(null != apiLogDto){
            //根据设备号查询
            if (StringUtils.isNotBlank(apiLogDto.getDeviceNum())) {
                wrapper.eq("s_device_num", apiLogDto.getDeviceNum());
            }
            //根据接口方法
            if (StringUtils.isNotBlank(apiLogDto.getApiMethod())) {
                wrapper.eq("s_api_method", apiLogDto.getApiMethod());
            }
            //根据返回编码
            if (StringUtils.isNotBlank(apiLogDto.getReturnCode())) {
                wrapper.eq("s_return_code", apiLogDto.getReturnCode());
            }
        }

        //  查询接口日志列表
        Page<VCApiLog> page = this.selectPage(pageBean, wrapper);
        return page;
    }

    @Override
    public VCApiLog findById(Long id) {
        Wrapper<VCApiLog> wrapper = new EntityWrapper<>();
        wrapper.eq("l_id",id);
        return this.selectOne(wrapper);
    }
}
