package com.xinelu.applet.mapper.nurseapplogin;


import com.xinelu.applet.vo.nurseapplogin.PatientAndDiseaseVO;
import com.xinelu.applet.vo.nursepersonapplogin.OrderAndItemVO;
import com.xinelu.manage.domain.appointmentorder.AppointmentOrder;
import com.xinelu.manage.domain.goodsOrder.GoodsOrder;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description
 * @Author zh
 * @Date 2022-10-12
 */
public interface NurseAppLoginMapper {

    /**
     * 根据id查询被护理人疾病
     *
     * @param patientId 被护理人id
     * @return int
     */
    int selectPatientDiseaseInfo(Long patientId);

    /**
     * 根据id删除被护理人疾病
     *
     * @param patientId 被护理人id
     * @return int
     */
    long deletePatientDiseaseInfo(Long patientId);

    /**
     * 查询身份证数量
     *
     * @param cardNo 身份证号
     * @return 数量
     */
    int getCardNoCount(String cardNo);

    /**
     * 个人中心查询
     *
     * @param patientId 用户id
     * @return PatientDiseaseInfo
     */
    PatientAndDiseaseVO getPatientDiseaseByPatientId(@Param("patientId") Long patientId);

    /**
     * 预约查询预约订单明细
     *
     * @param patientId   预约订单明细主键
     * @param orderStatus 预约状态
     * @return 预约订单明细
     */
    List<OrderAndItemVO> selectAppointmentOrderDetailsByPatientId(@Param("patientId") Long patientId, @Param("orderStatus") String orderStatus);

    /**
     * 查询信息完善标识符
     *
     * @param patientId 账号信息
     * @return 数量
     */
    Integer getLoginFlagByPatientId(@Param("patientId") Long patientId);

    /**
     * 通过用户id查询用户所有订单
     *
     * @param patientId id
     * @return GoodsOrder
     */
    List<GoodsOrder> selectGoodsOrderListByPatient(@Param("patientId") Long patientId,@Param("orderType") String orderType);

    /**
     * 预约取消
     *
     * @param appointmentOrder 订单信息
     * @return 结果
     */
    int updateAppointmentByOrderId(AppointmentOrder appointmentOrder);
}
