/// <summary>
        /// 通过手机号码领取
        /// </summary>
        /// <param name="phone"></param>
        /// <param name="activityid"></param>
        /// <param name="awardid"></param>
        /// <returns></returns>
        public PhoneQueryModel SavePhone(string phone, string activityid, string awardid)
        {
            PhoneQueryModel model   = null;
            bool            success = false;

            try
            {
                DynamicParameters param = new DynamicParameters();
                param.Add("ActivityId", activityid);
                param.Add("AwardDetailId", awardid);

                string querysql = @"SELECT A.ActivityId,A.AwardDetailId,C.AwardName,C.ReceiveImage,    
                                    A.ReceiveTime,A.SubmitTime,A.Phone,A.OpenId   
                                    FROM TRP_AwardReceive A LEFT JOIN  TRP_Award B ON A.AwardId=B.Id   
                                    LEFT JOIN TRP_AwardUrl C ON B.AwardName=C.AwardName     
                                                    WHERE A.ActivityId=@ActivityId and A.Phone=@Phone";


                param.Add("Phone", phone);
                param.Add("SubmitTime", DateTime.Now);

                string updatesql = @"UPDATE TRP_AwardReceive SET  Phone=@Phone,SubmitTime=@SubmitTime WHERE AwardDetailId=@AwardDetailId and ActivityId=@ActivityId";

                success = idal.ExcuteNonQuery <TRP_AwardReceive>(updatesql, param, false) > 0;



                model = idal.FindOne <PhoneQueryModel>(querysql, param, false);
            }
            catch (Exception ex)
            {
                Logger.Error(string.Format("根据手机号码领取奖品,异常信息:{0},phone:{1},活动id:{2}", ex.ToString(), phone, activityid));
            }
            return(model);
        }
        /// <summary>
        /// 通过手机号码领取
        /// </summary>
        /// <param name="phone"></param>
        /// <param name="activityid"></param>
        /// <param name="awardid"></param>
        /// <returns></returns>
        public PhoneQueryModel SavePhone(string phone, string activityid, string awardid, ref string return_code, ref string msg)
        {
            PhoneQueryModel model   = null;
            bool            success = false;

            try
            {
                DynamicParameters param = new DynamicParameters();
                param.Add("ActivityId", activityid);


                string querysql = @"SELECT A.ActivityId,A.AwardDetailId,C.AwardName,C.ReceiveImage,    
                                    A.ReceiveTime,A.SubmitTime,A.Phone,A.OpenId   
                                    FROM TRP_AwardReceive A LEFT JOIN  TRP_Award B ON A.AwardId=B.Id   
                                    LEFT JOIN TRP_AwardUrl C ON B.AwardName=C.AwardName     
                                                    WHERE A.ActivityId=@ActivityId and A.Phone=@Phone";


                param.Add("Phone", phone);

                //根据活动id与手机号码查询
                model = idal.FindOne <PhoneQueryModel>(querysql, param, false);

                param.Add("AwardDetailId", awardid);
                if (model != null)
                {
                    if (model.Phone == phone)
                    {
                        return_code = "ATTEND";
                    }
                    else
                    {
                        return_code = "HAD_RECEIVE";
                    }
                }


                //第一次参加
                else
                {
                    string updatesql = @"UPDATE TRP_AwardReceive SET  Phone=@Phone WHERE AwardDetailId=@AwardDetailId and ActivityId=@ActivityId";
                    success = idal.ExcuteNonQuery <TRP_AwardReceive>(updatesql, param, false) > 0;
                    //根据活动id与手机号码查询
                    model       = idal.FindOne <PhoneQueryModel>(querysql, param, false);
                    return_code = "SUCCESS";
                }
            }
            catch (Exception ex)
            {
                Logger.Error(string.Format("根据手机号码领取奖品,异常信息:{0},phone:{1},活动id:{2}", ex.ToString(), phone, activityid));
            }
            return(model);
        }
