package com.jsowell.pile.service;

import com.jsowell.common.core.page.PageResponse;
import com.jsowell.pile.domain.PileStationInfo;
import com.jsowell.pile.dto.FastCreateStationDTO;
import com.jsowell.pile.dto.QueryStationDTO;
import com.jsowell.pile.vo.web.PileStationVO;

import java.util.List;

/**
 * 充电站信息Service接口
 *
 * @author jsowell
 * @date 2022-08-30
 */
public interface IPileStationInfoService {
	/**
	 * 查询充电站信息
	 *
	 * @param id 充电站信息主键
	 * @return 充电站信息
	 */
	public PileStationInfo selectPileStationInfoById(Long id);

	/**
	 * 查询充电站信息列表
	 *
	 * @param pileStationInfo 充电站信息
	 * @return 充电站信息集合
	 */
	public List<PileStationInfo> selectPileStationInfoList(PileStationInfo pileStationInfo);

	/**
	 * 通过运营商id查询站点信息
	 *
	 * @param merchantId 运营商id
	 * @return 站点信息列表
	 */
	public List<PileStationInfo> selectStationListByMerchantId(Long merchantId);

	/**
	 * 新增充电站信息
	 *
	 * @param pileStationInfo 充电站信息
	 * @return 结果
	 */
	public int insertPileStationInfo(PileStationInfo pileStationInfo);

	/**
	 * 快速建站
	 *
	 * @param dto
	 * @return
	 */
	public int fastCreateStation(FastCreateStationDTO dto);

	/**
	 * 修改充电站信息
	 *
	 * @param pileStationInfo 充电站信息
	 * @return 结果
	 */
	public int updatePileStationInfo(PileStationInfo pileStationInfo);

	/**
	 * 批量删除充电站信息
	 *
	 * @param ids 需要删除的充电站信息主键集合
	 * @return 结果
	 */
	public int deletePileStationInfoByIds(Long[] ids);

	/**
	 * 查询充电站信息
	 *
	 * @param dto 前台参数
	 * @return 充电站信息集合
	 */
	List<PileStationVO> queryStationInfos(QueryStationDTO dto);

	/**
	 * 查询充电站信息并通过经纬度距离排序
	 *
	 * @param queryStationDTO 前台参数
	 * @return 充电站对象集合
	 */
	PageResponse uniAppQueryStationInfoList(QueryStationDTO queryStationDTO);

	PileStationVO getStationInfo(String stationId);

	PileStationVO getStationInfoByPileSn(String pileSn);

	List<PileStationInfo> getStationInfosByThirdParty();

	List<String> queryByStationDeptIds(List<String> stationIds);

    String selectAdapayMemberId(String stationId);
}
