12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package service
- import (
- "fmt"
- "time"
- "gitlab.alibaba-inc.com/pai_biz_arch/pairec/context"
- "gitlab.alibaba-inc.com/pai_biz_arch/pairec/filter"
- "gitlab.alibaba-inc.com/pai_biz_arch/pairec/log"
- "gitlab.alibaba-inc.com/pai_biz_arch/pairec/module"
- "gitlab.alibaba-inc.com/pai_biz_arch/pairec/sort"
- "gitlab.alibaba-inc.com/pai_biz_arch/pairec/utils"
- )
- type RecommendService struct {
- }
- func (s *RecommendService) GetUID(context *context.RecommendContext) module.UID {
- uid := context.GetParameter("uid")
- if uid == nil {
- uid = ""
- }
- userId := module.UID(uid.(string))
- return userId
- }
- func (s *RecommendService) Filter(uid module.UID, items []*module.Item, context *context.RecommendContext) []*module.Item {
- start := time.Now()
- filterData := filter.FilterData{Data: items, Uid: uid, Context: context}
- filter.Filter(&filterData, "")
- log.Info(fmt.Sprintf("requestId=%s\tmodule=Filter\tcost=%d", context.RecommendId, utils.CostTime(start)))
- return filterData.Data.([]*module.Item)
- }
- func (s *RecommendService) Sort(items []*module.Item, context *context.RecommendContext) []*module.Item {
- sortData := sort.SortData{Data: items, Context: context}
- sort.Sort(&sortData, "")
- return sortData.Data.([]*module.Item)
- }
- func (s *RecommendService) PreSort(items []*module.Item, context *context.RecommendContext) []*module.Item {
- sortData := sort.SortData{Data: items, Context: context}
- sort.Sort(&sortData, "_PreSort")
- return sortData.Data.([]*module.Item)
- }
|