package com.jsowell.pile.mapper;

import com.jsowell.pile.domain.PileSimInfo;
import com.jsowell.pile.dto.QuerySimInfoDTO;
import com.jsowell.pile.vo.web.SimCardInfoVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 充电桩SIM卡信息Mapper接口
 *
 * @author jsowell
 * @date 2022-08-26
 */
@Component
public interface PileSimInfoMapper {
    /**
     * 查询充电桩SIM卡信息
     *
     * @param id 充电桩SIM卡信息主键
     * @return 充电桩SIM卡信息
     */
    public PileSimInfo selectPileSimInfoById(Long id);

    /**
     * 查询充电桩SIM卡信息列表
     *
     * @param pileSimInfo 充电桩SIM卡信息
     * @return 充电桩SIM卡信息集合
     */
    public List<PileSimInfo> selectPileSimInfoList(PileSimInfo pileSimInfo);

    /**
     * 后管查询sim卡信息列表
     * @return
     */
    List<SimCardInfoVO> getSimInfoList(@Param("dto") QuerySimInfoDTO dto);

    /**
     * 新增充电桩SIM卡信息
     *
     * @param pileSimInfo 充电桩SIM卡信息
     * @return 结果
     */
    public int insertPileSimInfo(PileSimInfo pileSimInfo);

    /**
     * 修改充电桩SIM卡信息
     *
     * @param pileSimInfo 充电桩SIM卡信息
     * @return 结果
     */
    public int updatePileSimInfo(PileSimInfo pileSimInfo);

    /**
     * 删除充电桩SIM卡信息
     *
     * @param id 充电桩SIM卡信息主键
     * @return 结果
     */
    public int deletePileSimInfoById(Long id);

    /**
     * 批量删除充电桩SIM卡信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePileSimInfoByIds(Long[] ids);


    /**
     * 通过桩编码查询sim卡信息
     * @param pileSn 桩编码
     * @return
     */
    SimCardInfoVO querySimCardInfoByPileSn(String pileSn);

    /**
     * 通过卡号批量查询sim卡信息
     * @param iccIds 卡号集合
     * @return
     */
    List<PileSimInfo> selectSimInfoByIccIds(@Param("iccIds") List<String> iccIds);

    /**
     * 通过卡号查询sim卡信息
     * @param iccId 卡号
     * @return
     */
    PileSimInfo getBasicInfoByIccId(@Param("iccId") String iccId);


}
