/// <summary> /// /// </summary> /// <param name="activityId"></param> public bool IsInDate(string activityId, string QRRCode, int limitedTime) { lock (asyncLock) { bool isExpiryDate = false; try { if (!string.IsNullOrWhiteSpace(activityId) && !string.IsNullOrWhiteSpace(QRRCode)) { Expression <Func <TRP_QRCodeScanLimited, bool> > exp = a => a.ActivityId == activityId; Expression <Func <TRP_QRCodeScanLimited, bool> > exp1 = a => a.QRRCode == QRRCode; //多条件拼装 exp = CompileLinqSearch.AndAlso <TRP_QRCodeScanLimited>(exp, exp1); var iquerable = idal.FindBy(exp); var list = iquerable.ToList(); if (list.Count == 0) { TRP_QRCodeScanLimited model = new TRP_QRCodeScanLimited(); model.ActivityId = activityId; model.QRRCode = QRRCode; model.LimitedCount = 1; model.UpdateTime = DateTime.Now; idal.Add(model); idal.Save(); isExpiryDate = true; } else { TRP_QRCodeScanLimited model = list.FirstOrDefault(); //二维码已经过期 if (Convert.ToInt32(model.LimitedCount) >= limitedTime) { isExpiryDate = false; } //二维码还未过期,次数累计 else { isExpiryDate = true; model.LimitedCount = model.LimitedCount + 1; model.UpdateTime = DateTime.Now; idal.Edit(model); idal.Save(); } } } } catch (Exception ex) { Logger.Error(string.Format("二维码guid扫码计数异常,异常信息:{0}", ex.ToString())); } return(isExpiryDate); } }
/// <summary> /// 判断二维码是否过期 /// </summary> /// <param name="activityId"></param> public bool IsOutofdate(string guid, ref string msg, int times = 1) { int _qrcodetimes = Convert.ToInt32(ConfigurationManager.AppSettings["qrcodetimes"]); if (_qrcodetimes > times) { times = _qrcodetimes; } lock (asyncLock) { bool success = false; try { DynamicParameters param = new DynamicParameters(); if (!string.IsNullOrWhiteSpace(guid)) { param.Add("QRRCode", guid); string querysql = @"SELECT * FROM TRP_QRCodeScanLimited WHERE QRRCode=@QRRCode"; TRP_QRCodeScanLimited model = idal.FindOne <TRP_QRCodeScanLimited>(querysql, param, false); if (model == null) { TRP_QRCodeScanLimited entity = new TRP_QRCodeScanLimited(); entity.LimitedCount = 1; entity.QRRCode = guid; entity.UpdateTime = DateTime.Now; string insertsql = @"INSERT INTO TRP_QRCodeScanLimited ( [LimitedCount] ,[QRRCode] ,[UpdateTime] ) VALUES ( @LimitedCount ,@QRRCode ,@UpdateTime ) "; idal.CreateEntity <TRP_QRCodeScanLimited>(insertsql, entity); success = true; } else { if (model.LimitedCount < times) { model.LimitedCount = model.LimitedCount + 1; param.Add("LimitedCount", model.LimitedCount); string updatesql = @"UPDATE TRP_QRCodeScanLimited SET LimitedCount=@LimitedCount WHERE QRRCode=@QRRCode"; idal.ExcuteNonQuery <TRP_QRCodeScanLimited>(updatesql, param, false); success = true; } } } } catch (Exception ex) { msg = "SERVER_ERROR"; Logger.Error(string.Format("判断二维码是否过期异常,异常信息:{0}", ex.ToString())); } return(success); } }