修复: 1.管理员编辑代理云端数据权限switch无效(后端缺少CanViewCloudData字段) 2.代理卡密status显示disabledbanned 3.代理用户管理只显示代理/子代理卡密充值过的用户
This commit is contained in:
@@ -181,8 +181,8 @@ func handleGetCards(c *gin.Context) {
|
||||
var expiredCount int64
|
||||
database.DB.Model(&model.Card{}).Where("("+baseCondition+") AND status = ?", userID, userID, "expired").Count(&expiredCount)
|
||||
|
||||
var disabledCount int64
|
||||
database.DB.Model(&model.Card{}).Where("("+baseCondition+") AND status = ?", userID, userID, "disabled").Count(&disabledCount)
|
||||
var bannedCount int64
|
||||
database.DB.Model(&model.Card{}).Where("("+baseCondition+") AND status = ?", userID, userID, "banned").Count(&bannedCount)
|
||||
|
||||
query := database.DB.Model(&model.Card{}).Where(baseCondition, userID, userID)
|
||||
|
||||
@@ -283,7 +283,7 @@ func handleGetCards(c *gin.Context) {
|
||||
"unused_count": unusedCount,
|
||||
"used_count": usedCount,
|
||||
"expired_count": expiredCount,
|
||||
"disabled_count": disabledCount,
|
||||
"banned_count": bannedCount,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -412,17 +412,40 @@ func generateCardCode() string {
|
||||
func handleGetUsers(c *gin.Context) {
|
||||
userID := c.GetUint("user_id")
|
||||
|
||||
var agentApps []model.AgentApplication
|
||||
database.DB.Where("agent_id = ?", userID).Find(&agentApps)
|
||||
appIDs := make([]uint, 0)
|
||||
for _, app := range agentApps {
|
||||
appIDs = append(appIDs, app.ApplicationID)
|
||||
agentIDs := []uint{userID}
|
||||
var childAgents []model.User
|
||||
database.DB.Where("parent_agent_id = ? AND role = ?", userID, "agent").Find(&childAgents)
|
||||
for _, child := range childAgents {
|
||||
agentIDs = append(agentIDs, child.ID)
|
||||
}
|
||||
|
||||
if len(appIDs) == 0 {
|
||||
var cardIDs []uint
|
||||
database.DB.Model(&model.Card{}).Where("agent_id IN ?", agentIDs).Pluck("id", &cardIDs)
|
||||
|
||||
if len(cardIDs) == 0 {
|
||||
response.Success(c, gin.H{
|
||||
"users": []interface{}{},
|
||||
"total": 0,
|
||||
"users": []interface{}{},
|
||||
"total": 0,
|
||||
"active_count": 0,
|
||||
"disabled_count": 0,
|
||||
"banned_count": 0,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
var appUserIDs []uint
|
||||
database.DB.Model(&model.RechargeRecord{}).
|
||||
Where("card_id IN ? AND status = ?", cardIDs, "success").
|
||||
Distinct("user_id").
|
||||
Pluck("user_id", &appUserIDs)
|
||||
|
||||
if len(appUserIDs) == 0 {
|
||||
response.Success(c, gin.H{
|
||||
"users": []interface{}{},
|
||||
"total": 0,
|
||||
"active_count": 0,
|
||||
"disabled_count": 0,
|
||||
"banned_count": 0,
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -431,12 +454,12 @@ func handleGetUsers(c *gin.Context) {
|
||||
pageSize := c.DefaultQuery("page_size", "20")
|
||||
|
||||
var total int64
|
||||
database.DB.Model(&model.AppUser{}).Where("application_id IN ?", appIDs).Count(&total)
|
||||
database.DB.Model(&model.AppUser{}).Where("id IN ?", appUserIDs).Count(&total)
|
||||
|
||||
var activeCount, disabledCount, bannedCount int64
|
||||
database.DB.Model(&model.AppUser{}).Where("application_id IN ? AND status = ?", appIDs, "active").Count(&activeCount)
|
||||
database.DB.Model(&model.AppUser{}).Where("application_id IN ? AND status = ?", appIDs, "disabled").Count(&disabledCount)
|
||||
database.DB.Model(&model.AppUser{}).Where("application_id IN ? AND status = ?", appIDs, "banned").Count(&bannedCount)
|
||||
database.DB.Model(&model.AppUser{}).Where("id IN ? AND status = ?", appUserIDs, "active").Count(&activeCount)
|
||||
database.DB.Model(&model.AppUser{}).Where("id IN ? AND status = ?", appUserIDs, "disabled").Count(&disabledCount)
|
||||
database.DB.Model(&model.AppUser{}).Where("id IN ? AND status = ?", appUserIDs, "banned").Count(&bannedCount)
|
||||
|
||||
var users []model.AppUser
|
||||
offset := 0
|
||||
@@ -449,7 +472,7 @@ func handleGetUsers(c *gin.Context) {
|
||||
limit = pageSizeInt
|
||||
}
|
||||
|
||||
database.DB.Where("application_id IN ?", appIDs).Order("created_at DESC").Limit(limit).Offset(offset).Find(&users)
|
||||
database.DB.Where("id IN ?", appUserIDs).Order("created_at DESC").Limit(limit).Offset(offset).Find(&users)
|
||||
|
||||
response.Success(c, gin.H{
|
||||
"users": users,
|
||||
@@ -710,7 +733,7 @@ func handleExportCards(c *gin.Context) {
|
||||
for _, card := range cards {
|
||||
ct := cardTypeMap[card.CardTypeID]
|
||||
app := appMap[card.ApplicationID]
|
||||
statusMap := map[string]string{"unused": "未使用", "used": "已使用", "expired": "已过期", "disabled": "已禁用"}
|
||||
statusMap := map[string]string{"unused": "未使用", "used": "已使用", "expired": "已过期", "banned": "已禁用"}
|
||||
statusText := statusMap[card.Status]
|
||||
if statusText == "" {
|
||||
statusText = card.Status
|
||||
|
||||
Reference in New Issue
Block a user