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<WxLoginRecord, Long> {
|
|
/**
|
* 根据微信openid查找最新的登录记录
|
*/
|
Optional<WxLoginRecord> findFirstByWxOpenidOrderByLoginTimeDesc(String wxOpenid);
|
|
/**
|
* 根据微信unionid查找最新的登录记录
|
*/
|
Optional<WxLoginRecord> findFirstByWxUnionidOrderByLoginTimeDesc(String wxUnionid);
|
|
/**
|
* 根据用户ID查找登录记录
|
*/
|
List<WxLoginRecord> findByUserIdOrderByLoginTimeDesc(Long userId);
|
|
/**
|
* 根据微信openid查找所有登录记录
|
*/
|
List<WxLoginRecord> findByWxOpenidOrderByLoginTimeDesc(String wxOpenid);
|
|
/**
|
* 查找指定时间范围内的登录记录
|
*/
|
@Query("SELECT w FROM WxLoginRecord w WHERE w.loginTime BETWEEN :startTime AND :endTime ORDER BY w.loginTime DESC")
|
List<WxLoginRecord> findByLoginTimeBetween(@Param("startTime") LocalDateTime startTime,
|
@Param("endTime") LocalDateTime endTime);
|
|
/**
|
* 查找已授权手机号的登录记录
|
*/
|
List<WxLoginRecord> findByPhoneAuthorizedTrueOrderByPhoneAuthTimeDesc();
|
|
/**
|
* 根据微信openid和用户ID查找记录
|
*/
|
Optional<WxLoginRecord> findByWxOpenidAndUserId(String wxOpenid, Long userId);
|
}
|