Files
stat_center/api/proto/refundOrder.go
T
rootandClaude Opus 5 e1674ec96b 退款订单列表增加金额汇总
refundOrder/list 响应增加 totalMoney(单位:分),走 $sum 聚合统计
整个筛选结果的退款金额,而不是当前这一页 —— 按渠道搜出几百笔时
只汇总当页会得出错误金额。

命中数为 0 时直接返回,不再多跑一次聚合和列表查询。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-11-11 17:49:17 +08:00

68 lines
2.6 KiB
Go

package proto
import (
"stat/models/refundOrderMod"
)
// ============ 退款订单管理 ============
// RefundOrderListReq 退款订单查询。所有过滤条件均为可选,不传表示不限制
type RefundOrderListReq struct {
AppId *int32 `json:"appId" form:"appId"` // appId
UserId *uint64 `json:"userId" form:"userId"` // 用户ID
CID *string `json:"cid" form:"cid"` // 订单id
TransNo *string `json:"transNo" form:"transNo"` // 请求订单号
IP *string `json:"ip" form:"ip"` // 下单用户IP
ChannelName *string `json:"channelName" form:"channelName"` // 支付渠道名字
DistrictCode *string `json:"districtCode" form:"districtCode"` // 渠道码
PageNum int64 `json:"pageNum" form:"pageNum" binding:"required,gte=1"`
PageSize int64 `json:"pageSize" form:"pageSize" binding:"required,gte=1,lte=500"`
}
type RefundOrderListResp struct {
Total int64 `json:"total"`
TotalMoney int64 `json:"totalMoney"` // 符合当前筛选条件的共退款金额(单位:分),非仅当前页
List refundOrderMod.RefundOrderList `json:"list"`
}
// RefundOrderItem 一笔待回填的订单。
// cid 用于查 log_recharge 回填数据;transNo 仅作留痕,便于按原始请求订单号追溯。
type RefundOrderItem struct {
CID string `json:"cid" binding:"required"` // 订单id
TransNo string `json:"transNo"` // 请求订单号,可空
IP string `json:"ip"` // 下单用户IP,可空
}
// AddRefundOrderReq 单条新增
type AddRefundOrderReq struct {
CID string `json:"cid" binding:"required"`
TransNo string `json:"transNo"`
IP string `json:"ip"`
}
// BatchAddRefundOrderReq 批量新增
type BatchAddRefundOrderReq struct {
Items []RefundOrderItem `json:"items" binding:"required,min=1,max=200"`
}
// AddRefundOrderResp 回填结果
type AddRefundOrderResp struct {
Matched int64 `json:"matched"` // log_recharge 命中的成功订单数
Inserted int64 `json:"inserted"` // 实际新增条数
Skipped int64 `json:"skipped"` // 因已存在而跳过的条数
Details []RefundCidStat `json:"details"` // 按 cid 分项,单条新增时只有一项
}
type RefundCidStat struct {
CID string `json:"cid"`
TransNo string `json:"transNo"`
Matched int64 `json:"matched"`
Inserted int64 `json:"inserted"`
Skipped int64 `json:"skipped"`
}
// DelRefundOrderReq 按 _id 删除
type DelRefundOrderReq struct {
Id string `json:"id" binding:"required"` // 记录 _id (24位十六进制)
}