mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-14 20:59:53 +05:00
Small optimization ApierV1.SetTPDerivedChargers
This commit is contained in:
@@ -1194,46 +1194,33 @@ func MapTPDerivedChargers(s []*utils.TPDerivedChargers) (map[string]*utils.TPDer
|
||||
}
|
||||
|
||||
func APItoModelDerivedCharger(dcs *utils.TPDerivedChargers) (result TpDerivedChargers) {
|
||||
if dcs != nil {
|
||||
for _, dc := range dcs.DerivedChargers {
|
||||
result = append(result, TpDerivedCharger{
|
||||
Tpid: dcs.TPid,
|
||||
Loadid: dcs.LoadId,
|
||||
Direction: dcs.Direction,
|
||||
Tenant: dcs.Tenant,
|
||||
Category: dcs.Category,
|
||||
Account: dcs.Account,
|
||||
Subject: dcs.Subject,
|
||||
Runid: dc.RunId,
|
||||
RunFilters: dc.RunFilters,
|
||||
ReqTypeField: dc.ReqTypeField,
|
||||
DirectionField: dc.DirectionField,
|
||||
TenantField: dc.TenantField,
|
||||
CategoryField: dc.CategoryField,
|
||||
AccountField: dc.AccountField,
|
||||
SubjectField: dc.SubjectField,
|
||||
PddField: dc.PddField,
|
||||
DestinationField: dc.DestinationField,
|
||||
SetupTimeField: dc.SetupTimeField,
|
||||
AnswerTimeField: dc.AnswerTimeField,
|
||||
UsageField: dc.UsageField,
|
||||
SupplierField: dc.SupplierField,
|
||||
DisconnectCauseField: dc.DisconnectCauseField,
|
||||
CostField: dc.CostField,
|
||||
RatedField: dc.RatedField,
|
||||
})
|
||||
}
|
||||
if len(dcs.DerivedChargers) == 0 {
|
||||
result = append(result, TpDerivedCharger{
|
||||
Tpid: dcs.TPid,
|
||||
Loadid: dcs.LoadId,
|
||||
Direction: dcs.Direction,
|
||||
Tenant: dcs.Tenant,
|
||||
Category: dcs.Category,
|
||||
Account: dcs.Account,
|
||||
Subject: dcs.Subject,
|
||||
})
|
||||
}
|
||||
for _, dc := range dcs.DerivedChargers {
|
||||
result = append(result, TpDerivedCharger{
|
||||
Tpid: dcs.TPid,
|
||||
Loadid: dcs.LoadId,
|
||||
Direction: dcs.Direction,
|
||||
Tenant: dcs.Tenant,
|
||||
Category: dcs.Category,
|
||||
Account: dcs.Account,
|
||||
Subject: dcs.Subject,
|
||||
Runid: dc.RunId,
|
||||
RunFilters: dc.RunFilters,
|
||||
ReqTypeField: dc.ReqTypeField,
|
||||
DirectionField: dc.DirectionField,
|
||||
TenantField: dc.TenantField,
|
||||
CategoryField: dc.CategoryField,
|
||||
AccountField: dc.AccountField,
|
||||
SubjectField: dc.SubjectField,
|
||||
PddField: dc.PddField,
|
||||
DestinationField: dc.DestinationField,
|
||||
SetupTimeField: dc.SetupTimeField,
|
||||
AnswerTimeField: dc.AnswerTimeField,
|
||||
UsageField: dc.UsageField,
|
||||
SupplierField: dc.SupplierField,
|
||||
DisconnectCauseField: dc.DisconnectCauseField,
|
||||
CostField: dc.CostField,
|
||||
RatedField: dc.RatedField,
|
||||
})
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -406,8 +406,9 @@ func (self *SQLStorage) SetTPDerivedChargers(sgs []*utils.TPDerivedChargers) err
|
||||
m := make(map[string]bool)
|
||||
tx := self.db.Begin()
|
||||
for _, dCharger := range sgs {
|
||||
if found, _ := m[dCharger.Direction]; !found {
|
||||
m[dCharger.Direction] = true
|
||||
dcKey := dCharger.GetDerivedChargersKey()
|
||||
if found, _ := m[dcKey]; !found {
|
||||
m[dcKey] = true
|
||||
if err := tx.Delete(TpDerivedCharger{
|
||||
Tpid: dCharger.TPid,
|
||||
Direction: dCharger.Direction,
|
||||
|
||||
@@ -140,3 +140,18 @@ type AttrCDRSStoreSMCost struct {
|
||||
Cost *SMCost
|
||||
CheckDuplicate bool
|
||||
}
|
||||
|
||||
type ArgsCDRSStoreSMCost struct {
|
||||
Cost *V2SMCost
|
||||
CheckDuplicate bool
|
||||
}
|
||||
|
||||
type V2SMCost struct {
|
||||
CGRID string
|
||||
RunID string
|
||||
OriginHost string
|
||||
OriginID string
|
||||
CostSource string
|
||||
Usage float64
|
||||
CostDetails *EventCost
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user