// Copyright 2022 ROC. All rights reserved. // Use of this source code is governed by a MIT style // license that can be found in the LICENSE file. package core import ( "context" "github.com/rocboss/paopao-ce/internal/core/cs" "github.com/rocboss/paopao-ce/internal/core/ms" "github.com/rocboss/paopao-ce/internal/dao/jinzhu/dbr" ) const ( IdxActNop IdxAct = iota + 1 IdxActCreatePost IdxActUpdatePost IdxActDeletePost IdxActStickPost IdxActVisiblePost ) type IdxAct uint8 type IndexAction struct { Act IdxAct Post *dbr.Post } type IndexActionA struct { Act IdxAct Tweet *cs.TweetInfo } func (a IdxAct) String() string { switch a { case IdxActNop: return "no operator" case IdxActCreatePost: return "create post" case IdxActUpdatePost: return "update post" case IdxActDeletePost: return "delete post" case IdxActStickPost: return "stick post" case IdxActVisiblePost: return "visible post" default: return "unknow action" } } func NewIndexAction(act IdxAct, post *ms.Post) *IndexAction { return &IndexAction{ Act: act, Post: post, } } func NewIndexActionA(act IdxAct, tweet *cs.TweetInfo) *IndexActionA { return &IndexActionA{ Act: act, Tweet: tweet, } } // CacheIndexService cache index service interface type CacheIndexService interface { // IndexPostsService SendAction(act IdxAct, post *dbr.Post) } // CacheIndexServantA cache index service interface type CacheIndexServantA interface { // IndexPostsServantA SendAction(act IdxAct, tweet *cs.TweetInfo) } // RedisCache memory cache by Redis type RedisCache interface { SetPushToSearchJob(ctx context.Context) error DelPushToSearchJob(ctx context.Context) error SetImgCaptcha(ctx context.Context, id string, value string) error GetImgCaptcha(ctx context.Context, id string) (string, error) DelImgCaptcha(ctx context.Context, id string) error GetCountSmsCaptcha(ctx context.Context, phone string) (int64, error) IncrCountSmsCaptcha(ctx context.Context, phone string) error GetCountLoginErr(ctx context.Context, id int64) (int64, error) DelCountLoginErr(ctx context.Context, id int64) error IncrCountLoginErr(ctx context.Context, id int64) error GetCountWhisper(ctx context.Context, uid int64) (int64, error) IncrCountWhisper(ctx context.Context, uid int64) error SetRechargeStatus(ctx context.Context, tradeNo string) error DelRechargeStatus(ctx context.Context, tradeNo string) error } type AppCache interface { Get(key string) ([]byte, error) Set(key string, data []byte, ex int64) error SetNx(key string, data []byte, ex int64) error Delete(key ...string) error DelAny(pattern string) error Exist(key string) bool Keys(pattern string) ([]string, error) } type WebCache interface { AppCache GetUnreadMsgCountResp(uid int64) ([]byte, error) PutUnreadMsgCountResp(uid int64, data []byte) error DelUnreadMsgCountResp(uid int64) error ExistUnreadMsgCountResp(uid int64) bool PutHistoryMaxOnline(newScore int) (int, error) }