Improvements to set all endedOn/leftOn when meeting is ended
This commit is contained in:
parent
8346f1d9cf
commit
fd4761374f
@ -338,15 +338,29 @@ class ActivityTrackerActor(
|
|||||||
for {
|
for {
|
||||||
meeting <- meetings.values.find(m => m.intId == msg.body.meetingId)
|
meeting <- meetings.values.find(m => m.intId == msg.body.meetingId)
|
||||||
} yield {
|
} yield {
|
||||||
|
//Update endedOn and screenshares.stoppedOn, user.totalTime talks, webcams.stoppedOn
|
||||||
//Update endedOn
|
|
||||||
val endedOn : Long = System.currentTimeMillis()
|
val endedOn : Long = System.currentTimeMillis()
|
||||||
var updatedMeeting = meeting.copy(endedOn = endedOn)
|
val updatedMeeting = meeting.copy(
|
||||||
|
endedOn = endedOn,
|
||||||
//Set all users leftOn
|
screenshares = meeting.screenshares.map(screenshare => {
|
||||||
updatedMeeting.users.values.filter(u => u.leftOn == 0).map(user => {
|
if(screenshare.stoppedOn > 0) screenshare;
|
||||||
updatedMeeting = updatedMeeting.copy(users = updatedMeeting.users + (user.intId -> user.copy(leftOn = endedOn)))
|
else screenshare.copy(stoppedOn = endedOn)
|
||||||
|
}),
|
||||||
|
users = meeting.users.map(user => {
|
||||||
|
(user._1 ->
|
||||||
|
user._2.copy(
|
||||||
|
leftOn = if(user._2.leftOn > 0) user._2.leftOn else endedOn,
|
||||||
|
talk = user._2.talk.copy(
|
||||||
|
totalTime = user._2.talk.totalTime + (if (user._2.talk.lastTalkStartedOn > 0) (endedOn - user._2.talk.lastTalkStartedOn) else 0),
|
||||||
|
lastTalkStartedOn = 0
|
||||||
|
),
|
||||||
|
webcams = user._2.webcams.map(webcam => {
|
||||||
|
if(webcam.stoppedOn > 0) webcam
|
||||||
|
else webcam.copy(stoppedOn = endedOn)
|
||||||
|
})
|
||||||
|
))
|
||||||
})
|
})
|
||||||
|
)
|
||||||
|
|
||||||
meetings += (updatedMeeting.intId -> updatedMeeting)
|
meetings += (updatedMeeting.intId -> updatedMeeting)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user