分销后台前端对接与结算明细接口
- 新增 GET /admin/distribution/settlement-batches/:id/items 明细查询 - distribution-admin 重构为 react-router 多页面:仪表盘/网站/规则(启停)/订单(筛选分页)/结算(创建/明细/结算)/支付通道(绑定解绑)/账号展示(上下架) - axios 统一 401 提示,引导回主站后台登录;金额统一整数分格式化 - npm run build(tsc 严格模式) 通过
This commit is contained in:
@@ -582,3 +582,33 @@ func (r *Repository) CreateFinancialSnapshot(ctx context.Context, adminID, order
|
||||
}
|
||||
return r.FindOrder(ctx, adminID, orderID)
|
||||
}
|
||||
|
||||
func (r *Repository) ListSettlementItems(ctx context.Context, adminID, batchID uint64) ([]SettlementItemDTO, error) {
|
||||
var batch model.DistributionSettlementBatch
|
||||
if err := r.db.WithContext(ctx).First(&batch, batchID).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return nil, ErrSettlementBatchNotFound
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
if err := r.ensureSiteAccess(ctx, adminID, batch.SiteID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var rows []struct {
|
||||
model.DistributionSettlementItem
|
||||
PartyRole string
|
||||
}
|
||||
if err := r.db.WithContext(ctx).
|
||||
Table("distribution_settlement_items i").
|
||||
Select("i.id, i.order_id, i.amount_cent, i.status, p.party_role").
|
||||
Joins("JOIN distribution_order_parties p ON p.id = i.party_id").
|
||||
Where("i.batch_id = ?", batchID).
|
||||
Order("i.id ASC").Scan(&rows).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items := make([]SettlementItemDTO, 0, len(rows))
|
||||
for _, row := range rows {
|
||||
items = append(items, SettlementItemDTO{ID: row.ID, OrderID: row.OrderID, PartyRole: row.PartyRole, AmountCent: row.AmountCent, Status: row.Status})
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user