feat: 定合并的稳定版本
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
"unicode/utf8"
|
||||
@@ -417,3 +418,76 @@ func GiftPayMyPayments(c *gin.Context) {
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"success": true, "list": out})
|
||||
}
|
||||
|
||||
// AdminGiftPayRequestsList GET /api/admin/gift-pay-requests 管理端-代付请求列表
|
||||
func AdminGiftPayRequestsList(c *gin.Context) {
|
||||
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
||||
pageSize, _ := strconv.Atoi(c.DefaultQuery("pageSize", "20"))
|
||||
status := strings.TrimSpace(c.Query("status"))
|
||||
if page < 1 {
|
||||
page = 1
|
||||
}
|
||||
if pageSize < 1 || pageSize > 100 {
|
||||
pageSize = 20
|
||||
}
|
||||
db := database.DB()
|
||||
q := db.Model(&model.GiftPayRequest{})
|
||||
if status != "" {
|
||||
q = q.Where("status = ?", status)
|
||||
}
|
||||
var total int64
|
||||
q.Count(&total)
|
||||
var list []model.GiftPayRequest
|
||||
q.Order("created_at DESC").Offset((page - 1) * pageSize).Limit(pageSize).Find(&list)
|
||||
userIDs := make(map[string]bool)
|
||||
for _, r := range list {
|
||||
userIDs[r.InitiatorUserID] = true
|
||||
if r.PayerUserID != nil && *r.PayerUserID != "" {
|
||||
userIDs[*r.PayerUserID] = true
|
||||
}
|
||||
}
|
||||
nicknames := make(map[string]string)
|
||||
if len(userIDs) > 0 {
|
||||
ids := make([]string, 0, len(userIDs))
|
||||
for id := range userIDs {
|
||||
ids = append(ids, id)
|
||||
}
|
||||
var users []model.User
|
||||
db.Select("id, nickname").Where("id IN ?", ids).Find(&users)
|
||||
for _, u := range users {
|
||||
if u.Nickname != nil {
|
||||
nicknames[u.ID] = *u.Nickname
|
||||
}
|
||||
}
|
||||
}
|
||||
out := make([]gin.H, 0, len(list))
|
||||
for _, r := range list {
|
||||
initiatorNick := nicknames[r.InitiatorUserID]
|
||||
payerNick := ""
|
||||
if r.PayerUserID != nil {
|
||||
payerNick = nicknames[*r.PayerUserID]
|
||||
}
|
||||
orderID := ""
|
||||
if r.OrderID != nil {
|
||||
orderID = *r.OrderID
|
||||
}
|
||||
out = append(out, gin.H{
|
||||
"id": r.ID,
|
||||
"requestSn": r.RequestSN,
|
||||
"initiatorUserId": r.InitiatorUserID,
|
||||
"initiatorNick": initiatorNick,
|
||||
"productType": r.ProductType,
|
||||
"productId": r.ProductID,
|
||||
"amount": r.Amount,
|
||||
"description": r.Description,
|
||||
"status": r.Status,
|
||||
"payerUserId": r.PayerUserID,
|
||||
"payerNick": payerNick,
|
||||
"orderId": orderID,
|
||||
"expireAt": r.ExpireAt,
|
||||
"createdAt": r.CreatedAt,
|
||||
"updatedAt": r.UpdatedAt,
|
||||
})
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"success": true, "data": out, "total": total})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user