修复admin卡密统计GORM累积条件问题、data-table传递server-pagination
This commit is contained in:
@@ -446,27 +446,24 @@ func handleGetCards(c *gin.Context) {
|
||||
var total int64
|
||||
query.Count(&total)
|
||||
|
||||
baseQuery := database.DB.Model(&model.Card{}).
|
||||
Joins("JOIN card_types ON cards.card_type_id = card_types.id").
|
||||
Joins("JOIN applications ON card_types.application_id = applications.id")
|
||||
|
||||
if len(authorizedAppIDs) > 0 {
|
||||
baseQuery = baseQuery.Where("applications.user_id = ? OR (cards.application_id IN ? AND cards.creator_id = ?)", userID, authorizedAppIDs, userID)
|
||||
} else {
|
||||
baseQuery = baseQuery.Where("applications.user_id = ?", userID)
|
||||
countBase := func(status string) int64 {
|
||||
var count int64
|
||||
q := database.DB.Model(&model.Card{}).
|
||||
Joins("JOIN card_types ON cards.card_type_id = card_types.id").
|
||||
Joins("JOIN applications ON card_types.application_id = applications.id")
|
||||
if len(authorizedAppIDs) > 0 {
|
||||
q = q.Where("applications.user_id = ? OR (cards.application_id IN ? AND cards.creator_id = ?)", userID, authorizedAppIDs, userID)
|
||||
} else {
|
||||
q = q.Where("applications.user_id = ?", userID)
|
||||
}
|
||||
q.Where("cards.status = ?", status).Count(&count)
|
||||
return count
|
||||
}
|
||||
|
||||
var unusedCount int64
|
||||
baseQuery.Where("cards.status = ?", "unused").Count(&unusedCount)
|
||||
|
||||
var usedCount int64
|
||||
baseQuery.Where("cards.status = ?", "used").Count(&usedCount)
|
||||
|
||||
var bannedCount int64
|
||||
baseQuery.Where("cards.status = ?", "banned").Count(&bannedCount)
|
||||
|
||||
var expiredCount int64
|
||||
baseQuery.Where("cards.status = ?", "expired").Count(&expiredCount)
|
||||
unusedCount := countBase("unused")
|
||||
usedCount := countBase("used")
|
||||
bannedCount := countBase("banned")
|
||||
expiredCount := countBase("expired")
|
||||
|
||||
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
||||
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "20"))
|
||||
|
||||
Reference in New Issue
Block a user