RoomVisitLogServiceImpl.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package com.fdkankan.tk.service.impl;
  2. import java.util.Date;
  3. import java.util.List;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  6. import com.fdkankan.tk.entity.RoomVisitLog;
  7. import com.fdkankan.tk.mapper.IRoomVisitLogMapper;
  8. import com.fdkankan.tk.response.DataCount;
  9. import com.fdkankan.tk.service.IRoomVisitLogService;
  10. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  11. import org.springframework.stereotype.Service;
  12. /**
  13. * <p>
  14. * 服务实现类
  15. * </p>
  16. *
  17. * @author
  18. * @since 2023-02-28
  19. */
  20. @Service
  21. public class RoomVisitLogServiceImpl extends ServiceImpl<IRoomVisitLogMapper, RoomVisitLog> implements IRoomVisitLogService {
  22. @Override
  23. public void addLog(Integer liveId, String roomId, String userId,Integer type) {
  24. RoomVisitLog roomVisitLog = this.getByLiveIdAndUserId(liveId,userId,type);
  25. if(roomVisitLog == null){
  26. roomVisitLog = new RoomVisitLog();
  27. roomVisitLog.setRoomId(roomId);
  28. roomVisitLog.setVisitUserId(userId);
  29. roomVisitLog.setLiveId(liveId);
  30. roomVisitLog.setInRoomTime(new Date());
  31. }
  32. if(type == 1){
  33. roomVisitLog.setUpdateTime(null);
  34. roomVisitLog.setOutRoomTime(new Date());
  35. }
  36. this.saveOrUpdate(roomVisitLog);
  37. }
  38. @Override
  39. public void stopRoom(Integer liveId) {
  40. LambdaUpdateWrapper<RoomVisitLog> wrapper = new LambdaUpdateWrapper<>();
  41. wrapper.eq(RoomVisitLog::getLiveId,liveId);
  42. wrapper.set(RoomVisitLog::getOutRoomTime,new Date());
  43. this.update(wrapper);
  44. }
  45. private RoomVisitLog getByLiveIdAndUserId(Integer liveId, String userId,Integer type) {
  46. LambdaQueryWrapper<RoomVisitLog> wrapper = new LambdaQueryWrapper<>();
  47. wrapper.eq(RoomVisitLog::getLiveId,liveId);
  48. wrapper.eq(RoomVisitLog::getVisitUserId,userId);
  49. if(type == 0){
  50. wrapper.isNull(RoomVisitLog::getInRoomTime);
  51. wrapper.orderByDesc(RoomVisitLog::getInRoomTime);
  52. }
  53. if(type == 1){
  54. wrapper.isNull(RoomVisitLog::getOutRoomTime);
  55. wrapper.orderByDesc(RoomVisitLog::getOutRoomTime);
  56. }
  57. List<RoomVisitLog> list = this.list(wrapper);
  58. if(list != null && list.size() >0){
  59. return list.get(0);
  60. }
  61. return null;
  62. }
  63. @Override
  64. public Long manCount(List<String> roomIds) {
  65. return this.getBaseMapper().manCount(roomIds);
  66. }
  67. @Override
  68. public Long getCountByTime(Integer key) {
  69. return this.getBaseMapper().getCountByTime(key);
  70. }
  71. @Override
  72. public List<DataCount> getByGroupRoomId(String tb,List<String> roomIds, String startTime, String endTime) {
  73. return this.getBaseMapper().getByGroupRoomId(tb,roomIds,startTime,endTime);
  74. }
  75. @Override
  76. public List<DataCount> getByDGroupRoomId(String tb,List<String> roomIds, String startTime, String endTime) {
  77. return this.getBaseMapper().getByDGroupRoomId(tb,roomIds,startTime,endTime);
  78. }
  79. @Override
  80. public List<DataCount> getGroupByRoomId() {
  81. return this.getBaseMapper().getGroupByRoomId();
  82. }
  83. @Override
  84. public List<RoomVisitLog> getByRoomId(String roomId) {
  85. LambdaQueryWrapper<RoomVisitLog> wrapper = new LambdaQueryWrapper<>();
  86. wrapper.eq(RoomVisitLog::getRoomId,roomId);
  87. return this.list(wrapper);
  88. }
  89. }