diff --git a/usecases/items/result.go b/usecases/items/result.go index 76fe372..fbe8595 100644 --- a/usecases/items/result.go +++ b/usecases/items/result.go @@ -3,7 +3,6 @@ package items import ( "git.aiterp.net/stufflog3/stufflog3/entities" "git.aiterp.net/stufflog3/stufflog3/usecases/scopes" - "sort" ) type Result struct { @@ -53,13 +52,22 @@ func (r *Result) AddStat(scope scopes.Result, stat entities.ItemStat) { Acquired: stat.Acquired, Required: stat.Required, }) - r.SortStats() + r.SortStats(scope) } -func (r *Result) SortStats() { - sort.Slice(r.Stats, func(i, j int) bool { - return r.Stats[i].Name < r.Stats[j].Name - }) +func (r *Result) SortStats(scope scopes.Result) { + sortedStats := make([]ResultStat, 0, len(r.Stats)) + + for _, scopeStat := range scope.Stats { + for _, itemStat := range r.Stats { + if itemStat.ID == scopeStat.ID { + sortedStats = append(sortedStats, itemStat) + break + } + } + } + + r.Stats = sortedStats } func (r *Result) RemoveStat(id int) { @@ -112,7 +120,7 @@ func generateResult(item entities.Item, scope scopes.Result, progresses []entiti } } - res.SortStats() + res.SortStats(scope) return res }