package com.xinelu.applet.mapper.nursepersonapplogin;

import com.xinelu.applet.vo.nursepersonapplogin.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description 护理人员APP登录注册Mapper
 * @Author zh
 * @Date 2022-10-28
 */
public interface NursePersonAppLoginMapper {

    /**
     * 工单首页查询已完成以及未完成数量
     *
     * @param nurseStationPersonId 护理员id
     * @param orderStatusList      状态
     * @return java.util.List<com.xinyilu.nurseapplet.domain.vo.nursepersonapplogin.OrderByNursePersonVO>
     **/
    List<OrderByNursePersonVO> selectOrderByNursePersonCount(@Param("nurseStationPersonId") Long nurseStationPersonId, @Param("orderStatusList") List<String> orderStatusList);

    /**
     * 服务人员我的任务界面 查询服务订单
     *
     * @param orderAndItem 预约订单信息
     * @return 结果
     */
    List<OrderAndItemVO> selectOrderByNursePersonId(OrderAndItemVO orderAndItem);

    /**
     * 服务人员-服务订单详情
     *
     * @param orderNo 订单编号
     * @return 结果
     */
    OrderDetailsAndPatientVO getOrderDetailsAndPatientByDetailsId(String orderNo);

    /**
     * 任务退回
     *
     * @param orderNo          订单编号
     * @param orderStatus      订单状态
     * @param taskReturnReason 退还原因
     * @return 结果
     */
    int updateAppointmentOrderByOrderNo(@Param("orderNo") String orderNo, @Param("orderStatus") String orderStatus, @Param("taskReturnReason") String taskReturnReason);

    /**
     * 根据手机号或者密码 查询 护理人员的注册信息
     *
     * @param phonenumber           手机号
     * @param stationPersonPassword 密码
     * @return int 数量
     */
    int getSysUserPasswordByPhone(@Param("phonenumber") String phonenumber, @Param("stationPersonPassword") String stationPersonPassword);

    /**
     * 护理站人员注册信息新增
     *
     * @param nurseAppLoginSysUserVO 注册信息
     * @return int 结果
     **/
    int insertNurseAppLoginSysUser(NurseAppLoginSysUserVO nurseAppLoginSysUserVO);


    /**
     * 根据用户护理人员的账户密码去查询 返回护理人员信息
     *
     * @param phonenumber           手机号 账号
     * @param stationPersonPassword 密码
     * @return com.xinyilu.nurseapplet.domain.vo.nursepersonapplogin.NursePersonAppLoginsUserVO
     **/
    NursePersonAppLoginsUserVO getUserAndPerson(@Param("phonenumber") String phonenumber, @Param("stationPersonPassword") String stationPersonPassword);

    /**
     * 根据手机号查询用户id
     *
     * @param phonenumber 手机号码
     * @return 完善信息
     */
    Long getFromPhoneUserId(String phonenumber);

    /**
     * 修改用户护理人员的账户密码
     *
     * @param nurseAppLoginSysUserVO 用户信息
     * @return int
     **/
    int updateUserPassWord(NurseAppLoginSysUserVO nurseAppLoginSysUserVO);


    /**
     * 查询护理站人员的个人信息
     *
     * @param nurseAppLoginSysUserVO 个人信息
     * @return com.xinyilu.nurseapplet.domain.vo.nursepersonapplogin.NursePersonAppLoginsUserVO
     **/
    NursePersonAppLoginsUserVO getNursePersonPersonalInformation(NurseAppLoginSysUserVO nurseAppLoginSysUserVO);

    /**
     * 修改被护理人人员上传文件头像
     *
     * @param avatar 头像地址
     * @param userId userId护理人人员id
     * @return com.xinyilu.common.core.domain.AjaxResult
     **/
    int updateHeadAvatarHeadUserId(@Param("userId") Long userId, @Param("avatar") String avatar);

    /**
     * 查询护理站列表
     *
     * @param nurseStation 护理站列表
     * @return com.xinyilu.base.domain.nursestation.NurseStation
     **/
    List<PersonNurseStationAppVO> getPersonNurseStationLists(PersonNurseStationAppVO nurseStation);

    /**
     * 根据userId查询信息
     *
     * @param userId 护理人员id
     * @return int
     **/
    NursePersonAppLoginsUserVO getNursePersonUserId(Long userId);

    /**
     * 根据护理员id查询个人信息
     *
     * @param nursePersonId 护理员id
     * @return com.xinyilu.nurseapplet.domain.vo.nursepersonapplogin.NurseStationPersonUserVO
     **/
    NurseStationPersonUserVO getNurseStationPersonById(Long nursePersonId);
}
