|
@@ -1,7 +1,9 @@
|
|
|
package service
|
|
|
|
|
|
import (
|
|
|
+ "encoding/json"
|
|
|
"fmt"
|
|
|
+ "math/rand"
|
|
|
"strings"
|
|
|
"time"
|
|
|
|
|
@@ -49,6 +51,12 @@ func (this *PowerService) Power(userid string, baseUserId, accountId, entId, pos
|
|
|
vip := &entity.Vip{}
|
|
|
member := &entity.Member{}
|
|
|
free := &entity.Free{}
|
|
|
+ userPower := entity.Power{}
|
|
|
+ if bytes, err := redis.GetBytes("newother", GetRedisName(positionId)); err == nil && bytes != nil {
|
|
|
+ if err := json.Unmarshal(*bytes, &userPower); err == nil {
|
|
|
+ return &userPower
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
//获取用户本身的注册时间和邮箱、这个与个人、企业无关
|
|
|
mgoUserFields := map[string]interface{}{
|
|
@@ -329,14 +337,21 @@ func (this *PowerService) Power(userid string, baseUserId, accountId, entId, pos
|
|
|
free.IsFree = false
|
|
|
}
|
|
|
}
|
|
|
- return &entity.Power{
|
|
|
+ userPower = entity.Power{
|
|
|
Vip: vip,
|
|
|
Member: member,
|
|
|
Free: free,
|
|
|
Ent: ent,
|
|
|
Entniche: entniche,
|
|
|
}
|
|
|
- return nil
|
|
|
+ //存储缓存
|
|
|
+ go func() {
|
|
|
+ if bytes, err := json.Marshal(userPower); err == nil && bytes != nil {
|
|
|
+ oneDayMore := 60*60*24 + rand.Intn(60*60)
|
|
|
+ _ = redis.PutBytes("newother", GetRedisName(positionId), &bytes, oneDayMore)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ return &userPower
|
|
|
}
|
|
|
|
|
|
//免费用户体验会员功能权限
|
|
@@ -374,3 +389,19 @@ func HasKey(a_items []map[string]interface{}) bool {
|
|
|
}
|
|
|
return false
|
|
|
}
|
|
|
+
|
|
|
+//获取redis key
|
|
|
+func GetRedisName(positionId int64) string {
|
|
|
+ if positionId == 0 {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ return fmt.Sprintf("user_power_info_%v", positionId)
|
|
|
+}
|
|
|
+
|
|
|
+//清除redis缓存
|
|
|
+func (this *PowerService) DelRedisPower(positionId int64) bool {
|
|
|
+ if positionId == 0 {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return redis.Del("newother", GetRedisName(positionId))
|
|
|
+}
|