123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package util
- import (
- "context"
- "fmt"
- "github.com/spf13/viper"
- "github.com/zhenghaoz/gorse/client"
- "time"
- )
- var gorse *client.GorseClient
- func init() {
- gorse = client.NewGorseClient(viper.GetString("gorse.addr"), "")
- }
- func GetTime(tie uint) string {
- t := time.Unix(int64(tie), 0)
- date := t.Format("2006-01-02")
- return date
- }
- func Recommend(uid, goodsId, tie uint) {
- ctx, cancel := context.WithTimeout(context.Background(), time.Second*100)
- defer cancel()
- date := GetTime(tie)
- aff, err := gorse.InsertFeedback(ctx, []client.Feedback{
- {FeedbackType: "star",
- UserId: fmt.Sprintf("%d", uid),
- ItemId: fmt.Sprintf("%d", goodsId),
- Timestamp: date},
- })
- if err != nil {
- fmt.Println("[recommend] ======>>> " + err.Error())
- return
- }
- fmt.Printf("[recommend] ======>>> %dfeedback success\n", aff)
- }
- func GetRecommend(uid uint, cnt int) (goods []string, err error) {
- ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
- defer cancel()
- category, err := gorse.GetItemRecommendWithCategory(ctx, fmt.Sprintf("%d", uid), "", "", "", 0, cnt)
- return category, err
- }
- func NewUser(uid uint) {
- ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
- defer cancel()
- _, err := gorse.InsertUser(ctx, client.User{UserId: fmt.Sprintf("%d", uid)})
- if err != nil {
- fmt.Println("[recommend] ======>>> " + err.Error())
- return
- }
- fmt.Println("[recommend] ======>>> user added")
- }
- func NewItem(id uint, t uint, title string, desc string) {
- ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
- defer cancel()
- _, err := gorse.InsertItem(ctx, client.Item{
- ItemId: fmt.Sprintf("%d", id),
- IsHidden: false,
- Labels: []string{title},
- Categories: nil,
- Timestamp: GetTime(t),
- Comment: desc,
- })
- if err != nil {
- fmt.Println("[recommend] ======>>> " + err.Error())
- return
- }
- fmt.Println("[recommend] ======>>> item added")
- }
- func DelItem(id uint) {
- ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
- defer cancel()
- _, err := gorse.DeleteItem(ctx, fmt.Sprintf("%d", id))
- if err != nil {
- fmt.Println("[recommend] ======>>> " + err.Error())
- return
- }
- fmt.Println("[recommend] ======>>> item deleted")
- }
|