|
@@ -716,9 +716,15 @@ func (s *InboundService) addInboundTraffic(tx *gorm.DB, traffics []*xray.Traffic
|
|
|
|
|
|
func (s *InboundService) addClientTraffic(tx *gorm.DB, traffics []*xray.ClientTraffic) (err error) {
|
|
|
if len(traffics) == 0 {
|
|
|
+ // Empty onlineUsers
|
|
|
+ if p != nil {
|
|
|
+ p.SetOnlineClients(nil)
|
|
|
+ }
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+ var onlineClients []string
|
|
|
+
|
|
|
emails := make([]string, 0, len(traffics))
|
|
|
for _, traffic := range traffics {
|
|
|
emails = append(emails, traffic.Email)
|
|
@@ -744,11 +750,19 @@ func (s *InboundService) addClientTraffic(tx *gorm.DB, traffics []*xray.ClientTr
|
|
|
if dbClientTraffics[dbTraffic_index].Email == traffics[traffic_index].Email {
|
|
|
dbClientTraffics[dbTraffic_index].Up += traffics[traffic_index].Up
|
|
|
dbClientTraffics[dbTraffic_index].Down += traffics[traffic_index].Down
|
|
|
+
|
|
|
+ // Add user in onlineUsers array on traffic
|
|
|
+ if traffics[traffic_index].Up+traffics[traffic_index].Down > 0 {
|
|
|
+ onlineClients = append(onlineClients, traffics[traffic_index].Email)
|
|
|
+ }
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // Set onlineUsers
|
|
|
+ p.SetOnlineClients(onlineClients)
|
|
|
+
|
|
|
err = tx.Save(dbClientTraffics).Error
|
|
|
if err != nil {
|
|
|
logger.Warning("AddClientTraffic update data ", err)
|
|
@@ -1675,3 +1689,7 @@ func (s *InboundService) MigrateDB() {
|
|
|
s.MigrationRequirements()
|
|
|
s.MigrationRemoveOrphanedTraffics()
|
|
|
}
|
|
|
+
|
|
|
+func (s *InboundService) GetOnlineClinets() []string {
|
|
|
+ return p.GetOnlineClients()
|
|
|
+}
|