VueWebCoreApi/Controllers/AppAnalyticsController.cs
@@ -16,7 +16,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[Appçäº§çæ¿] /// <summary> VueWebCoreApi/Controllers/AppPersonalController.cs
@@ -16,7 +16,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[App个人计件工èµ] /// <summary> VueWebCoreApi/Controllers/BasicSettingController.cs
@@ -23,7 +23,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[ç»ç»æ¶æ,æ¥è¯¢ç»ç»ä¿¡æ¯] /// <summary> VueWebCoreApi/Controllers/DeviceManagerController.cs
@@ -18,7 +18,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[设å¤ç±»åæ¥è¯¢] /// <summary> VueWebCoreApi/Controllers/ErpSyncMesController.cs
@@ -17,7 +17,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[ç©æç®¡çï¼è®¡éåä½åæ¥] /// <summary> VueWebCoreApi/Controllers/GeneralBasicDataController.cs
@@ -15,7 +15,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[ç»ç»æ¶æåºç¡èµæ] /// <summary> VueWebCoreApi/Controllers/GridReportController.cs
@@ -18,7 +18,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[MESå·¥åæå°1] /// <summary> VueWebCoreApi/Controllers/KanBanManagerentController.cs
@@ -15,7 +15,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[车é´çæ¿,ä¸ç产信æ¯] /// <summary> VueWebCoreApi/Controllers/LoginController.cs
@@ -19,7 +19,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); //è·åä¼ä¸é ç½®Enterprise private static readonly string Enterprise = AppSetting.GetAppSetting("Enterprise"); @@ -73,10 +73,10 @@ User loginUser = JsonConvert.DeserializeObject<User>(JsonConvert.SerializeObject(ms)); //妿redisç»å½ç¨æ·ä¸ä¸åå¨å½åç¨æ· if (redis.Get<User>(ms.rediskey, 0) == null) if (redis.GetStringKey<User>(ms.rediskey) == null) { //åå ¥redis(注æï¼redisç±»éé¢çå¤±ææ¶é´å¿ é¡»å¨keyåå»ºå®æä¹åæçæ) redis.Set<User>(ms.rediskey, ms, redis.secondsTimeOut, 0); redis.SetStringKey<User>(ms.rediskey, ms, TimeSpan.FromSeconds(redis.secondsTimeOut)); //åå ¥ç»å½æä½è®°å½ LogHelper.DbOperateLog(ms.usercode, "ç»å½", "ç»å½äºç³»ç»", ms.usertype); mes.code = "200"; @@ -86,7 +86,7 @@ else //妿åå¨ { //è·åredisä¸å½åç¨æ·ä¿¡æ¯ User r_loginUser = redis.Get<User>(ms.rediskey, 0); User r_loginUser = redis.GetStringKey<User>(ms.rediskey); //妿sessionä¸çç¨æ·usercodeåredisä¸çç¨æ·usercodeå¹é if ((r_loginUser.rediskey).Equals(loginUser.rediskey)) { @@ -97,7 +97,7 @@ else { //éç½®è¿ææ¶é´(注æï¼redisç±»éé¢çå¤±ææ¶é´å¿ é¡»å¨keyåå»ºå®æä¹åæçæ) redis.Set<User>(loginUser.rediskey, loginUser, redis.secondsTimeOut, 0); redis.SetStringKey<User>(loginUser.rediskey, loginUser, TimeSpan.FromSeconds(redis.secondsTimeOut)); //åå ¥ç»å½æä½è®°å½ LogHelper.DbOperateLog(ms.usercode, "ç»å½", "ç»å½äºç³»ç»", ms.usertype); mes.data = ms; @@ -150,13 +150,13 @@ } }); bool aa = DapperHelper.DoTransaction(list); redis.Remove(us.rediskey, 0);//å é¤redis redis.Set<User>(us.rediskey, us, redis.secondsTimeOut, 0);//åå ¥redis redis.KeyDelete(us.rediskey);//å é¤redis redis.SetStringKey<User>(us.rediskey, us, TimeSpan.FromSeconds(redis.secondsTimeOut));//åå ¥redis } else { redis.Remove(us.rediskey, 0);//å é¤redis redis.Set<User>(us.rediskey, us, redis.secondsTimeOut, 0);//åå ¥redis redis.KeyDelete(us.rediskey);//å é¤redis redis.SetStringKey<User>(us.rediskey, us, TimeSpan.FromSeconds(redis.secondsTimeOut));//åå ¥redis } //åå ¥æ¥å¿ LogHelper.DbOperateLog(us.usercode, "强å¶ä¸çº¿", "被强å¶ä¸çº¿äº", us.usertype); @@ -288,10 +288,10 @@ User loginUser = JsonConvert.DeserializeObject<User>(JsonConvert.SerializeObject(ms)); //妿redisç»å½ç¨æ·ä¸ä¸åå¨å½åç¨æ· if (redis.Get<User>(ms.rediskey, 0) == null) if (redis.GetStringKey<User>(ms.rediskey) == null) { //åå ¥redis(注æï¼redisç±»éé¢çå¤±ææ¶é´å¿ é¡»å¨keyåå»ºå®æä¹åæçæ) redis.Set<User>(ms.rediskey, ms, redis.secondsTimeOut, 0); redis.SetStringKey<User>(ms.rediskey, ms, TimeSpan.FromSeconds(redis.secondsTimeOut)); //åå ¥ç»å½æä½è®°å½ LogHelper.DbOperateLog(ms.usercode, "ç»å½", "ç»å½äºç³»ç»", ms.usertype); mes.code = "200"; @@ -301,17 +301,17 @@ else //妿åå¨ { //è·åredisä¸å½åç¨æ·ä¿¡æ¯ User r_loginUser = redis.Get<User>(ms.rediskey, 0); User r_loginUser = redis.GetStringKey<User>(ms.rediskey); //妿sessionä¸çç¨æ·usercodeåredisä¸çç¨æ·usercodeå¹é if ((r_loginUser.rediskey).Equals(loginUser.rediskey)) { redis.Remove(loginUser.rediskey, 0);//å é¤redis redis.Set<User>(loginUser.rediskey, ms, redis.secondsTimeOut, 0);//åå ¥redis redis.KeyDelete(loginUser.rediskey);//å é¤redis redis.SetStringKey<User>(loginUser.rediskey, ms, TimeSpan.FromSeconds(redis.secondsTimeOut));//åå ¥redis } else { //éç½®è¿ææ¶é´(注æï¼redisç±»éé¢çå¤±ææ¶é´å¿ é¡»å¨keyåå»ºå®æä¹åæçæ) redis.Set<User>(loginUser.rediskey, loginUser, redis.secondsTimeOut, 0); redis.SetStringKey<User>(loginUser.rediskey, loginUser, TimeSpan.FromSeconds(redis.secondsTimeOut)); //åå ¥ç»å½æä½è®°å½ LogHelper.DbOperateLog(ms.usercode, "ç»å½", "ç»å½äºç³»ç»", ms.usertype); mes.data = ms; VueWebCoreApi/Controllers/MouldManagerController.cs
@@ -20,7 +20,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[æ¨¡å ·æ¸ åå表æ¥è¯¢] /// <summary> VueWebCoreApi/Controllers/ProductModelController.cs
@@ -19,7 +19,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[计éåä½ç»ä¿¡æ¯] /// <summary> VueWebCoreApi/Controllers/QualityManagementController.cs
@@ -18,7 +18,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[è´¨é管ç,缺é·å®ä¹æ¥è¯¢å表] /// <summary> VueWebCoreApi/Controllers/ReportManagerController.cs
@@ -17,7 +17,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[ç产è¿åº¦æ¥è¡¨] /// <summary> VueWebCoreApi/Controllers/SystemSettingController.cs
@@ -18,7 +18,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[ç¼ç è§åè·åå¯è®¾ç½®çåè½èåä¿¡æ¯] /// <summary> VueWebCoreApi/Controllers/WorkOrderController.cs
@@ -24,7 +24,7 @@ { //å®ä¹å ¨å±ä¿¡æ¯è¿ååé ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); #region[ERPè®¢åæ¥è¯¢] /// <summary> @@ -282,6 +282,24 @@ } #endregion #region[MES工忥æ¾åå²å¼ç¨ææ°å·¥åºä¿¡æ¯] /// <summary> /// MES工忥æ¾åå²å¼ç¨ææ°å·¥åºä¿¡æ¯ /// </summary> /// <param name="wkshopcode">车é´ç¼ç </param> /// <param name="partcode">产åç¼ç </param> /// <returns></returns> [Route(template: "MesOrderNewStepContent")] [HttpPost] public JsonResult MesOrderNewStepContent(string wkshopcode, string partcode) { var token = HttpContext.Request.Headers["Token"].ToString(); User us = JwtTools.Denocode(token.ToString()); mes = WorkOrderBLL.MesOrderNewStepContent(wkshopcode, partcode, us); return Json(mes); } #endregion #region[MES工忴¾åæäº¤] /// <summary> VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
@@ -95,6 +95,13 @@ } #endregion #region[MES工忥æ¾åå²å¼ç¨ææ°å·¥åºä¿¡æ¯] public static ToMessage MesOrderNewStepContent(string wkshopcode, string partcode, User us) { return WorkOrderDAL.MesOrderNewStepContent(wkshopcode, partcode, us); } #endregion #region[MES工忴¾åæäº¤] public static ToMessage MesOrderDistribution(string[] wocodelist, User us) VueWebCoreApi/DLL/DAL/LoginDAL.cs
@@ -384,11 +384,11 @@ #region[ç»åº] public static ToMessage LoginOut(User us) { RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); try { //å é¤redis redis.Remove(Enterprise + "LoginUserID" + us.usertype + us.usercode, 0); redis.KeyDelete(Enterprise + "LoginUserID" + us.usertype + us.usercode); //åå ¥æ¥å¿ LogHelper.DbOperateLog(us.usercode, "éåº", "éåºäºç³»ç»", us.usertype); mes.code = "200"; VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -1034,6 +1034,40 @@ } #endregion #region[MES工忥æ¾åå²å¼ç¨ææ°å·¥åºä¿¡æ¯] public static ToMessage MesOrderNewStepContent(string wkshopcode, string partcode, User us) { var sql = ""; List<object> list = new List<object>(); var dynamicParams = new DynamicParameters(); try { //MES工忥æ¾åå²å¼ç¨ææ°å·¥åºä¿¡æ¯ sql = @"select S.wo_code,S.seq,S.step_code,S.stepprice,isbott,isend from ( select top 1 wo_code from TK_Wrk_Man where wkshp_code=@wkshopcode and materiel_code=@partcode order by lm_date desc ) as A inner join TK_Wrk_Step S on A.wo_code=S.wo_code"; dynamicParams.Add("@wkshopcode", wkshopcode); dynamicParams.Add("@partcode", partcode); var data = DapperHelper.selectdata(sql, dynamicParams); mes.code = "200"; mes.count = data.Rows.Count; mes.data = data; mes.message = "æ¥è¯¢æå!"; } catch (Exception e) { mes.code = "300"; mes.count = 0; mes.message = e.Message; mes.data = null; } return mes; } #endregion #region[MES工忴¾åæäº¤] public static ToMessage MesOrderDistribution(string[] wocodelist, User us) VueWebCoreApi/Tools/ChannelActionFilterAttribute.cs
@@ -15,7 +15,7 @@ public class ChannelActionFilterAttribute: ActionFilterAttribute { ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); /// <summary> /// å¨Actionæ§è¡åæ§è¡ @@ -30,10 +30,10 @@ User us = JwtTools.Denocode(token.ToString()); base.OnActionExecuting(context); //妿åå¨ if (redis.Get<User>(us.rediskey, 0) !=null) if (redis.GetStringKey<User>(us.rediskey) !=null) { //è·åredisä¸å½åç¨æ·ä¿¡æ¯ User r_loginUser = redis.Get<User>(us.rediskey, 0); User r_loginUser = redis.GetStringKey<User>(us.rediskey); if (token != r_loginUser.token) { mes.code = "303"; @@ -44,7 +44,7 @@ else { //éç½®è¿ææ¶é´ redis.KeyExpire(us.rediskey, redis.secondsTimeOut); redis.SetExpire(us.rediskey, redis.secondsTimeOut); } } else //妿redisç»å½ç¨æ·ä¸ä¸åå¨å½åç¨æ· VueWebCoreApi/Tools/ChannelActionFilterAttributeApp.cs
@@ -11,7 +11,7 @@ public class ChannelActionFilterAttributeApp : ActionFilterAttribute { ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); RedisCommon redis = new RedisCommon(); /// <summary> /// å¨Actionæ§è¡åæ§è¡ VueWebCoreApi/Tools/RedisCommon.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,309 @@ using Newtonsoft.Json; using StackExchange.Redis; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace VueWebCoreApi.Tools { public class RedisCommon { //public static ILogger Log = UtilLogger<RedisCommon>.Log;//æ¥å¿è®°å½ //redisæ°æ®åºè¿æ¥å符串 private static readonly string RedisIpConnString = AppSetting.GetAppSetting("RedisConnIp"); private static readonly string RedisPortConnString = AppSetting.GetAppSetting("RedisConnPort"); private static readonly string RedisKeyTimeCont = AppSetting.GetAppSetting("RedisKeyTimeCont"); private string _conn = RedisIpConnString+":"+RedisPortConnString; private int _db = 0; //é»è®¤ç¼åè¿ææ¶é´åä½ç§ public int secondsTimeOut = Convert.ToInt32(RedisKeyTimeCont); //éæåé ä¿è¯å模å使ç¨çæ¯ä¸åå®ä¾çç¸å龿¥ private static ConnectionMultiplexer connection; public RedisCommon() { } /// <summary> /// æé 彿° /// </summary> /// <param name="db"></param> /// <param name="connectStr"></param> public RedisCommon(int db, string connectStr) { _conn = connectStr; _db = db; } /// <summary> /// ç¼åæ°æ®åºï¼æ°æ®åºè¿æ¥ /// </summary> public ConnectionMultiplexer CacheConnection { get { try { if (connection == null || !connection.IsConnected) { connection = new Lazy<ConnectionMultiplexer>(() => ConnectionMultiplexer.Connect(_conn)).Value; } } catch (Exception ex) { //Log.LogError("RedisHelper->CacheConnection åºé\r\n" + ex.ToString()); return null; } return connection; } } /// <summary> /// ç¼åæ°æ®åº /// </summary> public IDatabase CacheRedis => CacheConnection.GetDatabase(_db); #region --KEY/VALUEåå-- /// <summary> /// åæ¡åå¼ /// </summary> /// <param name="key">key</param> /// <param name="value">The value.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns> public bool StringSet(string key, string value) { return CacheRedis.StringSet(key, value); } /// <summary> /// ä¿åå个key value /// </summary> /// <param name="key">Redis Key</param> /// <param name="value">ä¿åçå¼</param> /// <param name="expiry">è¿ææ¶é´</param> /// <returns></returns> public bool StringSet(string key, string value, TimeSpan? expiry = default(TimeSpan?)) { return CacheRedis.StringSet(key, value, expiry); } /// <summary> /// ä¿åå¤ä¸ªkey value /// </summary> /// <param name="arr">key</param> /// <returns></returns> public bool StringSet(KeyValuePair<RedisKey, RedisValue>[] arr) { return CacheRedis.StringSet(arr); } /// <summary> /// æ¹éåå¼ /// </summary> /// <param name="keysStr">key</param> /// <param name="valuesStr">The value.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns> public bool StringSetMany(string[] keysStr, string[] valuesStr) { var count = keysStr.Length; var keyValuePair = new KeyValuePair<RedisKey, RedisValue>[count]; for (int i = 0; i < count; i++) { keyValuePair[i] = new KeyValuePair<RedisKey, RedisValue>(keysStr[i], valuesStr[i]); } return CacheRedis.StringSet(keyValuePair); } /// <summary> /// ä¿åä¸ä¸ªå¯¹è±¡ /// </summary> /// <typeparam name="T"></typeparam> /// <param name="key"></param> /// <param name="obj"></param> /// <returns></returns> public bool SetStringKey<T>(string key, T obj, TimeSpan? expiry = default(TimeSpan?)) { string json = JsonConvert.SerializeObject(obj); return CacheRedis.StringSet(key, json, expiry); } /// <summary> /// 追å å¼ /// </summary> /// <param name="key"></param> /// <param name="value"></param> public void StringAppend(string key, string value) { ////追å å¼ï¼è¿å追å åé¿åº¦ long appendlong = CacheRedis.StringAppend(key, value); } /// <summary> /// è·åå个keyçå¼ /// </summary> /// <param name="key">Redis Key</param> /// <returns></returns> public RedisValue GetStringKey(string key) { return CacheRedis.StringGet(key); } /// <summary> /// æ ¹æ®Keyè·åå¼ /// </summary> /// <param name="key">é®å¼</param> /// <returns>System.String.</returns> public string StringGet(string key) { try { return CacheRedis.StringGet(key); } catch (Exception ex) { //Log.LogError("RedisHelper->StringGet åºé\r\n" + ex.ToString()); return null; } } /// <summary> /// è·åå¤ä¸ªKey /// </summary> /// <param name="listKey">Redis Keyéå</param> /// <returns></returns> public RedisValue[] GetStringKey(List<RedisKey> listKey) { return CacheRedis.StringGet(listKey.ToArray()); } /// <summary> /// æ¹éè·åå¼ /// </summary> public string[] StringGetMany(string[] keyStrs) { var count = keyStrs.Length; var keys = new RedisKey[count]; var addrs = new string[count]; for (var i = 0; i < count; i++) { keys[i] = keyStrs[i]; } try { var values = CacheRedis.StringGet(keys); for (var i = 0; i < values.Length; i++) { addrs[i] = values[i]; } return addrs; } catch (Exception ex) { //Log.LogError("RedisHelper->StringGetMany åºé\r\n" + ex.ToString()); return null; } } /// <summary> /// è·åä¸ä¸ªkeyç对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="key"></param> /// <returns></returns> public T GetStringKey<T>(string key) { try { return JsonConvert.DeserializeObject<T>(CacheRedis.StringGet(key)); } catch (Exception ex) { //return new T(); return default(T); } } #endregion #region --å é¤è®¾ç½®è¿æ-- /// <summary> /// å é¤å个key /// </summary> /// <param name="key">redis key</param> /// <returns>æ¯å¦å 餿å</returns> public bool KeyDelete(string key) { return CacheRedis.KeyDelete(key); } /// <summary> /// å é¤å¤ä¸ªkey /// </summary> /// <param name="keys">rediskey</param> /// <returns>æåå é¤ç个æ°</returns> public long KeyDelete(RedisKey[] keys) { return CacheRedis.KeyDelete(keys); } /// <summary> /// 夿keyæ¯å¦åå¨ /// </summary> /// <param name="key">redis key</param> /// <returns></returns> public bool KeyExists(string key) { return CacheRedis.KeyExists(key); } /// <summary> /// éæ°å½åkey /// </summary> /// <param name="key">å°±çredis key</param> /// <param name="newKey">æ°çredis key</param> /// <returns></returns> public bool KeyRename(string key, string newKey) { return CacheRedis.KeyRename(key, newKey); } /// <summary> /// å é¤hasekey /// </summary> /// <param name="key"></param> /// <param name="hashField"></param> /// <returns></returns> public bool HaseDelete(RedisKey key, RedisValue hashField) { return CacheRedis.HashDelete(key, hashField); } /// <summary> /// ç§»é¤hashä¸çæå¼ /// </summary> /// <typeparam name="T"></typeparam> /// <param name="key"></param> /// <param name="dataKey"></param> /// <returns></returns> public bool HashRemove(string key, string dataKey) { return CacheRedis.HashDelete(key, dataKey); } /// <summary> /// 设置ç¼åè¿æ /// </summary> /// <param name="key"></param> /// <param name="datetime"></param> public void SetExpire(string key, int datetime) { CacheRedis.KeyExpire(key, DateTime.Now.AddSeconds(datetime)); } #endregion } } VueWebCoreApi/VueWebCoreApi.csproj
@@ -42,6 +42,7 @@ <PackageReference Include="NPOI" Version="2.5.6" /> <PackageReference Include="Quartz" Version="3.3.3" /> <PackageReference Include="ServiceStack.Redis" Version="5.0.0" /> <PackageReference Include="StackExchange.Redis" Version="2.7.10" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0" /> <PackageReference Include="System.Data.OleDb" Version="4.6.0" /> <PackageReference Include="System.Data.SqlClient" Version="4.5.0" />