From 7278264f027d62664a0209699d0f66a22fd06a8e Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期一, 13 四月 2026 10:24:04 +0800
Subject: [PATCH] feat: 更新依赖版本并优化MES接口调用

---
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICacheService.cs |  171 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 171 insertions(+), 0 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICacheService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICacheService.cs
index d733532..1600ebb 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICacheService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Caches/ICacheService.cs
@@ -45,6 +45,52 @@
         /// <returns></returns>
         void Remove(IEnumerable<string> keys);
 
+        #region 鍒犻櫎鎵╁睍鏂规硶
+
+        /// <summary>
+        /// 鍒犻櫎骞惰幏鍙栧�硷細鍒犻櫎鎸囧畾Key骞惰繑鍥炲叾鍊�
+        /// </summary>
+        /// <param name="key">缂撳瓨Key</param>
+        /// <returns>琚垹闄ょ殑鍊硷紝涓嶅瓨鍦ㄨ繑鍥瀗ull</returns>
+        string? RemoveAndGet(string key);
+
+        /// <summary>
+        /// 鍒犻櫎骞惰幏鍙栧璞★細鍒犻櫎鎸囧畾Key骞惰繑鍥炲叾瀵硅薄鍊�
+        /// </summary>
+        /// <param name="key">缂撳瓨Key</param>
+        /// <returns>琚垹闄ょ殑瀵硅薄锛屼笉瀛樺湪杩斿洖null</returns>
+        T? RemoveAndGet<T>(string key) where T : class;
+
+        /// <summary>
+        /// 鎸夊墠缂�鍒犻櫎锛氬垹闄ゆ墍鏈変互鎸囧畾鍓嶇紑寮�澶寸殑Key
+        /// </summary>
+        /// <param name="prefix">Key鍓嶇紑</param>
+        /// <returns>鍒犻櫎鐨勬暟閲�</returns>
+        int RemoveByPrefix(string prefix);
+
+        /// <summary>
+        /// 鎸夋ā寮忓垹闄わ細鍒犻櫎鍖归厤鎸囧畾妯″紡鐨勬墍鏈塊ey锛堟敮鎸�*閫氶厤绗︼級
+        /// </summary>
+        /// <param name="pattern">鍖归厤妯″紡锛屽 "user:*", "session:123:*"</param>
+        /// <returns>鍒犻櫎鐨勬暟閲�</returns>
+        int RemoveByPattern(string pattern);
+
+        /// <summary>
+        /// 鎵归噺鍒犻櫎骞惰繑鍥炴垚鍔熸暟閲�
+        /// </summary>
+        /// <param name="keys">缂撳瓨Key闆嗗悎</param>
+        /// <returns>鎴愬姛鍒犻櫎鐨勬暟閲�</returns>
+        int RemoveAll(IEnumerable<string> keys);
+
+        /// <summary>
+        /// 鏉′欢鍒犻櫎锛氬垹闄ゆ弧瓒虫寚瀹氭潯浠剁殑鎵�鏈塊ey
+        /// </summary>
+        /// <param name="predicate">鏉′欢璋撹瘝</param>
+        /// <returns>鍒犻櫎鐨勬暟閲�</returns>
+        int RemoveWhere(Func<string, bool> predicate);
+
+        #endregion
+
         /// <summary>
         /// 鑾峰彇缂撳瓨
         /// </summary>
@@ -60,6 +106,95 @@
         /// <param name="key">缂撳瓨Key</param>
         /// <returns></returns>
         string? Get(string key);
