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