Small optimization ApierV1.SetTPDerivedChargers

This commit is contained in:
DanB
2017-05-22 11:08:27 +02:00
parent 81464d2364
commit f4a665d185
3 changed files with 45 additions and 42 deletions

View File

@@ -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
}

View File

@@ -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,

View File

@@ -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
}