|  |  | 
 |  |  | package cn.lihu.jh.module.ecg.dal.mysql.appointment; | 
 |  |  |  | 
 |  |  | import cn.lihu.jh.framework.common.pojo.PageResult; | 
 |  |  | import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX; | 
 |  |  | import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX; | 
 |  |  | import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX; | 
 |  |  | import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.AppointmentPageReqVO; | 
 |  |  | import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; | 
 |  |  | import org.apache.ibatis.annotations.Mapper; | 
 |  |  | import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.*; | 
 |  |  | import org.apache.ibatis.annotations.Param; | 
 |  |  | import org.apache.ibatis.annotations.Select; | 
 |  |  | import org.apache.ibatis.annotations.Update; | 
 |  |  |  | 
 |  |  | import java.time.LocalDate; | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  | 
 |  |  | public interface AppointmentMapper extends BaseMapperX<AppointmentDO> { | 
 |  |  |  | 
 |  |  |     default PageResult<AppointmentDO> selectPage(AppointmentPageReqVO reqVO) { | 
 |  |  |  | 
 |  |  |         return selectPage(reqVO, new LambdaQueryWrapperX<AppointmentDO>() | 
 |  |  |                 .eqIfPresent(AppointmentDO::getPatId, reqVO.getPatId()) | 
 |  |  |                 .likeIfPresent(AppointmentDO::getPatName, reqVO.getPatName()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getPatGender, reqVO.getPatGender()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getPatBirthday, reqVO.getPatBirthday()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getPatMobile, reqVO.getPatMobile()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getPatPhone, reqVO.getPatPhone()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getPatIdentityId, reqVO.getPatIdentityId()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getPatAddr, reqVO.getPatAddr()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getPatDeptCode, reqVO.getPatDeptCode()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getPatDeptDesc, reqVO.getPatDeptDesc()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getPatWardCode, reqVO.getPatWardCode()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getPatWardDesc, reqVO.getPatWardDesc()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getPatBedNo, reqVO.getPatBedNo()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getBookId, reqVO.getBookId()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getBookDate, reqVO.getBookDate()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getBookTimeslot, reqVO.getBookTimeslot()) | 
 |  |  |                 .betweenIfPresent(AppointmentDO::getBookTime, reqVO.getBookTime()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getBookCheckType, reqVO.getBookCheckType()) | 
 |  |  |                 .eqIfPresent(AppointmentDO::getBookSrc, reqVO.getBookSrc()) | 
 |  |  |                 .orderByDesc(AppointmentDO::getId)); | 
 |  |  |         LambdaQueryWrapperX<AppointmentDO> wrapper = (LambdaQueryWrapperX<AppointmentDO>) | 
 |  |  |                 new LambdaQueryWrapperX<AppointmentDO>(). | 
 |  |  |                         eqIfPresent(AppointmentDO::getPatId, reqVO.getPatId()).likeIfPresent(AppointmentDO::getPatName, reqVO.getPatName()).eqIfPresent(AppointmentDO::getPatGender, reqVO.getPatGender()).eqIfPresent(AppointmentDO::getPatBirthday, reqVO.getPatBirthday()).eqIfPresent(AppointmentDO::getPatMobile, reqVO.getPatMobile()).eqIfPresent(AppointmentDO::getPatPhone, reqVO.getPatPhone()).eqIfPresent(AppointmentDO::getPatIdentityId, reqVO.getPatIdentityId()).eqIfPresent(AppointmentDO::getPatAddr, reqVO.getPatAddr()).eqIfPresent(AppointmentDO::getPatDeptCode, reqVO.getPatDeptCode()).eqIfPresent(AppointmentDO::getPatDeptDesc, reqVO.getPatDeptDesc()).eqIfPresent(AppointmentDO::getPatWardCode, reqVO.getPatWardCode()).eqIfPresent(AppointmentDO::getPatWardDesc, reqVO.getPatWardDesc()).eqIfPresent(AppointmentDO::getBookDate, reqVO.getBookDate()).eqIfPresent(AppointmentDO::getBookTimeslot, reqVO.getBookTimeslot()).eqIfPresent(AppointmentDO::getBookCheckType, reqVO.getBookCheckType()).eqIfPresent(AppointmentDO::getBookSrc, reqVO.getBookSrc()).eqIfPresent(AppointmentDO::getPaid, reqVO.getPaid()).eqIfPresent(AppointmentDO::getApplyNo, reqVO.getApplyNo()).eqIfPresent(AppointmentDO::getEpisodeId, reqVO.getEpisodeId()).inIfPresent(AppointmentDO::getStatus, reqVO.getStatus()) | 
 |  |  |                 // ✅ 新增:createTime 区间查询 | 
 |  |  |                 .betweenIfPresent(AppointmentDO::getCreateTime, reqVO.getCreateTimeStart(), reqVO.getCreateTimeEnd()).betweenIfPresent(AppointmentDO::getRegisterDate, reqVO.getRegisterDateStart(), reqVO.getRegisterDateEnd()); | 
 |  |  |         // 动态排序 | 
 |  |  |         if (reqVO.getOrderCreateTime() != null) { | 
 |  |  |             wrapper.orderByDesc(AppointmentDO::getCreateTime); | 
 |  |  |         } else { | 
 |  |  |             wrapper.orderByAsc(AppointmentDO::getRegisterDate).orderByAsc(AppointmentDO::getPatWardDesc); | 
 |  |  |         } | 
 |  |  |         return selectPage(reqVO, wrapper); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | /* | 
 |  |  |  | 
 |  |  |     @Select("select * from lihu.appointment where pat_id = #{patId} and to_days(book_date) = to_days(Now())") | 
 |  |  |     List<AppointmentDO> getCurrentPatId(@Param("patId") String patId); | 
 |  |  | */ | 
 |  |  |     List<AppointmentDO> getCurrentPatId(String patId); | 
 |  |  |  | 
 |  |  |     @Select("select * from lihu.appointment where (apply_no = #{code} or episode_id= #{code} or hospital_no =#{code} or pat_identity_id=#{code}) and to_days(book_date) = to_days(Now())") | 
 |  |  |     List<AppointmentDO> getCurrentCode(String code); | 
 |  |  |  | 
 |  |  |     @Select("select * from lihu.appointment where pat_id = #{patId} and book_check_type = #{checkType} and to_days(book_date) = to_days(Now()) limit 1") | 
 |  |  |     AppointmentDO getCurrentByPatAndCheckType(@Param("patId") String patId, @Param("checkType") Integer checkType); | 
 |  |  |     AppointmentDO getByPatAndCheckTypeAndBookDate(@Param("patId") String patId, @Param("checkType") Integer checkType); | 
 |  |  |  | 
 |  |  |     @Select("select * from lihu.appointment where pat_id = #{patId} and book_check_type = #{checkType} and to_days(book_date) = to_days(#{book_date}) limit 1") | 
 |  |  |     AppointmentDO getByPatAndCheckTypeAndBookDate(@Param("patId") String patId, @Param("checkType") Integer checkType, @Param("book_date") LocalDate book_date); | 
 |  |  |     Integer updateStatusByApplyNo(@Param("applyNo") String applyNo, @Param("status") String status, @Param("registerDate") Date registerDate); | 
 |  |  |  | 
 |  |  |     @Select("select * from lihu.appointment where episode_id = #{episodeId} and apply_no = #{applyNo} limit 1") | 
 |  |  |     AppointmentDO getByEpisodeIdAndApplyNo(@Param("episodeId") String episodeId, @Param("applyNo") String applyNo); | 
 |  |  |  | 
 |  |  |     @Select("select * from lihu.appointment where apply_no = #{applyNo} limit 1") | 
 |  |  |     AppointmentDO getByApplyNo(@Param("applyNo") String applyNo); | 
 |  |  | } | 
 |  |  |  |