Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormhsanaei <ho3ein.sanaei@gmail.com>2025-09-16 19:28:02 +0300
committermhsanaei <ho3ein.sanaei@gmail.com>2025-09-16 19:28:02 +0300
commitdc21f419327dce4bdb2e8b1f2ce37b2e19cb5e10 (patch)
tree529e7d45b17545f6ec5e2eb092eb49b8c95db50f /web/service
parentf137b1af76c0a6206ea792a39467646f73b043cb (diff)
bug fix: del Depleted
Diffstat (limited to 'web/service')
-rw-r--r--web/service/inbound.go11
1 files changed, 9 insertions, 2 deletions
diff --git a/web/service/inbound.go b/web/service/inbound.go
index d19668af..4abc88c3 100644
--- a/web/service/inbound.go
+++ b/web/service/inbound.go
@@ -1837,8 +1837,14 @@ func (s *InboundService) DelDepletedClients(id int) (err error) {
whereText += "= ?"
}
+ // Only consider truly depleted clients: expired OR traffic exhausted
+ now := time.Now().Unix() * 1000
depletedClients := []xray.ClientTraffic{}
- err = db.Model(xray.ClientTraffic{}).Where(whereText+" and enable = ?", id, false).Select("inbound_id, GROUP_CONCAT(email) as email").Group("inbound_id").Find(&depletedClients).Error
+ err = db.Model(xray.ClientTraffic{}).
+ Where(whereText+" and ((total > 0 and up + down >= total) or (expiry_time > 0 and expiry_time <= ?))", id, now).
+ Select("inbound_id, GROUP_CONCAT(email) as email").
+ Group("inbound_id").
+ Find(&depletedClients).Error
if err != nil {
return err
}
@@ -1889,7 +1895,8 @@ func (s *InboundService) DelDepletedClients(id int) (err error) {
}
}
- err = tx.Where(whereText+" and enable = ?", id, false).Delete(xray.ClientTraffic{}).Error
+ // Delete stats only for truly depleted clients
+ err = tx.Where(whereText+" and ((total > 0 and up + down >= total) or (expiry_time > 0 and expiry_time <= ?))", id, now).Delete(xray.ClientTraffic{}).Error
if err != nil {
return err
}