1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package dao
- import (
- "context"
- "fmt"
- "go-common/library/cache/redis"
- "go-common/library/log"
- )
- // AddcategoriesAuthors .
- func (d *Dao) AddcategoriesAuthors(c context.Context, data map[int64][]int64) (err error) {
- if len(data) == 0 {
- return
- }
- conn := d.artRedis.Get(c)
- defer conn.Close()
- for k, x := range data {
- key := fmt.Sprintf("recommends:authors:%d", k)
- args := redis.Args{}.Add(key)
- for _, v := range x {
- args = args.Add(fmt.Sprintf("%d", v))
- }
- if err = conn.Send("DEL", key); err != nil {
- log.Error("conn.Send(SADD, %s, %+v) error(%v)", key, args, err)
- PromError("redis:分区作者数据")
- return
- }
- if err = conn.Send("SADD", args...); err != nil {
- log.Error("conn.Send(SADD, %s, %+v) error(%v)", key, args, err)
- PromError("redis:分区作者数据")
- return
- }
- if err = conn.Send("EXPIRE", key, d.c.Job.RecommendExpire); err != nil {
- log.Error("conn.Send(EXPIRE, %s) error(%v)", d.c.Job.RecommendExpire, err)
- PromError("redis:分区作者数据")
- return
- }
- if err = conn.Flush(); err != nil {
- log.Error("conn.Flush error(%v)", err)
- PromError("redis:分区作者数据")
- return
- }
- for i := 0; i < 3; i++ {
- if _, err = conn.Receive(); err != nil {
- log.Error("conn.Receive error(%v)", err)
- PromError("redis:分区作者数据")
- return
- }
- }
- }
- return
- }
- // AddAuthorMostCategories .
- func (d *Dao) AddAuthorMostCategories(c context.Context, mid int64, categories []int64) (err error) {
- if len(categories) == 0 {
- return
- }
- conn := d.artRedis.Get(c)
- defer conn.Close()
- key := fmt.Sprintf("author:categories:%d", mid)
- args := redis.Args{}.Add(key)
- for _, v := range categories {
- args = args.Add(fmt.Sprintf("%d", v))
- }
- if err = conn.Send("DEL", key); err != nil {
- log.Error("conn.Send(SADD, %s, %+v) error(%v)", key, args, err)
- PromError("redis:作者分区数据")
- return
- }
- if err = conn.Send("SADD", args...); err != nil {
- log.Error("conn.Send(SADD, %s, %+v) error(%v)", key, args, err)
- PromError("redis:作者分区数据")
- return
- }
- if err = conn.Send("EXPIRE", key, d.c.Job.RecommendExpire); err != nil {
- log.Error("conn.Send(EXPIRE, %s) error(%v)", d.c.Job.RecommendExpire, err)
- PromError("redis:作者分区数据")
- return
- }
- if err = conn.Flush(); err != nil {
- log.Error("conn.Flush error(%v)", err)
- PromError("redis:作者分区数据")
- return
- }
- for i := 0; i < 3; i++ {
- if _, err = conn.Receive(); err != nil {
- log.Error("conn.Receive error(%v)", err)
- PromError("redis:作者分区数据")
- return
- }
- }
- return
- }
|