Compare commits

..

No commits in common. "c25157b66170a39f8648f21e996e49a7d312410d" and "f43679425686ef0a9359d587a19f9f3472c6d3c0" have entirely different histories.

View File

@ -480,19 +480,23 @@ func OrderRecordsListV2(req *bundle.OrderRecordsRequestV2) (res *bundle.OrderRec
// 构建子订单 map按 orderAddNo 聚合 // 构建子订单 map按 orderAddNo 聚合
addMap := make(map[string]*bundle.OrderAddBundleRecordInfo) addMap := make(map[string]*bundle.OrderAddBundleRecordInfo)
subAmountMap := make(map[string]float32)
for _, sub := range record.BundleOrderValueAdd { for _, sub := range record.BundleOrderValueAdd {
orderAddNo := sub.OrderNo orderAddNo := sub.OrderNo
amount := float32(sub.Amount)
subAmountMap[orderAddNo] += amount // SettlementAmount 规则
settlementAmount := float32(sub.Amount)
if sub.OrderNo == record.OrderNo {
settlementAmount = record.TotalAmount
}
if existing, ok := addMap[orderAddNo]; ok { if existing, ok := addMap[orderAddNo]; ok {
existing.Amount += amount existing.Amount += float32(sub.Amount)
existing.SettlementAmount += settlementAmount
} else { } else {
addMap[orderAddNo] = &bundle.OrderAddBundleRecordInfo{ addMap[orderAddNo] = &bundle.OrderAddBundleRecordInfo{
OrderAddNo: orderAddNo, OrderAddNo: orderAddNo,
Amount: amount, Amount: float32(sub.Amount),
//SettlementAmount: settlementAmount, SettlementAmount: settlementAmount,
CurrencyType: int32(sub.CurrencyType), CurrencyType: int32(sub.CurrencyType),
//HandlingFee: float32(sub.HandlingFee), //HandlingFee: float32(sub.HandlingFee),
//ExchangeRate: float32(sub.ExchangeRate), //ExchangeRate: float32(sub.ExchangeRate),
@ -505,14 +509,10 @@ func OrderRecordsListV2(req *bundle.OrderRecordsRequestV2) (res *bundle.OrderRec
} }
} }
} }
// 第二步:设置 SettlementAmount
for orderAddNo, addInfo := range addMap { // 将聚合后的子订单添加到主订单返回结构中
settlementAmount := subAmountMap[orderAddNo] for _, v := range addMap {
if orderAddNo == record.OrderNo { orderItem.AddBundleInfo = append(orderItem.AddBundleInfo, v)
settlementAmount += record.TotalAmount
}
addInfo.SettlementAmount = settlementAmount
orderItem.AddBundleInfo = append(orderItem.AddBundleInfo, addInfo)
} }
res.BundleInfo = append(res.BundleInfo, orderItem) res.BundleInfo = append(res.BundleInfo, orderItem)
} }
@ -609,7 +609,7 @@ func GetReconciliationList(req *bundle.GetReconciliationListReq) (*bundle.GetRec
return res, nil return res, nil
} }
offset := (req.Page - 1) * req.PageSize offset := (req.Page - 1) * req.PageSize
if err := modelObj.Offset(int(offset)).Limit(int(req.PageSize)).Order("created_at desc").Find(&records).Error; err != nil { if err := modelObj.Offset(int(offset)).Limit(int(req.PageSize)).Find(&records).Error; err != nil {
return nil, fmt.Errorf("查询记录失败: %v", err) return nil, fmt.Errorf("查询记录失败: %v", err)
} }