package com.younike.system.service;

import com.younike.system.domain.ServerTime;
import com.younike.system.domain.ServerUser;
import com.younike.system.domain.vo.ServerUserSearchParam;
import com.younike.system.domain.vo.ServerUserListVo;
import com.younike.system.domain.vo.ServerUserVo;
import com.younike.system.param.ServerUserQueryParam;

import java.util.List;

/**
 * 服务人员Service接口
 *
 * @author elev
 * @date 2022-01-06
 */
public interface IServerUserService {

    /**
     * 后台服务人员列表
     * @param param
     * @return
     */
    List<ServerUserListVo> pageList(ServerUserQueryParam param);
    /**
     * 查询服务人员
     *
     * @param serverId 服务人员主键
     * @return 服务人员
     */
    ServerUser selectServerUserByServerId(Long serverId);

    /**
     * 查询服务人员列表
     *
     * @param serverUser 服务人员
     * @return 服务人员集合
     */
    List<ServerUser> selectServerUserList(ServerUser serverUser);

    List<ServerUser> getServerUserList(ServerUserSearchParam searchParam);

    /**
     * 新增服务人员
     *
     * @param serverUser 服务人员
     * @return 结果
     */
    int insertServerUser(ServerUser serverUser);

    /**
     * 修改服务人员
     *
     * @param serverUser 服务人员
     * @return 结果
     */
    int updateServerUser(ServerUser serverUser);

    /**
     * 批量删除服务人员
     *
     * @param serverIds 需要删除的服务人员主键集合
     * @return 结果
     */
    int deleteServerUserByServerIds(Long[] serverIds);

    /**
     * 删除服务人员信息
     *
     * @param serverId 服务人员主键
     * @return 结果
     */
    int deleteServerUserByServerId(Long serverId);

    ServerUser findByPhone(String phone);

    ServerUserVo selectUserInfo(ServerUser serverUser);

    /**
     * 获取服务人员工作时间
     * @param serverId
     * @return
     */
    ServerTime getServerTime(Long serverId);

    /**
     * 批量更新
     *
     * @param users 服务人员
     */
    void updateServerUsers(List<ServerUser> users);

    ServerUser findByOpenid(String openid);
}
