package com.xinelu.familydoctor.applet.mapper;

import com.xinelu.familydoctor.applet.pojo.entity.PatientInfo;
import com.xinelu.familydoctor.applet.pojo.query.PatientInfoQuery;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 被护理人基本信息Mapper接口
 *
 * @author xinelu
 * @date 2023-09-25
 */
public interface ResidentPatientInfoMapper {

    /**
     * @return com.xinelu.familydoctor.applet.pojo.entity.PatientInfo
     * @Author mengkuiliang
     * @Description 获取注册详细信息
     * @Date 2023-09-21 021 9:44
     * @Param [registerCode]
     **/
    public PatientInfo selectPatientInfoByCode(String patientCode);

    /**
     * @return java.util.List<com.xinelu.familydoctor.applet.pojo.entity.PatientInfo>
     * @Author mengkuiliang
     * @Description 获取注册列表
     * @Date 2023-09-21 021 9:40
     * @Param [query]
     **/
    public List<PatientInfo> selectPatientInfoList(PatientInfoQuery query);

    /**
     * @return int
     * @Author mengkuiliang
     * @Description 新增
     * @Date 2023-09-21 021 14:20
     * @Param [patientInfo]
     **/
    public int insertPatientInfo(PatientInfo patientInfo);

    /**
     * @return int
     * @Author mengkuiliang
     * @Description 修改
     * @Date 2023-09-21 021 14:20
     * @Param [patientInfo]
     **/
    public int updatePatientInfo(PatientInfo body);

    /**
     * @return void
     * @Author mengkuiliang
     * @Description 身份证号是否已注册
     * @Date 2023-09-21 021 10:35
     * @Param [cardNo]
     **/
    PatientInfo isRegisterByCardNo(String cardNo);

    /**
     * @return java.lang.String
     * @Author mengkuiliang
     * @Description 获取已注册列表
     * @Date 2023-09-21 021 14:53
     * @Param [openid]
     **/
    List<PatientInfo> getList(@Param("openid") String openid, @Param("cityCode") String cityCode);

    /**
     * @return void
     * @Author mengkuiliang
     * @Description 切换账号
     * @Date 2023-09-21 021 15:19
     * @Param [registerCode]
     **/
    void switchResident(@Param("openid") String openid, @Param("patientCode") String patientCode);

    /**
     * @return void
     * @Author mengkuiliang
     * @Description 更新选中标识
     * @Date 2023-09-25 021 15:53
     * @Param [registerCode]
     **/
    void updateChecked(@Param("patientCode") String patientCode, @Param("isChecked") String isChecked);

    /**
     * @Author mengkuiliang
     * @Description 获取注册信息-根据身份证号
     * @Date 2023-09-27 027 15:14
     * @Param [cardNo]
     * @return com.xinelu.familydoctor.applet.pojo.entity.PatientInfo
     **/
    PatientInfo getByCardNo(String cardNo);

    List<PatientInfo> selectPatientInfoByPhone(String phone);
    /**
     *根据用户编号查询
     *
     *@param patientCode 用户编号
     *@return PatientInfo
     **/
    PatientInfo getPatientInfoByPatientCode(String patientCode);

    /**
     * @Author mengkuiliang
     * @Description 查询已登录的居民信息
     * @Date 2023-10-30 030 16:39
     * @Param [openid]
     * @return com.xinelu.familydoctor.applet.pojo.entity.PatientInfo
     **/
    PatientInfo getLoginByOpenId(String openid);

}
