package com.yuchen.saas.park.service.service.elevator;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuchen.saas.park.api.dto.elevator.ElevatorPersonDTO;
import com.yuchen.saas.park.api.dto.elevator.PersonIdsDTO;
import com.yuchen.saas.park.api.entity.elevator.SaasParkElevatorPerson;
import com.yuchen.saas.park.api.request.ElevatorPersonRequest;
import com.yuchen.saas.park.api.vo.elevator.ElevatorPersonVO;
import org.nest.springwrap.core.mp.support.Query;
import org.nest.springwrap.core.tool.api.R;

import java.util.List;

/**
 * <p>
 * 梯控人员登记表 服务类
 * </p>
 *
 * @author baichaojie
 * @since 2024-07-08
 */
public interface ISaasParkElevatorPersonService extends IService<SaasParkElevatorPerson> {


    /**
     * 分页 人员登记
     * @param query
     * @param req
     * @return
     */
    R<IPage<ElevatorPersonVO>> list(ElevatorPersonRequest req, Query query);


    /**
     * 人员登记 新增或修改
     * @param elevatorPersonDTO
     * @return
     */
    boolean saveOrUpdateByParam(ElevatorPersonDTO elevatorPersonDTO);

    /**
     * 人员登记 详情
     * @param id
     * @return
     */
    ElevatorPersonVO getDetailById(Long id);

    /**
     * 人员批量查询
     * @param personIds
     * @return
     */
    List<ElevatorPersonVO> getDetailsByIds(PersonIdsDTO personIds);



    /**
     * 发送人员权限(人员门禁权限下发 人员登记)(从人员表里取出登记关系,并更新到数据库的人员设备关联表,然后触发下发)
     * @param personId
     * @return
     */
    boolean sendUserPower(Long personId);









}
