package com.sptg.device.biz.service.impl;

import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.sptg.common.core.constant.OperationConstant;
import com.sptg.device.api.dto.DevicePathDto;
import com.sptg.device.api.entity.DevicePath;
import com.sptg.device.biz.mapper.DevicePathMapper;
import com.sptg.device.biz.service.DevicePathServiceInterface;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;

import java.sql.Wrapper;
import java.util.List;

/**
 * title: DevicePathServiceImpl
 * package: com.sptg.device.biz.security.impl
 * description: 设备位置-业务层实现类
 *
 *                
 *                
 */
@Service
public class DevicePathServiceImpl extends ServiceImpl<DevicePathMapper, DevicePath> implements DevicePathServiceInterface {

    @Override
    public Page<DevicePath> pagingQuery(DevicePathDto dto) {

        Page<DevicePath> page = dto.getPage();
        EntityWrapper wrapper=new EntityWrapper<DevicePath>();
        wrapper.eq("i_status", OperationConstant.ZERO);
        if(StringUtils.isNotBlank(dto.getName())){
            wrapper.like("s_name",dto.getName());
        }
        if (dto.getXqId() != null){
            wrapper.eq("l_xq_id",dto.getXqId());
        }
        if(StringUtils.isNotBlank(dto.getXqName())){
            wrapper.like("s_xq_name",dto.getXqName());
        }
        wrapper.like("s_org_position",dto.getOrgPosition(), SqlLike.RIGHT);
        //排序
        if (dto.getSortField() != null && dto.getSortOrder() != null){
            wrapper.orderBy(dto.getSortField(),dto.getSortOrder().equals("asc"));
        }else {
            //  排序字段 时间降序
            wrapper.orderBy("t_create_date",false);
        }
        Page<DevicePath> devicePathPage = this.selectPage(page,wrapper);
        return devicePathPage;
    }

    @Override
    public List<DevicePath>  getList(DevicePathDto dto){
        EntityWrapper wrapper=new EntityWrapper<DevicePath>();
        wrapper.notIn("i_status", OperationConstant.MINUS_ONE);
        //名称
        if(StringUtils.isNotBlank(dto.getName())){
            wrapper.like("s_name",dto.getName());
        }
        //位置类型
        if(dto.getType()!=null){
            wrapper.eq("i_type",dto.getType());
        }
        //小区id
        if(dto.getXqId()!=null){
            wrapper.eq("l_xq_id",dto.getXqId());
        }
        if(StringUtils.isNotBlank(dto.getOrgPosition())){
            wrapper.like("s_org_position",dto.getOrgPosition(), SqlLike.RIGHT);
        }
        List list = this.selectList(wrapper);
        return list;
    }

    @Override
    public DevicePath selectOne(DevicePathDto dto) {
        EntityWrapper wrapper=new EntityWrapper<DevicePath>();
        wrapper.eq("i_status", OperationConstant.ZERO);
        //名称
        if(StringUtils.isNotBlank(dto.getName())){
            wrapper.like("s_name",dto.getName());
        }
        //位置类型
        if(dto.getType()!=null){
            wrapper.eq("i_type",dto.getType());
        }
        //小区id
        if(dto.getXqId()!=null){
            wrapper.eq("l_xq_id",dto.getXqId());
        }
        if(StringUtils.isNotBlank(dto.getOrgPosition())){
            wrapper.like("s_org_position",dto.getOrgPosition(), SqlLike.RIGHT);
        }
        return this.selectOne(wrapper);
    }
}
