日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

浅谈 “ 站内信 ” 的实现

發布時間:2023/12/13 综合教程 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 浅谈 “ 站内信 ” 的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近一直在寫站內信模塊,現在想好好總結一下。和大家一起學習交流。

之前看過,AlphaThink寫的 “兩年后 再議站內信”。個人感覺寫的很不錯的。但是我們的網站沒有那么多的訪問量,所以,群發采用的是全部持久化到數據庫。站內信發送類型包括 分為 ①點到點 ②點到局部 ③點到全部。

我們的網站采用的是領域驅動設計,下面我主要介紹應用層DTO 和提供的Service 設計

LetterDTO

 /// <summary>
        /// 站內信標識。
        /// </summary>
        public Guid Id { get; set; }

        /// <summary>
        /// 站內信標題。
        /// </summary>
        public string Title { get; set; }

        /// <summary>
        /// 站內信內容。
        /// </summary>
        public string Content { get; set; }

        /// <summary>
        /// 發信人。
        /// </summary>
        public Guid SenderId { get; set; }

        /// <summary>
        /// 發件人關聯用戶實體。
        /// </summary>
        public UserDTO Sender { get; set; }

        /// <summary>
        /// 站內信類別。
        /// </summary>
        public LetterAppTypes LetterAppType { get; set; }

        /// <summary>
        /// 發件人是否刪除。
        /// </summary>
        public bool IsDelete { get; set; }

        /// <summary>
        /// 站內信是否置頂。
        /// </summary>
        public bool IsTop { get; set; }

        /// <summary>
        /// 收件人集合。
        /// </summary>
        public List<LetterReceiverDTO> Receivers{ get; set; }


        /// <summary>
        /// 發送時間。
        /// </summary>
        public DateTime SendTime { get; set; }

LetterReceiverDTO

/// <summary>
        /// 收件人標識。
        /// </summary>
        public Guid Id { get; set; }

        /// <summary>
        /// 收件人關聯站內信標識。
        /// </summary>
        public Guid LetterId { get; set; }

        /// <summary>
        /// 收件人Id。
        /// </summary>
        public Guid ReceiverId { get; set; }

        /// <summary>
        /// 收件人關聯用戶實體。
        /// </summary>
        public UserDTO Receiver { get; set; }

        /// <summary>
        /// 收件人是否讀取。
        /// </summary>
        public bool IsRead { get; set; }

        /// <summary>
        /// 收件人是否刪除。
        /// </summary>
        public bool IsDelete { get; set; }

LetterAppTypes (User 是用戶間的站內信,System 是管理員發的站內性能(局部) Top 是管理員發給所有用戶的站內信 (業務需要 全部置頂))

 /// <summary>
    /// 站內信類型枚舉
    /// </summary>
    [Flags]
    public enum LetterAppTypes
    {
        /// <summary>
        /// 用戶站內信
        /// </summary>
        User = 1,

        /// <summary>
        /// 系統站內信
        /// </summary>
        System = 2,

        /// <summary>
        /// 置頂站內信
        /// </summary>
        Top = 4
    }

總結

以上是生活随笔為你收集整理的浅谈 “ 站内信 ” 的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。