package com.fdkankan.tk.service.impl; import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.fdkankan.tk.entity.RoomVisitLog; import com.fdkankan.tk.mapper.IRoomVisitLogMapper; import com.fdkankan.tk.response.DataCount; import com.fdkankan.tk.service.IRoomVisitLogService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** *

* 服务实现类 *

* * @author * @since 2023-02-28 */ @Service public class RoomVisitLogServiceImpl extends ServiceImpl implements IRoomVisitLogService { @Override public void addLog(Integer liveId, String roomId, String userId,Integer type) { RoomVisitLog roomVisitLog = this.getByLiveIdAndUserId(liveId,userId,type); if(roomVisitLog == null){ roomVisitLog = new RoomVisitLog(); roomVisitLog.setRoomId(roomId); roomVisitLog.setVisitUserId(userId); roomVisitLog.setLiveId(liveId); roomVisitLog.setInRoomTime(new Date()); } if(type == 1){ roomVisitLog.setUpdateTime(null); roomVisitLog.setOutRoomTime(new Date()); } this.saveOrUpdate(roomVisitLog); } @Override public void stopRoom(Integer liveId) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(RoomVisitLog::getLiveId,liveId); wrapper.set(RoomVisitLog::getOutRoomTime,new Date()); this.update(wrapper); } private RoomVisitLog getByLiveIdAndUserId(Integer liveId, String userId,Integer type) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(RoomVisitLog::getLiveId,liveId); wrapper.eq(RoomVisitLog::getVisitUserId,userId); if(type == 0){ wrapper.isNull(RoomVisitLog::getInRoomTime); wrapper.orderByDesc(RoomVisitLog::getInRoomTime); } if(type == 1){ wrapper.isNull(RoomVisitLog::getOutRoomTime); wrapper.orderByDesc(RoomVisitLog::getOutRoomTime); } List list = this.list(wrapper); if(list != null && list.size() >0){ return list.get(0); } return null; } @Override public Long manCount(List roomIds) { return this.getBaseMapper().manCount(roomIds); } @Override public Long getCountByTime(Integer key) { return this.getBaseMapper().getCountByTime(key); } @Override public List getByGroupRoomId(String tb,List roomIds, String startTime, String endTime) { return this.getBaseMapper().getByGroupRoomId(tb,roomIds,startTime,endTime); } @Override public List getByDGroupRoomId(String tb,List roomIds, String startTime, String endTime) { return this.getBaseMapper().getByDGroupRoomId(tb,roomIds,startTime,endTime); } @Override public List getGroupByRoomId() { return this.getBaseMapper().getGroupByRoomId(); } @Override public List getByRoomId(String roomId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(RoomVisitLog::getRoomId,roomId); return this.list(wrapper); } }