package com.xhpc.card.service;

import com.xhpc.card.domain.*;
import com.xhpc.common.core.domain.R;

/**
 * @author yuyang
 * @date 2022/1/20 13:44
 */
public interface IXhpcCardService {

    /**
     * 卡启动充电判断
     *
     * @param cardno       卡物理卡号
     * @param serialNumber 终端卡号
     * @return
     */
    R cardStartup(String cardno, String serialNumber,String rateModelId);

    /**
     * 查询卡授权设备列表
     *
     * @param currentPage 当前页码
     * @param items       当前显示条数
     * @return 返回卡授权列表
     * @author WH
     * @date 2022/1/25 16:18
     * @since version-1.0
     */
    R<ListOfAuthorizedDevices> queryDeviceList(Long currentPage, Long items);

    /**
     * 逻辑删除指定卡授权设备
     *
     * @param deviceId 卡授权设备id
     * @return 返回Result结果集对象
     * @author WH
     * @date 2022/1/26 10:39
     * @since version-1.0
     */
    R<Object> deleteDevice(Integer deviceId);

    /**
     * 通过查询条件来查询卡列表
     *
     * @param queryConditions 查询条件
     * @return 装有卡列表数据的结果集
     * @author WH
     * @date 2022/1/26 13:56
     * @since version-1.0
     */
    R<CardList> queryCardListBy(QueryConditions queryConditions);

    /**
     * 绑定卡回显信息
     *
     * @param cardId 卡记录id
     * @return 返回需要回显的卡数据
     * @author WH
     * @date 2022/1/28 10:44
     * @since version-1.0
     */
    R<BindCardEcho> noBindCardInfo(Long cardId);

    /**
     * 平台、运营商选择用户时，查询指定类型下的所有用户数据
     *
     * @param queryCondition 查询条件
     * @return 平台、运营商选择用户时，查询指定类型下的所有用户数据
     * @author WH
     * @date 2022/1/28 15:31
     * @since version-1.0
     */
    R<SearchCardResponse> searchCardUser(SearchCardUserQueryCondition queryCondition);

    /**
     * 联网卡绑定
     *
     * @param bindCardInfo 要绑定的联网卡信息
     * @return 操作结果
     * @author WH
     * @date 2022/2/9 10:48
     * @since version-1.0
     */
    R<Object> onlineCardBind(BindCardInfo bindCardInfo);

}
