package com.rongyichuang.auth.repository; import com.rongyichuang.auth.entity.WxLoginRecord; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import java.time.LocalDateTime; import java.util.List; import java.util.Optional; /** * 微信登录记录数据访问层 */ @Repository public interface WxLoginRecordRepository extends JpaRepository { /** * 根据微信openid查找最新的登录记录 */ Optional findFirstByWxOpenidOrderByLoginTimeDesc(String wxOpenid); /** * 根据微信unionid查找最新的登录记录 */ Optional findFirstByWxUnionidOrderByLoginTimeDesc(String wxUnionid); /** * 根据用户ID查找登录记录 */ List findByUserIdOrderByLoginTimeDesc(Long userId); /** * 根据微信openid查找所有登录记录 */ List findByWxOpenidOrderByLoginTimeDesc(String wxOpenid); /** * 查找指定时间范围内的登录记录 */ @Query("SELECT w FROM WxLoginRecord w WHERE w.loginTime BETWEEN :startTime AND :endTime ORDER BY w.loginTime DESC") List findByLoginTimeBetween(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); /** * 查找已授权手机号的登录记录 */ List findByPhoneAuthorizedTrueOrderByPhoneAuthTimeDesc(); /** * 根据微信openid和用户ID查找记录 */ Optional findByWxOpenidAndUserId(String wxOpenid, Long userId); }