123333
This commit is contained in:
@@ -18,5 +18,5 @@ public interface UserOnlineService extends IService<UserOnline> {
|
||||
|
||||
void activeUpdate();
|
||||
|
||||
|
||||
void updateOnlineByYunxin(String eventType, Long userId, Long timestamp);
|
||||
}
|
||||
|
||||
@@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.UserOnline;
|
||||
import com.ruoyi.cai.dto.app.vo.user.OnlineStatusVo;
|
||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||
import com.ruoyi.cai.mapper.UserOnlineMapper;
|
||||
import com.ruoyi.cai.service.UserOnlineService;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -22,6 +25,9 @@ import java.time.LocalDateTime;
|
||||
@Service
|
||||
public class UserOnlineServiceImpl extends ServiceImpl<UserOnlineMapper, UserOnline> implements UserOnlineService {
|
||||
|
||||
@Autowired
|
||||
private SystemConfigManager systemConfigManager;
|
||||
|
||||
@Override
|
||||
public UserOnline getByUserId(Long userId){
|
||||
return this.getOne(Wrappers.lambdaQuery(UserOnline.class).eq(UserOnline::getUserId,userId).last("limit 1"));
|
||||
@@ -72,4 +78,34 @@ public class UserOnlineServiceImpl extends ServiceImpl<UserOnlineMapper, UserOnl
|
||||
.set(UserOnline::getLastLiveTime, LocalDateTime.now()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateOnlineByYunxin(String eventType, Long userId, Long timestamp) {
|
||||
if(userId == null || timestamp == null || eventType == null){
|
||||
log.error("参数异常");
|
||||
return;
|
||||
}
|
||||
UserOnline userOnline = this.getByUserId(userId);
|
||||
if(userOnline == null){
|
||||
return;
|
||||
}
|
||||
boolean yunxinOnlineEnable = systemConfigManager.getSystemConfigOfBool(SystemConfigEnum.YUNXIN_ONLINE_ENABLE);
|
||||
if(!yunxinOnlineEnable){
|
||||
return;
|
||||
}
|
||||
if("2".equals(eventType)){ // 登陆事件
|
||||
this.update(Wrappers.lambdaUpdate(UserOnline.class)
|
||||
.eq(UserOnline::getUserId,userId)
|
||||
.le(UserOnline::getReceiveTime, timestamp)
|
||||
.set(UserOnline::getReceiveTime, timestamp)
|
||||
.set(UserOnline::getStatus, 1));
|
||||
}else if("3".equals(eventType)){ // 登出事件
|
||||
this.update(Wrappers.lambdaUpdate(UserOnline.class)
|
||||
.eq(UserOnline::getUserId,userId)
|
||||
.le(UserOnline::getReceiveTime, timestamp)
|
||||
.set(UserOnline::getReceiveTime, timestamp)
|
||||
.set(UserOnline::getStatus, 0));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user