From a7f4c5ecc5268c49f6a6caf769b3ebee6f237662 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 04 六月 2025 18:52:55 +0800
Subject: [PATCH] 目录迁移 整理
---
Main/System/Mail/MailManager.cs | 666 +++++++++++++++++++++++++++---------------------------
1 files changed, 333 insertions(+), 333 deletions(-)
diff --git a/Main/Manager/GameSystemManager/MailManager.cs b/Main/System/Mail/MailManager.cs
similarity index 99%
rename from Main/Manager/GameSystemManager/MailManager.cs
rename to Main/System/Mail/MailManager.cs
index bf933e8..74b5968 100644
--- a/Main/Manager/GameSystemManager/MailManager.cs
+++ b/Main/System/Mail/MailManager.cs
@@ -1,334 +1,334 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using UnityEngine;
-
-namespace vnxbqy.UI
-{
- public class MailManager : GameSystemManager<MailManager>
- {
- /// <summary>
- /// 閭欢鏁版嵁瀛楀吀锛屽瓨鍌ㄦ墍鏈夐偖浠惰鎯�
- /// Key: 閭欢GUID(鍞竴鏍囪瘑)
- /// Value: 閭欢璇︾粏鏁版嵁(MailData缁撴瀯浣�)
- /// </summary>
- Dictionary<string, MailData> mailDataDict = new Dictionary<string, MailData>();
- public MailCategory nowMailCategory = MailCategory.Personal;
- public Redpoint parentRedpoint = new Redpoint(MainRedDot.MailRepoint);
- public Redpoint tabRedpoint0;
- public Redpoint tabRedpoint1;
- public event Action OnUpdateMailListEvent;// 鏇存柊閭欢鍒楄〃鏁版嵁
- public event Action OnUpdateMailStateChangeEvent;// 鏇存柊閭欢鐘舵�佸彉鏇�
- public readonly string dateFormat = "yyyy-MM-dd";
- public string nowUuid = string.Empty;
- public override void Init()
- {
- tabRedpoint0 = new Redpoint(MainRedDot.MailRepoint, GetTabRedpointId(MailCategory.Personal));
- tabRedpoint1 = new Redpoint(MainRedDot.MailRepoint, GetTabRedpointId(MailCategory.Global));
- DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent;
- }
-
- public override void Release()
- {
- DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitializeEvent;
- }
-
- public void OnBeforePlayerDataInitializeEvent()
- {
- mailDataDict.Clear();
- }
-
- public bool HasNoReadMail(MailCategory category)
- {
- var list = GetMailList(category);
- if (list.IsNullOrEmpty())
- return false;
-
- foreach (var guid in list)
- {
- if (mailDataDict.TryGetValue(guid, out var mailData) && mailData.MailState == 1)
- return true;
- }
- return false;
- }
-
- public int GetTabRedpointId(MailCategory type)
- {
- return MainRedDot.MailRepoint * 10 + (int)type;
- }
-
- public void UpdatePersonalRedPoint()
- {
- if (tabRedpoint0 == null)
- return;
- tabRedpoint0.state = RedPointState.None;
- if (HasNoReadMail(MailCategory.Personal))
- {
- tabRedpoint0.state = RedPointState.Simple;
- }
- }
-
- public void UpdateGlobalRedPoint()
- {
- if (tabRedpoint1 == null) return;
- tabRedpoint1.state = RedPointState.None;
- if (HasNoReadMail(MailCategory.Global))
- {
- tabRedpoint1.state = RedPointState.Simple;
- }
- }
-
- /// <summary>
- /// 鏇存柊閭欢绾㈢偣鎻愮ず鐘舵��
- /// </summary>
- public void UpdateRedPoint()
- {
- UpdatePersonalRedPoint();
- UpdateGlobalRedPoint();
- }
-
- public bool TryGetMailData(string uuid, out MailData mailData)
- {
- return mailDataDict.TryGetValue(uuid, out mailData);
- }
- public string FormatCreateMailTime(DateTime createDateTime)
- {
- TimeSpan diff = TimeUtility.ServerNow - createDateTime;
- if (diff.TotalHours <= 24)
- {
- int hours = (int)Math.Floor(diff.TotalHours);
- return Language.Get("Mail05", hours);
- }
- else
- {
- return createDateTime.ToString(dateFormat);
- }
- }
-
- //杩斿洖鏈夋晥鏈熷ぉ鏁�(姝f暟=宸茶繃鏈熷ぉ鏁帮紝璐熸暟=鍓╀綑澶╂暟)
- public int GetMailExpiryDays(DateTime createDateTime, int limitDays)
- {
- DateTime expiryDate = createDateTime.AddDays(limitDays);
- return (int)(TimeUtility.ServerNow - expiryDate).TotalDays;
- }
-
-
- public List<string> GetMailList(MailCategory mailCategory)
- {
- var result = new List<string>();
- foreach (var kvp in mailDataDict)
- {
- if (kvp.Value.Category == mailCategory)
- {
- result.Add(kvp.Key);
- }
- }
- return result;
- }
-
- public List<string> GetSortMailScrList(MailCategory mailCategory)
- {
- List<string> resList = GetMailList(mailCategory);
- return resList.OrderByDescending(guid => mailDataDict[guid].CreateDateTime).ToList();
- }
-
- /// <summary>
- /// 鏇存柊閭欢鍒楄〃鏁版嵁
- /// </summary>
- /// <param name="vNetData">浠庢湇鍔″櫒鎺ユ敹鐨勯偖浠跺垪琛ㄦ暟鎹寘</param>
- public void UpdateMailList(HA362_tagMCMailList vNetData)
- {
- if (vNetData == null) return;
-
- // 鏇存柊閭欢鏁版嵁瀛楀吀
- foreach (var mail in vNetData.MailList)
- {
- var category = vNetData.IsServerMail == 1 ? MailCategory.Global : MailCategory.Personal;
- var mailData = new MailData();
-
- mailData.Category = category;
- mailData.GUID = mail.GUID;
- mailData.Type = mail.Type;
- mailData.CreateTime = mail.CreateTime;
- mailData.CreateDateTime = Convert.ToDateTime(UIHelper.GetTime(mail.CreateTime));
- mailData.LimitDays = mail.LimitDays;
- mailData.Title = mail.Title;
- mailData.Text = mail.Text;
- mailData.MailState = mail.MailState;
-
- mailData.Items = mail.Items?.Select(i => new MailItemData
- {
- ItemID = i.ItemID,
- Count = i.Count,
- IsBind = i.IsBind,
- UserData = i.UserData
- }).ToList();
- mailDataDict[mail.GUID] = mailData;
- }
-
- UpdateRedPoint();
- OnUpdateMailListEvent?.Invoke();
- }
-
- /// <summary>
- /// 鏇存柊閭欢鐘舵�佸彉鏇�
- /// </summary>
- /// <param name="vNetData">浠庢湇鍔″櫒鎺ユ敹鐨勯偖浠剁姸鎬佸彉鏇存暟鎹寘</param>
- public void UpdateMailStateChange(HA363_tagMCMailStateChange vNetData)
- {
- if (vNetData == null || vNetData.MailList == null) return;
-
- foreach (var stateChange in vNetData.MailList)
- {
- if (mailDataDict.TryGetValue(stateChange.GUID, out var mailData))
- {
- if (stateChange.MailState == 4)
- {
- mailDataDict.Remove(stateChange.GUID);
- continue;
- }
- mailData.MailState = stateChange.MailState;
- mailDataDict[stateChange.GUID] = mailData;
- }
- }
-
- UpdateRedPoint();
- OnUpdateMailStateChangeEvent?.Invoke();
- }
-
-
- /// <summary>
- /// 闃呰閭欢
- /// </summary>
- /// <param name="GUID">閭欢GUID</param>
- public void ReadMail(string GUID)
- {
- if (string.IsNullOrEmpty(GUID))
- {
- Debug.LogError("闃呰閭欢GUID涓嶈兘涓虹┖");
- return;
- }
- SendRequestMail(GUID, 0);
- }
-
- /// <summary>
- /// 棰嗗彇閭欢
- /// </summary>
- /// <param name="GUID">閭欢GUID锛屼负绌烘椂鎵归噺棰嗗彇鎵�鏈夐偖浠�</param>
- public void ClaimMail(string GUID = null)
- {
- SendRequestMail(GUID, 1);
- }
-
- /// <summary>
- /// 鍒犻櫎閭欢
- /// </summary>
- /// <param name="GUID">閭欢GUID锛屼负绌烘椂鎵归噺鍒犻櫎宸查鍙栨垨鏃犵墿鍝佺殑宸茶閭欢</param>
- public void DeleteMail(string GUID = null)
- {
- SendRequestMail(GUID, 2);
- }
-
- /// <summary>
- /// 鍙戦�侀偖浠惰姹傚埌鏈嶅姟鍣�
- /// </summary>
- /// <param name="GUID">閭欢GUID</param>
- /// <param name="ReqType">璇锋眰绫诲瀷 0-璁剧疆宸茶锛�1-棰嗗彇閭欢锛�2-鍒犻櫎閭欢</param>
- public void SendRequestMail(string GUID, byte ReqType)
- {
- CA537_tagCMRequestMail pack = new CA537_tagCMRequestMail();
- pack.GUID = GUID;
- pack.ReqType = ReqType;
- GameNetSystem.Instance.SendInfo(pack);
- }
-
- //娌℃湁涓�涓彲棰嗗彇鐨勪釜浜洪偖浠�
- public bool IsCanHaveMail()
- {
- var personalMails = GetMailList(MailCategory.Personal);
- return personalMails.Any(guid =>
- mailDataDict.TryGetValue(guid, out var mail) &&
- mail.MailState != 3 &&
- mail.Items != null &&
- mail.Items.Count > 0
- );
- }
- }
-
- public enum MailCategory
- {
- Personal = 0, // 涓汉閭欢
- Global = 1 // 鍏ㄦ湇閭欢
- }
-
- public class MailItemData
- {
- public uint ItemID; //鐗╁搧ID
- public uint Count; //鏁伴噺
- public byte IsBind; //鏄惁缁戝畾
- public string UserData; //鑷畾涔夋暟鎹�
- }
-
- public class MailData
- {
- public MailCategory Category;
- public string GUID; //閭欢GUID
- public byte Type; //閭欢绫诲瀷锛屾殏鏃堕粯璁�0
- public string CreateTime; //鍒涘缓鏃堕棿
- public DateTime CreateDateTime;
- public byte LimitDays; //鏈夋晥澶╂暟
- public string Title; //鏍囬
- public string Text; //鍐呭
- public byte MailState; //閭欢鐘舵�侊細 0-鏈煡锛�1-鏈锛�2-宸茶锛�3-宸查锛�
- public List<MailItemData> Items; //鐗╁搧淇℃伅
-
- /// <summary>
- /// 鍒ゆ柇鏄惁涓烘ā鏉跨被鍨嬮偖浠�
- /// </summary>
- /// <returns>true-妯℃澘閭欢, false-鏅�氶偖浠�</returns>
- public bool IsTemplateMail()
- {
- if (string.IsNullOrEmpty(Title))
- return false;
-
- return Title.StartsWith("<T>") && Title.EndsWith("</T>");
- }
-
- /// <summary>
- /// 鑾峰彇妯℃澘閭欢鐨勬ā鏉縦ey
- /// </summary>
- /// <returns>妯℃澘key锛屽鏋滀笉鏄ā鏉块偖浠惰繑鍥炵┖瀛楃涓�</returns>
- public string GetTemplateKey()
- {
- if (!IsTemplateMail())
- return string.Empty;
-
- // 妯℃澘鏍煎紡: <T>key</T>
- // 璺宠繃寮�澶寸殑"<T>" (3瀛楃)
- // 鍙栦腑闂撮儴鍒嗭紝鎬婚暱搴﹀噺鍘�"<T>"鍜�"</T>"鍏�7瀛楃
- const int prefixLength = 3; // "<T>"闀垮害
- const int suffixLength = 4; // "</T>"闀垮害
- return Title.Substring(prefixLength, Title.Length - (prefixLength + suffixLength));
- }
-
- /// <summary>
- /// 鑾峰彇妯℃澘閭欢鐨勫弬鏁板垪琛�
- /// </summary>
- /// <returns>鍙傛暟鍒楄〃锛屽鏋滀笉鏄ā鏉块偖浠舵垨鍙傛暟涓虹┖鍒欒繑鍥炵┖鍒楄〃</returns>
- public List<string> GetTemplateParams()
- {
- if (!IsTemplateMail() || string.IsNullOrEmpty(Text))
- return new List<string>();
-
- try
- {
- // 鍙傛暟鏍煎紡涓篔SON鏁扮粍锛歔鍙傛暟1, 鍙傛暟2, ...]
- return JsonUtility.FromJson<List<string>>(Text);
- }
- catch
- {
- return new List<string>();
- }
- }
- }
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+
+namespace vnxbqy.UI
+{
+ public class MailManager : GameSystemManager<MailManager>
+ {
+ /// <summary>
+ /// 閭欢鏁版嵁瀛楀吀锛屽瓨鍌ㄦ墍鏈夐偖浠惰鎯�
+ /// Key: 閭欢GUID(鍞竴鏍囪瘑)
+ /// Value: 閭欢璇︾粏鏁版嵁(MailData缁撴瀯浣�)
+ /// </summary>
+ Dictionary<string, MailData> mailDataDict = new Dictionary<string, MailData>();
+ public MailCategory nowMailCategory = MailCategory.Personal;
+ public Redpoint parentRedpoint = new Redpoint(MainRedDot.MailRepoint);
+ public Redpoint tabRedpoint0;
+ public Redpoint tabRedpoint1;
+ public event Action OnUpdateMailListEvent;// 鏇存柊閭欢鍒楄〃鏁版嵁
+ public event Action OnUpdateMailStateChangeEvent;// 鏇存柊閭欢鐘舵�佸彉鏇�
+ public readonly string dateFormat = "yyyy-MM-dd";
+ public string nowUuid = string.Empty;
+ public override void Init()
+ {
+ tabRedpoint0 = new Redpoint(MainRedDot.MailRepoint, GetTabRedpointId(MailCategory.Personal));
+ tabRedpoint1 = new Redpoint(MainRedDot.MailRepoint, GetTabRedpointId(MailCategory.Global));
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent;
+ }
+
+ public override void Release()
+ {
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitializeEvent;
+ }
+
+ public void OnBeforePlayerDataInitializeEvent()
+ {
+ mailDataDict.Clear();
+ }
+
+ public bool HasNoReadMail(MailCategory category)
+ {
+ var list = GetMailList(category);
+ if (list.IsNullOrEmpty())
+ return false;
+
+ foreach (var guid in list)
+ {
+ if (mailDataDict.TryGetValue(guid, out var mailData) && mailData.MailState == 1)
+ return true;
+ }
+ return false;
+ }
+
+ public int GetTabRedpointId(MailCategory type)
+ {
+ return MainRedDot.MailRepoint * 10 + (int)type;
+ }
+
+ public void UpdatePersonalRedPoint()
+ {
+ if (tabRedpoint0 == null)
+ return;
+ tabRedpoint0.state = RedPointState.None;
+ if (HasNoReadMail(MailCategory.Personal))
+ {
+ tabRedpoint0.state = RedPointState.Simple;
+ }
+ }
+
+ public void UpdateGlobalRedPoint()
+ {
+ if (tabRedpoint1 == null) return;
+ tabRedpoint1.state = RedPointState.None;
+ if (HasNoReadMail(MailCategory.Global))
+ {
+ tabRedpoint1.state = RedPointState.Simple;
+ }
+ }
+
+ /// <summary>
+ /// 鏇存柊閭欢绾㈢偣鎻愮ず鐘舵��
+ /// </summary>
+ public void UpdateRedPoint()
+ {
+ UpdatePersonalRedPoint();
+ UpdateGlobalRedPoint();
+ }
+
+ public bool TryGetMailData(string uuid, out MailData mailData)
+ {
+ return mailDataDict.TryGetValue(uuid, out mailData);
+ }
+ public string FormatCreateMailTime(DateTime createDateTime)
+ {
+ TimeSpan diff = TimeUtility.ServerNow - createDateTime;
+ if (diff.TotalHours <= 24)
+ {
+ int hours = (int)Math.Floor(diff.TotalHours);
+ return Language.Get("Mail05", hours);
+ }
+ else
+ {
+ return createDateTime.ToString(dateFormat);
+ }
+ }
+
+ //杩斿洖鏈夋晥鏈熷ぉ鏁�(姝f暟=宸茶繃鏈熷ぉ鏁帮紝璐熸暟=鍓╀綑澶╂暟)
+ public int GetMailExpiryDays(DateTime createDateTime, int limitDays)
+ {
+ DateTime expiryDate = createDateTime.AddDays(limitDays);
+ return (int)(TimeUtility.ServerNow - expiryDate).TotalDays;
+ }
+
+
+ public List<string> GetMailList(MailCategory mailCategory)
+ {
+ var result = new List<string>();
+ foreach (var kvp in mailDataDict)
+ {
+ if (kvp.Value.Category == mailCategory)
+ {
+ result.Add(kvp.Key);
+ }
+ }
+ return result;
+ }
+
+ public List<string> GetSortMailScrList(MailCategory mailCategory)
+ {
+ List<string> resList = GetMailList(mailCategory);
+ return resList.OrderByDescending(guid => mailDataDict[guid].CreateDateTime).ToList();
+ }
+
+ /// <summary>
+ /// 鏇存柊閭欢鍒楄〃鏁版嵁
+ /// </summary>
+ /// <param name="vNetData">浠庢湇鍔″櫒鎺ユ敹鐨勯偖浠跺垪琛ㄦ暟鎹寘</param>
+ public void UpdateMailList(HA362_tagMCMailList vNetData)
+ {
+ if (vNetData == null) return;
+
+ // 鏇存柊閭欢鏁版嵁瀛楀吀
+ foreach (var mail in vNetData.MailList)
+ {
+ var category = vNetData.IsServerMail == 1 ? MailCategory.Global : MailCategory.Personal;
+ var mailData = new MailData();
+
+ mailData.Category = category;
+ mailData.GUID = mail.GUID;
+ mailData.Type = mail.Type;
+ mailData.CreateTime = mail.CreateTime;
+ mailData.CreateDateTime = Convert.ToDateTime(UIHelper.GetTime(mail.CreateTime));
+ mailData.LimitDays = mail.LimitDays;
+ mailData.Title = mail.Title;
+ mailData.Text = mail.Text;
+ mailData.MailState = mail.MailState;
+
+ mailData.Items = mail.Items?.Select(i => new MailItemData
+ {
+ ItemID = i.ItemID,
+ Count = i.Count,
+ IsBind = i.IsBind,
+ UserData = i.UserData
+ }).ToList();
+ mailDataDict[mail.GUID] = mailData;
+ }
+
+ UpdateRedPoint();
+ OnUpdateMailListEvent?.Invoke();
+ }
+
+ /// <summary>
+ /// 鏇存柊閭欢鐘舵�佸彉鏇�
+ /// </summary>
+ /// <param name="vNetData">浠庢湇鍔″櫒鎺ユ敹鐨勯偖浠剁姸鎬佸彉鏇存暟鎹寘</param>
+ public void UpdateMailStateChange(HA363_tagMCMailStateChange vNetData)
+ {
+ if (vNetData == null || vNetData.MailList == null) return;
+
+ foreach (var stateChange in vNetData.MailList)
+ {
+ if (mailDataDict.TryGetValue(stateChange.GUID, out var mailData))
+ {
+ if (stateChange.MailState == 4)
+ {
+ mailDataDict.Remove(stateChange.GUID);
+ continue;
+ }
+ mailData.MailState = stateChange.MailState;
+ mailDataDict[stateChange.GUID] = mailData;
+ }
+ }
+
+ UpdateRedPoint();
+ OnUpdateMailStateChangeEvent?.Invoke();
+ }
+
+
+ /// <summary>
+ /// 闃呰閭欢
+ /// </summary>
+ /// <param name="GUID">閭欢GUID</param>
+ public void ReadMail(string GUID)
+ {
+ if (string.IsNullOrEmpty(GUID))
+ {
+ Debug.LogError("闃呰閭欢GUID涓嶈兘涓虹┖");
+ return;
+ }
+ SendRequestMail(GUID, 0);
+ }
+
+ /// <summary>
+ /// 棰嗗彇閭欢
+ /// </summary>
+ /// <param name="GUID">閭欢GUID锛屼负绌烘椂鎵归噺棰嗗彇鎵�鏈夐偖浠�</param>
+ public void ClaimMail(string GUID = null)
+ {
+ SendRequestMail(GUID, 1);
+ }
+
+ /// <summary>
+ /// 鍒犻櫎閭欢
+ /// </summary>
+ /// <param name="GUID">閭欢GUID锛屼负绌烘椂鎵归噺鍒犻櫎宸查鍙栨垨鏃犵墿鍝佺殑宸茶閭欢</param>
+ public void DeleteMail(string GUID = null)
+ {
+ SendRequestMail(GUID, 2);
+ }
+
+ /// <summary>
+ /// 鍙戦�侀偖浠惰姹傚埌鏈嶅姟鍣�
+ /// </summary>
+ /// <param name="GUID">閭欢GUID</param>
+ /// <param name="ReqType">璇锋眰绫诲瀷 0-璁剧疆宸茶锛�1-棰嗗彇閭欢锛�2-鍒犻櫎閭欢</param>
+ public void SendRequestMail(string GUID, byte ReqType)
+ {
+ CA537_tagCMRequestMail pack = new CA537_tagCMRequestMail();
+ pack.GUID = GUID;
+ pack.ReqType = ReqType;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+ //娌℃湁涓�涓彲棰嗗彇鐨勪釜浜洪偖浠�
+ public bool IsCanHaveMail()
+ {
+ var personalMails = GetMailList(MailCategory.Personal);
+ return personalMails.Any(guid =>
+ mailDataDict.TryGetValue(guid, out var mail) &&
+ mail.MailState != 3 &&
+ mail.Items != null &&
+ mail.Items.Count > 0
+ );
+ }
+ }
+
+ public enum MailCategory
+ {
+ Personal = 0, // 涓汉閭欢
+ Global = 1 // 鍏ㄦ湇閭欢
+ }
+
+ public class MailItemData
+ {
+ public uint ItemID; //鐗╁搧ID
+ public uint Count; //鏁伴噺
+ public byte IsBind; //鏄惁缁戝畾
+ public string UserData; //鑷畾涔夋暟鎹�
+ }
+
+ public class MailData
+ {
+ public MailCategory Category;
+ public string GUID; //閭欢GUID
+ public byte Type; //閭欢绫诲瀷锛屾殏鏃堕粯璁�0
+ public string CreateTime; //鍒涘缓鏃堕棿
+ public DateTime CreateDateTime;
+ public byte LimitDays; //鏈夋晥澶╂暟
+ public string Title; //鏍囬
+ public string Text; //鍐呭
+ public byte MailState; //閭欢鐘舵�侊細 0-鏈煡锛�1-鏈锛�2-宸茶锛�3-宸查锛�
+ public List<MailItemData> Items; //鐗╁搧淇℃伅
+
+ /// <summary>
+ /// 鍒ゆ柇鏄惁涓烘ā鏉跨被鍨嬮偖浠�
+ /// </summary>
+ /// <returns>true-妯℃澘閭欢, false-鏅�氶偖浠�</returns>
+ public bool IsTemplateMail()
+ {
+ if (string.IsNullOrEmpty(Title))
+ return false;
+
+ return Title.StartsWith("<T>") && Title.EndsWith("</T>");
+ }
+
+ /// <summary>
+ /// 鑾峰彇妯℃澘閭欢鐨勬ā鏉縦ey
+ /// </summary>
+ /// <returns>妯℃澘key锛屽鏋滀笉鏄ā鏉块偖浠惰繑鍥炵┖瀛楃涓�</returns>
+ public string GetTemplateKey()
+ {
+ if (!IsTemplateMail())
+ return string.Empty;
+
+ // 妯℃澘鏍煎紡: <T>key</T>
+ // 璺宠繃寮�澶寸殑"<T>" (3瀛楃)
+ // 鍙栦腑闂撮儴鍒嗭紝鎬婚暱搴﹀噺鍘�"<T>"鍜�"</T>"鍏�7瀛楃
+ const int prefixLength = 3; // "<T>"闀垮害
+ const int suffixLength = 4; // "</T>"闀垮害
+ return Title.Substring(prefixLength, Title.Length - (prefixLength + suffixLength));
+ }
+
+ /// <summary>
+ /// 鑾峰彇妯℃澘閭欢鐨勫弬鏁板垪琛�
+ /// </summary>
+ /// <returns>鍙傛暟鍒楄〃锛屽鏋滀笉鏄ā鏉块偖浠舵垨鍙傛暟涓虹┖鍒欒繑鍥炵┖鍒楄〃</returns>
+ public List<string> GetTemplateParams()
+ {
+ if (!IsTemplateMail() || string.IsNullOrEmpty(Text))
+ return new List<string>();
+
+ try
+ {
+ // 鍙傛暟鏍煎紡涓篔SON鏁扮粍锛歔鍙傛暟1, 鍙傛暟2, ...]
+ return JsonUtility.FromJson<List<string>>(Text);
+ }
+ catch
+ {
+ return new List<string>();
+ }
+ }
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0