Exemplo n.º 1
0
 /// <summary>
 /// 红包扫码计数
 /// </summary>
 /// <param name="activityName">活动名称</param>
 public void CountByName(string activityName)
 {
     lock (asyncLock)
     {
         try
         {
             if (!string.IsNullOrWhiteSpace(activityName))
             {
                 Expression <Func <TRP_ScanCount, bool> > exp = a => a.ActivityName == activityName;
                 var iquerable = idal.FindBy(exp);
                 var list      = iquerable.ToList();
                 if (list.Count == 0)
                 {
                     TRP_ScanCount model = new TRP_ScanCount();
                     model.ActivityName = activityName;
                     model.Count        = 1;
                     idal.Add(model);
                     idal.Save();
                 }
                 else
                 {
                     TRP_ScanCount model = list.Single();
                     model.Count = model.Count + 1;
                     idal.Edit(model);
                     idal.Save();
                 }
             }
         }
         catch (Exception ex)
         {
             Logger.Error(string.Format("红包扫码计数异常,异常信息:{0}", ex.ToString()));
         }
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// 根据活动id 和 活动名称 记录扫码次数
 /// </summary>
 /// <param name="activityId"></param>
 /// <param name="activityName"></param>
 public void CountByNameAndId(string activityId, string activityName)
 {
     lock (asyncLock)
     {
         try
         {
             if (!string.IsNullOrWhiteSpace(activityName))
             {
                 Expression <Func <TRP_ScanCount, bool> > exp     = a => 1 == 1;
                 Expression <Func <TRP_ScanCount, bool> > tempexp = a => 1 == 1;
                 if (!string.IsNullOrWhiteSpace(activityId))
                 {
                     exp     = a => a.ActivityId == activityId;
                     tempexp = a => a.ActivityName == activityName;
                     //多条件拼装
                     exp = CompileLinqSearch.AndAlso <TRP_ScanCount>(tempexp, exp);
                     var iquerable = idal.FindBy(exp);
                     var list      = iquerable.ToList();
                     if (list.Count == 0)
                     {
                         TRP_ScanCount model = new TRP_ScanCount();
                         model.ActivityName = activityName;
                         model.ActivityId   = activityId;
                         model.Count        = 1;
                         model.UpdateTime   = DateTime.Now;
                         idal.Add(model);
                         idal.Save();
                     }
                     else
                     {
                         TRP_ScanCount model = list.Single();
                         model.Count      = model.Count + 1;
                         model.UpdateTime = DateTime.Now;
                         idal.Edit(model);
                         idal.Save();
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             Logger.Error(string.Format("红包扫码计数异常,活动ID{0},活动名称{1}异常信息:{2}", activityId, activityName, ex.ToString()));
         }
     }
 }
Exemplo n.º 3
0
        //// 定义一个静态变量来保存类的实例
        //private static TRP_ScanCount_BLL mySingBll;

        //// 定义一个标识确保线程同步
        //private static readonly object locker = new object();


        //// 定义私有构造函数,使外界不能创建该类实例
        //private TRP_ScanCount_BLL()
        //{

        //}

        ////定义公有方法提供一个全局访问点。
        //public static TRP_ScanCount_BLL GetInstance()
        //{
        //    //这里的lock其实使用的原理可以用一个词语来概括“互斥”这个概念也是操作系统的精髓
        //    //其实就是当一个进程进来访问的时候,其他进程便先挂起状态
        //    if (mySingBll == null)//区别就在这里
        //    {
        //        lock (locker)
        //        {
        //            // 如果类的实例不存在则创建,否则直接返回
        //            if (mySingBll == null)
        //            {
        //                mySingBll = new TRP_ScanCount_BLL();
        //            }
        //        }
        //    }
        //    return mySingBll;
        //}

        /// <summary>
        /// 红包扫码计数
        /// </summary>
        /// <param name="activityId">活动id</param>
        public string CountById(string activityId)
        {
            string sum = "";

            lock (asyncLock)
            {
                try
                {
                    if (!string.IsNullOrWhiteSpace(activityId))
                    {
                        Expression <Func <TRP_ScanCount, bool> > exp  = a => a.ActivityId == activityId;
                        Expression <Func <TRP_ScanCount, bool> > exp1 = a => a.ActivityName == null;
                        exp = CompileLinqSearch.AndAlso(exp, exp1);
                        var iquerable = idal.FindBy(exp);
                        var list      = iquerable.ToList();
                        if (list.Count == 0)
                        {
                            TRP_ScanCount model = new TRP_ScanCount();
                            model.ActivityId = activityId;
                            model.Count      = 1;
                            idal.Add(model);
                            idal.Save();
                            sum = model.Count.ToString();
                        }
                        else
                        {
                            TRP_ScanCount model = list.Single();
                            model.Count = model.Count + 1;
                            idal.Edit(model);
                            idal.Save();
                            sum = model.Count.ToString();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.Error(string.Format("红包扫码计数异常,异常信息:{0}", ex.ToString()));
                }
            }
            return(sum);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 红包扫码计数
        /// </summary>
        /// <param name="activityid"></param>
        /// <param name="msg"></param>
        /// <param name="activityname"></param>
        /// <param name="url"></param>
        /// <returns></returns>
        public bool QrScanCount(string activityid, ref string msg, string activityname = "undefine ActivityName", string url = "undefine url")
        {
            lock (asyncLock)
            {
                bool success = false;

                try
                {
                    DynamicParameters param = new DynamicParameters();

                    if (!string.IsNullOrWhiteSpace(activityid))
                    {
                        param.Add("ActivityId", activityid);
                        param.Add("ActivityName", activityname);
                        string        querysql = @"SELECT * FROM TRP_ScanCount WHERE ActivityId=@ActivityId and ActivityName=@ActivityName";
                        TRP_ScanCount model    = idal.FindOne <TRP_ScanCount>(querysql, param, false);

                        if (model == null)
                        {
                            TRP_ScanCount entity = new TRP_ScanCount();
                            entity.Count        = 1;
                            entity.ActivityName = activityname;
                            entity.Url          = url;
                            entity.ActivityId   = activityid;
                            entity.UpdateTime   = DateTime.Now;
                            string insertsql = @"INSERT INTO TRP_ScanCount
                                          (
                                            [Count]
                                          ,[ActivityId]
                                          ,[ActivityName]
                                          ,[Url]
                                          ,[UpdateTime]
                                           )
                                        VALUES
                                           (
                                             @Count
                                             ,@ActivityId
                                             ,@ActivityName
                                             ,@Url
                                             ,@UpdateTime
                                            )            ";
                            success = idal.CreateEntity <TRP_ScanCount>(insertsql, entity);
                        }
                        else
                        {
                            model.Count = model.Count + 1;
                            param.Add("Count", model.Count);
                            string updatesql = @"UPDATE TRP_ScanCount SET  Count=@Count WHERE ActivityId=@ActivityId and ActivityName=@ActivityName";
                            idal.ExcuteNonQuery <TRP_ScanCount>(updatesql, param, false);
                            success = true;
                        }
                    }
                }
                catch (Exception ex)
                {
                    msg = "SERVER_ERROR";
                    Logger.Error(string.Format("红包扫码计数异常,异常信息:{0}", ex.ToString()));
                }

                return(success);
            }
        }