package cn.pluss.platform.merchant;

import cn.pluss.platform.entity.MerchantCashPlace;
import cn.pluss.platform.entity.MerchantCashPlaceStaff;
import cn.pluss.platform.entity.UserApp;
import cn.pluss.platform.vo.MerchantCashPlaceStaffVO;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 收银点和员工关联记录表 服务类
 * </p>
 *
 * @author Djh
 * @since 2021-03-23
 */
public interface MerchantCashPlaceStaffService extends IService<MerchantCashPlaceStaff> {

    /**
     * 员工绑定收银点
     * @param userId        用户id
     * @param cashPlace     收银点
     */
    void bindCashPlace(Long userId, MerchantCashPlace cashPlace);

    /**
     * 员工收银点签到
     * @param userId        用户id
     * @param cashPlaceCode 收银台code
     */
    void bindCashPlace(Long userId, String cashPlaceCode);

    /**
     * 员工收银点签退
     * @param userId
     */
    void offLine(Long userId);

    /**
     * 员工收银点签退
     * @param cashPlace
     */
    void offLineCashPlace(MerchantCashPlace cashPlace);

    /**
     * 员工收银点签退
     * @param cashPlaceCode
     */
    void offLineCashPlace(String cashPlaceCode);

    /**
     * 获取收银台上正在值班的员工,
     * @param cashPlace 收银台信息
     * @return 正在打卡的员工信息，若为空则说明无
     */
    UserApp getCurStaffFromCashPlace(MerchantCashPlace cashPlace);

    /**
     * 获取分页打卡信息
     * @param page      分页信息
     * @param condition 查询条件
     * @param orderItem 排序字段
     * @return  打卡信息
     */
    Page<MerchantCashPlaceStaffVO> getRecord(Page<MerchantCashPlaceStaff> page, MerchantCashPlaceStaff condition, OrderItem orderItem);
}
