package logic import ( "context" quitl "app.yhyue.com/moapp/jybase/common" "app.yhyue.com/moapp/jybase/encrypt" util "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/entity" "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/internal/svc" "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/messagecenter" "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/service" "github.com/zeromicro/go-zero/core/logx" ) type SaveMessageLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewSaveMessageLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SaveMessageLogic { return &SaveMessageLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } // 聊天保存 func (l *SaveMessageLogic) SaveMessage(in *messagecenter.MessageEntity) (*messagecenter.SaveMessageResp, error) { // todo: add your logic here and delete this line m := service.MessaggeService{} chatMap := map[int64]bool{ 2: true, //2:点对点消息 3: true, //3:群消息 9: true, //9:其它系统消息 (除客服以外的) 10: true, //10:群撤回(自己看到的) 11: true, //11:群撤回(其他人看到的) } fool, error_message, content, messageId, nowTime := func() (fool bool, errorMsg string, content string, messageId, nowInt int64) { if !chatMap[in.ItemType] { return m.SaveMessage(in) } else { return m.Chat(in) } }() error_code := util.SUCCESS_CODE if fool { error_code = util.SUCCESS_CODE } else { error_code = util.ERROR_CODE } return &messagecenter.SaveMessageResp{ ErrorCode: error_code, ErrorMsg: error_message, Data: &messagecenter.MessageEntity{ Content: content, MessageId: encrypt.SE.Encode2Hex(quitl.InterfaceToStr(messageId)), CreateTime: nowTime, }, }, nil }