RoomVisitLogServiceImpl.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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(String roomId,Integer roomUserId, String userId,Integer type,Integer isHost) {
  24. RoomVisitLog roomVisitLog = this.getByLiveIdAndUserId(roomId,roomUserId,userId,type);
  25. if(roomVisitLog == null){
  26. roomVisitLog = new RoomVisitLog();
  27. roomVisitLog.setRoomId(roomId);
  28. roomVisitLog.setRoomUserId(roomUserId);
  29. roomVisitLog.setVisitUserId(userId);
  30. roomVisitLog.setIsHost(isHost);
  31. roomVisitLog.setInRoomTime(new Date());
  32. }
  33. if(type == 1){
  34. roomVisitLog.setUpdateTime(null);
  35. roomVisitLog.setOutRoomTime(new Date());
  36. }
  37. this.saveOrUpdate(roomVisitLog);
  38. }
  39. @Override
  40. public void stopRoom(String roomId,Integer roomUserId) {
  41. LambdaUpdateWrapper<RoomVisitLog> wrapper = new LambdaUpdateWrapper<>();
  42. wrapper.eq(RoomVisitLog::getRoomId,roomId);
  43. if(roomUserId !=null){
  44. wrapper.eq(RoomVisitLog::getRoomUserId,roomUserId);
  45. }else {
  46. wrapper.isNull(RoomVisitLog::getRoomUserId);
  47. }
  48. wrapper.isNull(RoomVisitLog::getOutRoomTime);
  49. wrapper.set(RoomVisitLog::getOutRoomTime,new Date());
  50. this.update(wrapper);
  51. }
  52. private RoomVisitLog getByLiveIdAndUserId(String roomId,Integer roomUserId, String userId,Integer type) {
  53. LambdaQueryWrapper<RoomVisitLog> wrapper = new LambdaQueryWrapper<>();
  54. wrapper.eq(RoomVisitLog::getRoomId,roomId);
  55. if(roomUserId !=null){
  56. wrapper.eq(RoomVisitLog::getRoomUserId,roomUserId);
  57. }else {
  58. wrapper.isNull(RoomVisitLog::getRoomUserId);
  59. }
  60. wrapper.eq(RoomVisitLog::getVisitUserId,userId);
  61. if(type == 0){
  62. wrapper.isNull(RoomVisitLog::getInRoomTime);
  63. wrapper.orderByDesc(RoomVisitLog::getInRoomTime);
  64. }
  65. if(type == 1){
  66. wrapper.isNull(RoomVisitLog::getOutRoomTime);
  67. wrapper.orderByDesc(RoomVisitLog::getOutRoomTime);
  68. }
  69. List<RoomVisitLog> list = this.list(wrapper);
  70. if(list != null && list.size() >0){
  71. return list.get(0);
  72. }
  73. return null;
  74. }
  75. @Override
  76. public Long manCount(List<String> roomIds) {
  77. return this.getBaseMapper().manCount(roomIds);
  78. }
  79. @Override
  80. public Long getCountByTime(Integer key,List<String> roomIds) {
  81. return this.getBaseMapper().getCountByTime(key,roomIds);
  82. }
  83. @Override
  84. public List<DataCount> getByGroupRoomId(String tb,List<String> roomIds, String startTime, String endTime) {
  85. return this.getBaseMapper().getByGroupRoomId(tb,roomIds,startTime,endTime);
  86. }
  87. @Override
  88. public List<DataCount> getByDGroupRoomId(String tb,List<String> roomIds, String startTime, String endTime) {
  89. return this.getBaseMapper().getByDGroupRoomId(tb,roomIds,startTime,endTime);
  90. }
  91. @Override
  92. public List<DataCount> getGroupByRoomId() {
  93. return this.getBaseMapper().getGroupByRoomId();
  94. }
  95. @Override
  96. public List<RoomVisitLog> getByRoomId(String roomId) {
  97. LambdaQueryWrapper<RoomVisitLog> wrapper = new LambdaQueryWrapper<>();
  98. wrapper.eq(RoomVisitLog::getRoomId,roomId);
  99. wrapper.eq(RoomVisitLog::getIsHost,1);
  100. wrapper.isNotNull(RoomVisitLog::getOutRoomTime);
  101. return this.list(wrapper);
  102. }
  103. @Override
  104. public List<DataCount> getDataCountTop5(List<String> roomIds) {
  105. return this.getBaseMapper().getDataCountTop5(roomIds);
  106. }
  107. }