feat: add object storage and points leaderboard

This commit is contained in:
richjohnrambo
2026-10-18 18:11:34 +08:00
parent bce5edfaf5
commit b79b781f15
24 changed files with 359 additions and 212 deletions
+6 -6
View File
@@ -68,10 +68,10 @@ type TaskSummary struct {
}
type LeaderboardMember struct {
MemberID int64 `db:"member_id"`
Username string `db:"username"`
AvatarURL string `db:"avatar_url"`
CompletedCount int64 `db:"completed_count"`
MemberID int64 `db:"member_id"`
Username string `db:"username"`
AvatarURL string `db:"avatar_url"`
ClaimedPoints int64 `db:"claimed_points"`
}
type CustomerService struct {
@@ -250,7 +250,7 @@ func (s *Store) TaskLeaderboard(ctx context.Context, tenantID int64, limit int)
}
rows := make([]LeaderboardMember, 0)
err := s.db.SelectContext(ctx, &rows, `SELECT m.id AS member_id,m.username,
COALESCE(a.file_url,'') AS avatar_url,COUNT(o.id) AS completed_count
COALESCE(a.file_url,'') AS avatar_url,COALESCE(SUM(o.total_amount),0) AS claimed_points
FROM hg_app_member m
LEFT JOIN hg_app_member_profile p ON p.tenant_id=m.tenant_id AND p.member_id=m.id
LEFT JOIN hg_sys_attachment a ON a.id=p.avatar_attachment_id AND a.status=1
@@ -258,7 +258,7 @@ func (s *Store) TaskLeaderboard(ctx context.Context, tenantID int64, limit int)
AND o.order_type=2 AND o.order_status=4
WHERE m.tenant_id=? AND m.member_status=1 AND m.deleted_at IS NULL
GROUP BY m.id,m.username,a.file_url
ORDER BY completed_count DESC,m.id ASC LIMIT ?`, tenantID, limit)
ORDER BY claimed_points DESC,m.id ASC LIMIT ?`, tenantID, limit)
return rows, err
}