+
+        #region 娣诲姞鍜屼慨鏀规墿灞曟柟娉�
+
+        /// <summary>
+        /// 鎵归噺娣诲姞缂撳瓨
+        /// </summary>
+        void AddAll(IDictionary<string, string> items, int expireSeconds = -1);
+
+        /// <summary>
+        /// 鎵归噺娣诲姞瀵硅薄缂撳瓨
+        /// </summary>
+        void AddAllObjects(IDictionary<string, object> items, int expireSeconds = -1);
+
+        /// <summary>
+        /// 鏇挎崲锛氫粎褰揔ey瀛樺湪鏃舵浛鎹㈠叾鍊�
+        /// </summary>
+        bool Replace(string key, string newValue, int expireSeconds = -1);
+
+        /// <summary>
+        /// 鏇挎崲瀵硅薄锛氫粎褰揔ey瀛樺湪鏃舵浛鎹㈠叾鍊�
+        /// </summary>
+        bool Replace<T>(string key, T newValue, int expireSeconds = -1) where T : class;
+
+        /// <summary>
+        /// 鑾峰彇骞跺埛鏂帮細鑾峰彇鍊煎苟鍒锋柊鍏惰繃鏈熸椂闂�
+        /// </summary>
+        string? GetAndRefresh(string key, int expireSeconds);
+
+        /// <summary>
+        /// 鑾峰彇骞跺埛鏂板璞★細鑾峰彇瀵硅薄骞跺埛鏂板叾杩囨湡鏃堕棿
+        /// </summary>
+        T? GetAndRefresh<T>(string key, int expireSeconds) where T : class;
+
+        /// <summary>
+        /// 鍒锋柊杩囨湡鏃堕棿锛氭洿鏂版寚瀹欿ey鐨勮繃鏈熸椂闂�
+        /// </summary>
+        bool RefreshExpire(string key, int expireSeconds);
+
+        /// <summary>
+        /// 璁剧疆杩囨湡鏃堕棿锛氬湪鎸囧畾绉掓暟鍚庤繃鏈�
+        /// </summary>
+        bool ExpireIn(string key, int seconds);
+
+        /// <summary>
+        /// 璁剧疆杩囨湡鏃堕棿锛氬湪鎸囧畾鏃堕棿鐐硅繃鏈�
+        /// </summary>
+        bool ExpireAt(string key, DateTime expireTime);
+
+        /// <summary>
+        /// 鑾峰彇鍓╀綑杩囨湡鏃堕棿锛堢锛�
+        /// </summary>
+        long? GetExpire(string key);
+
+        /// <summary>
+        /// 鍘熷瓙鎿嶄綔锛氫粎褰揔ey涓嶅瓨鍦ㄦ椂娣诲姞锛堝師瀛愭搷浣滐級
+        /// </summary>
+        bool AddIfNotExists(string key, string value, int expireSeconds = -1);
+
+        /// <summary>
+        /// 鍘熷瓙鎿嶄綔锛氫粎褰揔ey涓嶅瓨鍦ㄦ椂娣诲姞瀵硅薄锛堝師瀛愭搷浣滐級
+        /// </summary>
+        bool AddIfNotExists<T>(string key, T value, int expireSeconds = -1) where T : class;
+
+        /// <summary>
+        /// 鍘熷瓙鎿嶄綔锛氳幏鍙栨棫鍊煎苟璁剧疆鏂板��
+        /// </summary>
+        string? GetAndSet(string key, string newValue, int expireSeconds = -1);
+
+        /// <summary>
+        /// 鍘熷瓙鎿嶄綔锛氳幏鍙栨棫瀵硅薄骞惰缃柊瀵硅薄
+        /// </summary>
+        T? GetAndSet<T>(string key, T newValue, int expireSeconds = -1) where T : class;
+
+        /// <summary>
+        /// 鑷锛氬皢Key涓殑鏁板�艰嚜澧烇紝杩斿洖鑷鍚庣殑鍊�
+        /// </summary>
+        long Increment(string key, long value = 1);
+
+        /// <summary>
+        /// 鑷噺锛氬皢Key涓殑鏁板�艰嚜鍑忥紝杩斿洖鑷噺鍚庣殑鍊�
+        /// </summary>
+        long Decrement(string key, long value = 1);
+
+        /// <summary>
+        /// 杩藉姞锛氬悜鐜版湁鍊艰拷鍔犲唴瀹�
+        /// </summary>
+        long Append(string key, string value);
+
+        #endregion
 
         #region ConcurrentDictionary椋庢牸鏂规硶
 
@@ -94,6 +229,42 @@
         bool TryUpdate(string key, string newValue, int expireSeconds = -1);
 
         /// <summary>
+        /// 鍊煎彂鐢熸敼鍙樻椂鏇存柊锛氫粎褰揔ey瀛樺湪涓旀柊鍊间笌鏃у�间笉鍚屾椂鎵嶆洿鏂�
+        /// </summary>
+        /// <param name="key">缂撳瓨Key</param>
+        /// <param name="newValue">鏂板��</param>
+        /// <param name="expireSeconds">杩囨湡鏃堕棿锛堢锛�</param>
+        /// <returns>鍊兼槸鍚﹀彂鐢熶簡鏀瑰彉骞舵洿鏂版垚鍔�</returns>
+        bool TryUpdateIfChanged(string key, string newValue, int expireSeconds = -1);
+
+        /// <summary>
+        /// 鍊煎彂鐢熸敼鍙樻椂鏇存柊瀵硅薄锛氫粎褰揔ey瀛樺湪涓旀柊鍊间笌鏃у�间笉鍚屾椂鎵嶆洿鏂�
+        /// </summary>
+        /// <param name="key">缂撳瓨Key</param>
+        /// <param name="newValue">鏂板��</param>
+        /// <param name="expireSeconds">杩囨湡鏃堕棿锛堢锛�</param>
+        /// <returns>鍊兼槸鍚﹀彂鐢熶簡鏀瑰彉骞舵洿鏂版垚鍔�</returns>
+        bool TryUpdateIfChanged<T>(string key, T newValue, int expireSeconds = -1) where T : class;
+
+        /// <summary>
+        /// 瀹夊叏鏇存柊锛氫粎褰撳唴瀛樼紦瀛樹腑鐨勫�间笌expectedVersion鍖归厤鏃舵墠鏇存柊
+        /// 闃叉骞跺彂鍐欏叆鏃舵棫鍊艰鐩栨柊鍊硷紙閫傜敤浜庡绾跨▼/澶氳繘绋嬪満鏅級
+        /// </summary>
+        /// <typeparam name="T">鍊肩被鍨�</typeparam>
+        /// <param name="key">缂撳瓨閿�</param>
+        /// <param name="newValue">鏂板��</param>
+        /// <param name="expectedVersion">鏈熸湜鐨勭増鏈紙閫氬父鏄棫瀵硅薄鐨勬煇涓睘鎬у�硷紝濡傛椂闂存埑锛�</param>
+        /// <param name="versionExtractor">浠庡璞℃彁鍙栫増鏈彿鐨勫嚱鏁�</param>
+        /// <param name="expireSeconds">杩囨湡鏃堕棿锛堢锛�</param>
+        /// <returns>鏄惁鏇存柊鎴愬姛</returns>
+        bool TrySafeUpdate<T>(
+            string key,
+            T newValue,
+            object? expectedVersion,
+            Func<T, object?> versionExtractor,
+            int expireSeconds = -1) where T : class;
+
+        /// <summary>
         /// 鑾峰彇鎴栨坊鍔狅細Key瀛樺湪鍒欒繑鍥炵幇鏈夊�硷紝涓嶅瓨鍦ㄥ垯娣诲姞骞惰繑鍥炴柊鍊�
         /// </summary>
         string GetOrAdd(string key, string value, int expireSeconds = -1);

--
Gitblit v1.9.3