예제 #3
0
        public ResponseResult ReceiveByPhone([FromBody] JObject data)
        {
            string msg = "";

            //返回实体
            ResponseResult result = new ResponseResult();

            if (data["phone"] != null &&
                data["activityid"] != null &&
                data["awardid"] != null)
            {
                TRP_AwardReceive_BLL bll = TRP_AwardReceive_BLL.getInstance();

                string return_code = "";
                string phone       = data["phone"].ToString();
                string activityid  = data["activityid"].ToString();
                string awardid     = data["awardid"].ToString();


                PhoneQueryModel model = bll.SavePhone(phone, activityid, awardid, ref return_code, ref msg);
                if (model != null)
                {
                    result.return_code = return_code;
                    result.return_msg  = "";
                    result.return_info = model;
                    RecordLog(activityid, string.Format("用户参与游戏:{0},获取奖品:{1},用户扫码领取,输入手机号码:{2},时间:{3}", "【老虎机】", model.AwardName, phone, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
                              "用户参与游戏:【老虎机】,获取奖品,扫码进入", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.Url.AbsoluteUri, model.ReceiveImage);
                }
                else
                {
                    result.return_code = return_code;
                    result.return_msg  = "";
                    result.return_info = null;
                }
            }
            else
            {
                result.return_code = "ERROR";
                result.return_msg  = "参数错误";
                result.return_info = null;
            }
            return(result);
        }
예제 #4
0
        public ResponseResult GetAward(string activityid, string awardid)
        {
            string msg = "";

            //返回实体
            ResponseResult result = new ResponseResult();

            if (!string.IsNullOrWhiteSpace(activityid) &&
                !string.IsNullOrWhiteSpace(awardid))
            {
                TRP_AwardReceive_BLL bll = TRP_AwardReceive_BLL.getInstance();

                string return_code = "";


                PhoneQueryModel model = bll.GetAward(activityid, awardid, ref return_code, ref msg);

                if (return_code == "SUCCESS")
                {
                    result.return_code = return_code;
                    result.return_info = model;
                    RecordLog(activityid, string.Format("用户参与游戏:{0},获取奖品:{1},用户扫码领取,时间:{2}", "【老虎机】", model.AwardName, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
                              "用户参与游戏:【老虎机】,获取奖品,扫码进入", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.Url.AbsoluteUri, model.ReceiveImage);
                }
                else
                {
                    result.return_code = return_code;
                    result.return_info = null;
                }
            }
            else
            {
                result.return_code = "ERROR";
                result.return_msg  = "参数错误";
                result.return_info = null;
            }

            result.return_msg = msg;
            return(result);
        }
        /// <summary>
        /// 获取flash前端已经请求过的奖品
        /// </summary>
        /// <param name="activityid"></param>
        /// <param name="awardid"></param>
        /// <param name="return_code"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public PhoneQueryModel GetAward(string activityid, string awardid, ref string return_code, ref string msg)
        {
            PhoneQueryModel model = null;

            try
            {
                DynamicParameters param = new DynamicParameters();
                param.Add("ActivityId", activityid);
                param.Add("AwardDetailId", awardid);

                string querysql = @"SELECT A.ActivityId,A.AwardDetailId,C.AwardName,C.ReceiveImage,    
                                    A.ReceiveTime,A.SubmitTime,A.Phone,A.OpenId   
                                    FROM TRP_AwardReceive A LEFT JOIN  TRP_Award B ON A.AwardId=B.Id   
                                    LEFT JOIN TRP_AwardUrl C ON B.AwardName=C.AwardName     
                                                WHERE A.ActivityId=@ActivityId and A.AwardDetailId=@AwardDetailId";

                model = idal.FindOne <PhoneQueryModel>(querysql, param, false);

                return_code = "SUCCESS";

                //奖品已回收
                if (model == null)
                {
                    return_code = "HAD_RECYCLE";
                }

                //奖品还存在
                else
                {
                    //奖品已输入手机号码
                    if (model.Phone != null)
                    {
                        //奖品已领取
                        return_code = "HAD_RECEIVED";
                    }
                    else
                    {
                        //领取时间不为空  二维码已扫
                        if (model.SubmitTime != null)
                        {
                            return_code = "HAD_RECEIVED";
                        }
                        //领取时间为空  二维码置为已扫
                        else
                        {
                            param.Add("SubmitTime", DateTime.Now);

                            string updatesql = @"UPDATE TRP_AwardReceive SET  SubmitTime=@SubmitTime WHERE AwardDetailId=@AwardDetailId and ActivityId=@ActivityId";

                            idal.ExcuteNonQuery <TRP_AwardReceive>(updatesql, param, false);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return_code = "FAIL";
                msg         = "SERVER_ERROR";
                Logger.Error(string.Format("通过活动id与奖品id检索异常,异常信息:{0},活动id:{1},奖品id:{2}", ex.ToString(), activityid, awardid));
            }
            return(model);
        }
        /// <summary>
        /// 通过电话号码和活动id发奖
        /// </summary>
        /// <param name="phone"></param>
        /// <param name="activityid"></param>
        /// <param name="return_code"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public PhoneQueryModel GetAwards(string phone, string activityid, ref string return_code, ref string msg)
        {
            lock (asyncLock)
            {
                PhoneQueryModel model = null;
                try
                {
                    DynamicParameters param = new DynamicParameters();
                    param.Add("ActivityId", activityid);
                    param.Add("Phone", phone);

                    string querysql = @"SELECT A.ActivityId,A.AwardDetailId,C.AwardName,C.ReceiveImage,    
                                    A.ReceiveTime,A.SubmitTime,A.Phone,A.OpenId   
                                    FROM TRP_AwardReceive A LEFT JOIN  TRP_Award B ON A.AwardId=B.Id   
                                    LEFT JOIN TRP_AwardUrl C ON B.AwardName=C.AwardName     
                                                    WHERE A.ActivityId=@ActivityId and A.Phone=@Phone";

                    model = idal.FindOne <PhoneQueryModel>(querysql, param, false);

                    //首次参加活动
                    if (model == null)
                    {
                        return_code = "FIRST_TIME";

                        //请求奖品
                        AwardsInfoModel awardsModel = GetAwardsInfo(activityid);

                        if (string.IsNullOrWhiteSpace(awardsModel.Class))
                        {
                            Initialize(activityid);
                            //奖品初始化

                            awardsModel = GetAwardsInfo(activityid);
                        }

                        if (awardsModel != null &&
                            string.IsNullOrWhiteSpace(awardsModel.Class))
                        {
                            return_code = "NO_AWARDS";
                        }
                        else
                        {
                            //解密奖品详情id
                            var detailid = DESEncrypt.Decrypt(awardsModel.id, _key);

                            //领奖
                            model = SavePhone(phone, activityid, detailid);
                        }
                    }
                    else
                    {
                        //已参加活动,但是还未领取
                        if (model.ReceiveTime == null)
                        {
                            return_code = "WAIT_RECEIVE";
                        }

                        //已参加活动,且已领取
                        else
                        {
                            return_code = "ATTENDED";
                        }
                    }
                }
                catch (Exception ex)
                {
                    return_code = "FAIL";
                    msg         = "SERVER_ERROR";
                    Logger.Error(string.Format("通过电话号码和活动id检索异常,异常信息:{0},phone:{1},活动id:{2}", ex.ToString(), phone, activityid));
                }
                return(model);
            }
        }
예제 #7
0
        public ResponseResult GetAwardByPhone([FromBody] JObject data)
        {
            string msg = "";

            //返回实体
            ResponseResult result = new ResponseResult();

            if (data["phone"] != null && data["activityid"] != null)
            {
                TRP_AwardReceive_BLL bll = TRP_AwardReceive_BLL.getInstance();
                string phone             = data["phone"].ToString();
                string activityid        = data["activityid"].ToString();
                string return_code       = "";


                //1.根据手机号码和活动id判断是否参与情况
                PhoneQueryModel model = bll.GetAwards(phone, activityid, ref return_code, ref msg);
                if (return_code == "FIRST_TIME")
                {
                    result.return_code = return_code;
                    result.return_info = model;
                    RecordLog(activityid, string.Format("【首次参与】用户输入手机号码:{0},获取奖品,时间:{1}", phone, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
                              "输入手机号码,首次参与", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.Url.AbsoluteUri, model.ReceiveImage);
                }

                // 1.1第一次参加,则请求奖品,填充手机号码

                // 1.2已经参加,奖品已领取
                else if (return_code == "ATTENDED")
                {
                    result.return_code = return_code;
                    result.return_info = null;
                    RecordLog(activityid, string.Format("【已领取】用户输入相同手机号码:{0},奖品已领取,提示已参加活动,时间:{1}", phone, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
                              "输入相同手机号码,再次参与,提示已参加活动", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.Url.AbsoluteUri, model.ReceiveImage);
                }

                // 1.3已经参加,奖品还未领取
                else if (return_code == "WAIT_RECEIVE")
                {
                    result.return_code = return_code;
                    result.return_info = model;
                    RecordLog(activityid, string.Format("【再次参与】用户输入相同手机号码:{0},获取未领取奖品,时间:{1}", phone, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
                              "输入相同手机号码,再次参与,获取未领取奖品", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.Url.AbsoluteUri, model.ReceiveImage);
                }
                else if (return_code == "NO_AWARDS")
                {
                    result.return_code = return_code;
                    result.return_info = model;
                    RecordLog(activityid, string.Format("【获取奖品】用户输入手机号码:{0},未获取到奖品,时间:{1}", phone, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
                              "输入手机号码,未获取到奖品", HttpContext.Current.Request.UserHostAddress, HttpContext.Current.Request.Url.AbsoluteUri);
                }
            }
            else
            {
                result.return_code = "ERROR";
                result.return_msg  = "参数错误";
                result.return_info = null;
            }
            result.return_msg = msg;
            return(result);
        }