feat(Go-Tool):

2020/12/31:新增项目案例(角色技能树)
               2020/12/31: 修改diliver包结构
This commit is contained in:
Huangzj
2020-12-31 14:25:25 +08:00
parent 84b5787dd8
commit f3c056f84e
23 changed files with 738 additions and 9 deletions
+49
View File
@@ -0,0 +1,49 @@
/*
* @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
}