package v1 import ( "github.com/gogf/gf/v2/frame/g" userv1 "tool-api/api/user/v1" ) // ============================================================================ // 管理端「用户详情抽屉」聚合契约(A-new1):GET /user/detail // // 一次拉全:基础信息 / 额度 / 订单 / 笔记(仅标题·时间·提醒态) / 等级变更 / 优惠券。 // 复用用户端已定义的 QuotaToolOut 与 UserCouponItem(跨包 import,无循环依赖)。 // ============================================================================ // UserDetailBase 用户基础信息 type UserDetailBase struct { Id int64 `json:"id"` Nickname string `json:"nickname"` AvatarUrl string `json:"avatar_url"` Openid string `json:"openid"` LevelKey string `json:"level_key"` LevelName string `json:"level_name"` LevelExpireAt string `json:"level_expire_at"` // 空 = 永久 Status int `json:"status"` UsageCount int64 `json:"usage_count"` CreatedAt string `json:"created_at"` } // OrderBrief 订单摘要(含优惠凭证字段) type OrderBrief struct { OutTradeNo string `json:"out_trade_no"` Title string `json:"title"` OrderType int `json:"order_type"` OriginPriceCents int64 `json:"origin_price_cents"` PaidPriceCents int64 `json:"paid_price_cents"` DiscountCents int64 `json:"discount_cents"` PromoKind int `json:"promo_kind"` Status int `json:"status"` StatusText string `json:"status_text"` CreatedAt string `json:"created_at"` DeliveredAt string `json:"delivered_at"` } // NoteBrief 笔记摘要(**不含正文**) type NoteBrief struct { Id int64 `json:"id"` Title string `json:"title"` RemindStatus int `json:"remind_status"` RemindAt string `json:"remind_at"` CreatedAt string `json:"created_at"` } // LevelLogItem 等级变更记录(取自操作审计) type LevelLogItem struct { At string `json:"at"` BeforeLevel string `json:"before_level"` AfterLevel string `json:"after_level"` Operator string `json:"operator"` Remark string `json:"remark"` } // UserDetailReq 用户详情聚合 type UserDetailReq struct { g.Meta `path:"/user/detail" method:"get" tags:"admin" summary:"用户详情(额度/订单/笔记/等级变更/券)"` UserId int64 `v:"required" json:"userId"` } type UserDetailRes struct { User UserDetailBase `json:"user"` Quotas []userv1.QuotaToolOut `json:"quotas"` Orders []OrderBrief `json:"orders"` Notes []NoteBrief `json:"notes"` LevelLogs []LevelLogItem `json:"level_logs"` Coupons []userv1.UserCouponItem `json:"coupons"` }