Files
Huangzj f3c056f84e feat(Go-Tool):
2020/12/31:新增项目案例(角色技能树)
               2020/12/31: 修改diliver包结构
2020-12-31 14:25:25 +08:00

50 lines
1.2 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* @Author : huangzj
* @Time : 2020/11/16 18:00
* @Description
*/
package diliver
import "github.com/ahmetb/go-linq"
type orderRule = func([]*Deliver) []*Deliver
type intOrderRule = func([]*Deliver) [][]int
var (
firstOrderRule orderRule
secondOrderRule orderRule
thirdOrderRule intOrderRule
)
func FirstOrderRule(delivers []*Deliver) []*Deliver {
var newDelivers []*Deliver
linq.From(delivers).OrderByDescending(func(d interface{}) interface{} {
return d.(*Deliver).Score
}).ToSlice(&newDelivers)
return newDelivers
}
func SecondOrderRule(delivers []*Deliver) []*Deliver {
newDeliver := make([]*Deliver, 0)
//第二次排序
linq.From(delivers).OrderByDescending(func(d interface{}) interface{} {
return d.(*Deliver).Score
}).ThenBy(func(d interface{}) interface{} {
return d.(*Deliver).Id
}).ToSlice(&newDeliver)
return newDeliver
}
func ThirdOrderRule(delivers []*Deliver) [][]int {
Ids := make([][]int, 0)
//第三次排序
linq.From(delivers).OrderByDescending(func(d interface{}) interface{} {
return d.(*Deliver).Score
}).Select(func(i interface{}) interface{} {
return []int{i.(*Deliver).Score, 1}
}).ToSlice(&Ids)
return Ids
}