/// <summary>
        /// 领奖
        /// </summary>
        /// <param name="model"></param>
        public bool update(string id, string openid)
        {
            bool flag = false;

            try
            {
                Expression <Func <TRP_AwardReceive, bool> > exp     = a => 1 == 1;
                Expression <Func <TRP_AwardReceive, bool> > tempexp = a => 1 == 1;
                if (!string.IsNullOrWhiteSpace(id))
                {
                    var efid = Convert.ToInt32(id);
                    exp     = a => a.AwardDetailId == efid;
                    tempexp = a => a.OpenId == openid;

                    //多条件拼装
                    exp = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp);
                    Dictionary <string, object> dic = new Dictionary <string, object>();

                    tempexp = a => a.ReceiveTime.Equals(null);

                    //多条件拼装
                    exp = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp);

                    dic.Add("ReceiveTime", DateTime.Now);
                    idal.update(exp, dic);
                    flag = true;
                }
            }
            catch (Exception ex)
            {
                Logger.Error(string.Format("核销领奖异常,异常信息:{0}", ex.ToString()));
            }
            return(flag);
        }
        /// <summary>
        /// 奖品是否已领取
        /// </summary>
        /// <param name="openId"></param>
        /// <returns></returns>
        public bool isGetAward(string activityId, string giftid)
        {
            bool flag = false;

            try
            {
                Expression <Func <TRP_AwardReceive, bool> > exp     = a => 1 == 1;
                Expression <Func <TRP_AwardReceive, bool> > tempexp = a => 1 == 1;

                exp = a => a.SubmitTime != null;
                int efgiftId = Convert.ToInt32(giftid);
                tempexp = a => a.AwardDetailId == efgiftId;
                exp     = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp);

                if (!string.IsNullOrWhiteSpace(activityId))
                {
                    int efId = Convert.ToInt32(activityId);
                    tempexp = a => a.ActivityId == efId;
                    exp     = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp);
                }

                var list = idal.FindBy(exp).ToList();
                if (list.Count > 0)
                {
                    flag = true;
                }
            }
            catch (Exception ex)
            {
                Logger.Error(string.Format("判断奖品是否已领取异常,异常信息{0}", ex.ToString()));
            }

            return(flag);
        }
        /// <summary>
        /// 此微信号是否已参加本次活动
        /// </summary>
        /// <param name="activityId"></param>
        /// <returns></returns>
        public bool isExistWxByActivity(string activityId, string openId)
        {
            bool flag = false;

            try
            {
                Expression <Func <TRP_AwardReceive, bool> > exp     = a => 1 == 1;
                Expression <Func <TRP_AwardReceive, bool> > tempexp = a => 1 == 1;
                if (!string.IsNullOrWhiteSpace(activityId))
                {
                    int dbActivityId = Convert.ToInt32(activityId);
                    tempexp = a => a.ActivityId == dbActivityId;
                    //多条件拼装
                    exp = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp);
                }
                if (!string.IsNullOrWhiteSpace(openId))
                {
                    tempexp = a => a.OpenId == openId;
                    //多条件拼装
                    exp = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp);
                }

                var list = idal.FindBy(exp).ToList();
                if (list.Count > 0)
                {
                    flag = true;
                }
            }
            catch (Exception ex)
            {
                Logger.Error(string.Format("此微信号是否已参加本次活动异常,异常信息:{0},活动Id:{1}", ex.ToString(), activityId));
            }
            return(flag);
        }
        /// <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);
            }
        }
示例#5
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()));
         }
     }
 }
示例#6
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);
        }
示例#7
0
        /// <summary>
        /// 根据条件获取列表
        /// </summary>
        /// <param name="querymodel">条件</param>
        /// <returns></returns>
        public List <SYS_MENU_BUTTON> GetList(SYS_MENU_BUTTON querymodel)
        {
            List <SYS_MENU_BUTTON> list = null;

            using (var dbcontext = DbFactory.Create())
            {
                try
                {
                    int id = Convert.ToInt32(querymodel.ID);
                    Expression <Func <SYS_MENU_BUTTON, bool> > exp  = a => a.ID == id;
                    Expression <Func <SYS_MENU_BUTTON, bool> > temp = a => 1 == 1;
                    exp  = CompileLinqSearch.AndAlso(exp, temp);
                    list = dbcontext.Find(exp);
                }
                catch (Exception ex)
                {
                    Logger.Error(string.Format("SYS_MENU_BUTTON_BLL 根据条件获取列表异常,异常信息:{0}", ex.ToString()));
                }
            }
            return(list);
        }
        /// <summary>
        /// 奖品还未领取
        /// ReceiveTime=null,openId=value,activityId=value
        /// </summary>
        /// <param name="openId"></param>
        /// <param name="activityId"></param>
        /// <returns>奖品未领 返回model 否则返回null</returns>
        public TRP_AwardReceive hadTakeAward(string openId, string activityId)
        {
            TRP_AwardReceive model = null;

            try
            {
                Expression <Func <TRP_AwardReceive, bool> > exp     = a => 1 == 1;
                Expression <Func <TRP_AwardReceive, bool> > tempexp = a => 1 == 1;
                tempexp = a => a.ReceiveTime.Equals(null);
                exp     = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp);
                if (!string.IsNullOrWhiteSpace(openId))
                {
                    tempexp = a => a.OpenId == openId.Trim();
                    //多条件拼装
                    exp = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp);
                }

                if (!string.IsNullOrWhiteSpace(activityId))
                {
                    int efId = Convert.ToInt32(activityId);
                    tempexp = a => a.ActivityId == efId;
                    exp     = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp);
                }



                var list = idal.FindBy(exp).ToList();
                if (list.Count > 0)
                {
                    model = list.FirstOrDefault();
                }
            }
            catch (Exception ex)
            {
                Logger.Error(string.Format("判断奖品是否已领取异常,异常信息{0}", ex.ToString()));
            }

            return(model);
        }
        /// <summary>
        /// 判断此微信号参加是否在规定次数以内
        /// </summary>
        /// <param name="activityId"></param>
        /// <param name="openId"></param>
        /// <param name="times"></param>
        /// <returns></returns>
        public bool isAttendWxByActivity(string activityId, string openId, int times)
        {
            bool flag = false;

            try
            {
                Expression <Func <TRP_AwardReceive, bool> > exp     = a => 1 == 1;
                Expression <Func <TRP_AwardReceive, bool> > tempexp = a => 1 == 1;
                if (!string.IsNullOrWhiteSpace(activityId))
                {
                    int dbActivityId = Convert.ToInt32(activityId);
                    tempexp = a => a.ActivityId == dbActivityId;
                    //多条件拼装
                    exp = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp);
                }
                if (!string.IsNullOrWhiteSpace(openId))
                {
                    tempexp = a => a.OpenId == openId;
                    //多条件拼装
                    exp = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp);
                }

                tempexp = a => a.ReceiveTime != null;
                //多条件拼装
                exp = CompileLinqSearch.AndAlso <TRP_AwardReceive>(tempexp, exp);

                int attendtimes = idal.FindBy(exp).ToList().Count;
                if (attendtimes >= times)
                {
                    flag = true;
                }
            }
            catch (Exception ex)
            {
                Logger.Error(string.Format("判断此微信号参加是否在规定次数以内异常,异常信息:{0},活动Id:{1}", ex.ToString(), activityId));
            }
            return(flag);
        }