Files
cai-server/ruoyi-cai/src/main/java/com/ruoyi/cai/service/LoginMinLogServiceImpl.java
张良(004796) 4020297c59 123
2025-10-14 19:07:21 +08:00

39 lines
1.5 KiB
Java

package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.LoginMinLog;
import com.ruoyi.cai.mapper.LoginMinLogMapper;
import com.ruoyi.cai.mq.handle.dto.LoginNotifyDTO;
import com.ruoyi.cai.util.IdLockManager;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
@Service
public class LoginMinLogServiceImpl extends ServiceImpl<LoginMinLogMapper, LoginMinLog> implements LoginMinLogService {
@Override
public void saveData(LoginNotifyDTO loginNotify) {
LocalDate now = loginNotify.getHappenTime().toLocalDate();
boolean exists = this.exists(Wrappers.lambdaQuery(LoginMinLog.class)
.eq(LoginMinLog::getLoginDate, now)
.eq(LoginMinLog::getUserId, loginNotify.getUserId()));
if(exists){
return;
}
String lockKey = String.format("loginMinLog:%s", loginNotify.getUserId());
IdLockManager.executeWithLock(lockKey, () -> {
boolean existsF = this.exists(Wrappers.lambdaQuery(LoginMinLog.class)
.eq(LoginMinLog::getLoginDate, now)
.eq(LoginMinLog::getUserId, loginNotify.getUserId()));
if(existsF){
return;
}
LoginMinLog log = new LoginMinLog();
log.setLoginDate(now);
log.setUserId(loginNotify.getUserId());
this.save(log);
});
}
}