public ActionResult Index()
 {
     for (int i = 0; i < 500; i++)
     {
         AwardsInfoModel model = GetAwardsInfo("171");
         Common.Helper.Logger.Info(JsonConvert.SerializeObject(model));
     }
     return(View());
 }
        /// <summary>
        ///  是否已扫
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public bool isScan(AwardsInfoModel awardsInfo)
        {
            bool flag = false;
            View_AwardReceive_BLL bll = viewDi.getBll();
            var id = DESEncrypt.Decrypt(awardsInfo.id, _key);

            flag = bll.isExist(id);
            return(flag);
        }
示例#3
0
        public JsonResult <AwardsInfoModel> GetAward(string activityid)
        {
            TRP_AwardReceive_BLL bll = TRP_AwardReceive_BLL.getInstance();

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

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

                awardsModel = bll.GetAwardsInfo(activityid);
            }
            awardsModel.id = DESEncrypt.Decrypt(awardsModel.id, ConfigurationManager.AppSettings["encryption"]);

            return(Json(awardsModel));
        }
        /// <summary>
        /// 根据活动id获取奖品信息
        /// </summary>
        /// <param name="activityId"></param>
        /// <returns></returns>
        public AwardsInfoModel GetAwardsInfo(string activityId, string activityName)
        {
            AwardsInfoModel awardsInfo = null;

            try
            {
                HttpHelper httpHelper = new HttpHelper();
                string     awards     = httpHelper.HttpGet(String.Format("http://www.chinazhihuiping.com:89/RedPacketService/GetRedPacketServie?activityId={0}", activityId), "");
                //string awards = httpHelper.HttpGet(String.Format("http://www.chinazhihuiping.com:89/RedPacketService/GetRedPacketServie?activityId={0}", activityId), "");
                if (string.IsNullOrWhiteSpace(awards))
                {
                    return(awardsInfo);
                }
                //反序列化获取奖品信息
                awardsInfo = JsonConvert.DeserializeObject <AwardsInfoModel>(awards);
            }
            catch (Exception ex)
            {
                Common.Helper.Logger.Info(string.Format("" + activityName + "根据活动id获取奖品信息异常,异常信息:{0}", ex.ToString()));
            }
            return(awardsInfo);
        }
        /// <summary>
        /// 输手机号码 领取红包奖品
        /// </summary>
        /// <param name="url"></param>
        /// <param name="activityId"></param>
        /// <param name="flag"></param>
        /// <param name="activityName"></param>
        /// <returns></returns>
        public ActionResult Index(string url, string activityId, string flag, string activityName, string computername)
        {
            ActionResult empty = new EmptyResult();

            try
            {
                if (string.IsNullOrWhiteSpace(flag))
                {
                    //扫码计数-所有
                    scanCountDi.getBll().CountByNameAndId(activityId, activityName);
                }
                else
                {
                    //http://www.chinazhihuiping.com/wxredpackets/SY_WDActivity/Activity?activityId={0}&flag={1}
                    scanCountDi.getBll().CountByNameAndId(activityId, "" + activityName + "重定向");
                }
                AwardsInfoModel awardsModel = new AwardsInfoModel();
                TRP_ClientLog   entity      = new TRP_ClientLog();
                entity.CreateTime = DateTime.Now;
                entity.DeleteMark = false;
                entity.Enable     = true;
                entity.PageUrl    = HttpContext.Request.Url.AbsoluteUri ?? "http://www.chinazhihuiping.com/wxredpackets/PhoneGet/Index";
                entity.IPAddress  = HttpContext.Request.UserHostAddress ?? "127.0.0.1";
                entity.ActivityId = Convert.ToInt32(activityId);

                //请求奖品
                awardsModel = GetAwardsInfo(activityId, activityName);

                //奖品实体为null
                if (awardsModel == null)
                {
                    Common.Helper.Logger.Info(string.Format("awardsModel == null"));

                    return(View("Error"));
                }

                //奖品实体的类型为null
                if (awardsModel.Class != null)
                {
                    //奖品实体的类型为""
                    if (awardsModel.Class == "")
                    {
                        Common.Helper.Logger.Info(string.Format("awardsModel.Class==''"));

                        return(View("Error"));
                    }
                }

                //获取奖品的类型实现奖品页面的跳转
                if (string.IsNullOrWhiteSpace(computername))
                {
                    ResponseRedirect(string.Format("" + url + "?&type=&id={0}", awardsModel.id));
                }
                else
                {
                    ResponseRedirect(string.Format("" + url + "?&type=&id={0}&computername={1}", awardsModel.id, computername));
                }

                return(empty);
            }
            catch (Exception ex)
            {
                Common.Helper.Logger.Info(string.Format("" + activityName + "进入领奖页面异常,异常信息:{0}", ex.ToString()));
                Response.Redirect(string.Format("http://www.chinazhihuiping.com/wxredpackets/PhoneGet/Index?url={0}&activityId={1}&flag={2}&activityName={3}", url, activityId, flag, activityName));
                return(empty);
            }
        }
        /// <summary>
        /// 发现金
        /// </summary>
        /// <returns></returns>
        public ActionResult GiveMoney(RequestModel request)
        {
            ActionResult empty = new EmptyResult();

            try
            {
                //扫码计数-所有
                scanCountDi.getBll().CountByNameAndId(request.activityId, request.activityName);


                #region 数据库日志记录  公共部分

                TRP_ClientLog entity = new TRP_ClientLog();
                entity.CreateTime = DateTime.Now;
                entity.DeleteMark = false;
                entity.Enable     = true;
                entity.PageUrl    = HttpContext.Request.Url.AbsoluteUri ?? "http://www.chinazhihuiping.com/wxredpackets/ReGaoPark/GiveMoney";
                entity.IPAddress  = HttpContext.Request.UserHostAddress ?? "127.0.0.1";
                entity.ActivityId = Convert.ToInt32(request.activityId);

                #endregion


                //获取微信用户信息
                wxUserInfoModel wxUser = GetWxUserInfo(request.code);

                if (wxUser == null)
                {
                    Response.Redirect(request.url + "&flag=1");
                    return(empty);
                }

                //微信用户openid
                string openid = wxUser.Openid;

                //保存微信信息
                if (!isExistOpenId(wxUser.Openid))
                {
                    //保存用户微信信息
                    saveUserInfo(wxUser);
                }

                TRP_AwardReceive receivedModel = null;

                #region 今天已参加活动

                if (isAttendToday(request.activityId, wxUser.Openid))
                {
                    //判断奖品是否已领
                    receivedModel = awardDi.getBll().hadTakeAward(wxUser.Openid, request.activityId);

                    #region 奖品已核销

                    //奖品已领
                    if (receivedModel == null)
                    {
                        Response.Redirect(request.url + "&flag=1");
                        return(empty);
                    }

                    #endregion

                    #region 奖品还未核销

                    //奖品还未领取
                    else
                    {
                        //获取奖品ID  int
                        string awardId = receivedModel.AwardDetailId.ToString();

                        //获取奖品详情
                        TRP_AwardDetail detailModel = detailDi.getBll().GetEntityById(awardId);

                        //奖品名称
                        string awardsName = "";

                        //加密奖品id
                        string ecodeAwardId = DESEncrypt.Encrypt(awardId, _key);

                        if (detailModel != null)
                        {
                            //奖品名称
                            awardsName = detailModel.AwardName;
                        }
                        else
                        {
                            Response.Redirect(request.url + "&flag=1");
                            return(empty);
                        }

                        //奖品类型
                        if (!string.IsNullOrWhiteSpace(awardsName))
                        {
                            GiveCash(awardsName, wxUser.Openid, request);
                        }
                        else
                        {
                            Response.Redirect(request.url + "&flag=1");
                            return(empty);
                        }

                        entity.Description = string.Format("用户在{0}点击红包,现金红包(为重复扫码,上次未核销奖品)", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        entity.PageDesc    = "实物扫码,上次未核销奖品";
                        entity.ActivityId  = Convert.ToInt32(request.activityId);
                        logDi.getBll().SaveLog(entity);
                        return(View("GiveMoney"));
                    }
                    #endregion
                }

                #endregion

                #region 今天还未参加活动  则请求奖品

                AwardsInfoModel awardsModel = new AwardsInfoModel();

                //请求奖品
                awardsModel = GetAwardsInfo(request.activityId);

                //奖品实体为null
                if (awardsModel == null)
                {
                    Response.Redirect(request.url + "&flag=1");
                    return(empty);
                }

                //奖品实体的类型为null
                if (awardsModel.Class != null)
                {
                    //奖品实体的类型为""
                    if (awardsModel.Class == "")
                    {
                        Response.Redirect(request.url + "&flag=1");
                        return(empty);
                    }
                }

                #endregion

                //发钱
                if (GiveCash(awardsModel.Class, openid, request))
                {
                    //保存领奖信息-测试
                    saveScanInfo(wxUser.Openid, awardsModel.id);
                    saveUserAwardReceiveInfo(wxUser.Openid, awardsModel.id);
                    return(View("GiveMoney"));
                }
                else
                {
                    Response.Redirect(request.url + "&flag=1");
                    return(empty);
                }
            }
            catch (Exception ex)
            {
                Response.Redirect(request.url);
                Common.Helper.Logger.Info(string.Format("获取用户微信Openid,发现金异常,异常信息:{0}", ex.ToString()));
                return(empty);
            }
        }
        /// <summary>
        ///  ViewData["Openid"] = "";
        ////ViewData["wxName"] = "RandyField";
        ////ViewData["AwardDetailId"] =  "";
        ////ViewData["AwardName"] =  "";
        ////ViewData["Activity"] =  "";
        ////ViewData["Type"] = "A";
        ////return View();
        ////ActionResult empty = new EmptyResult();
        /// 热高乐园红包雨活动
        /// </summary>
        /// <param name="activityId"></param>
        /// <param name="flag"></param>
        /// <returns></returns>
        public ActionResult Activity(string activityId, string flag, string guid)
        {
            /*
             * if (!string.IsNullOrWhiteSpace(guid))
             * {
             *  if (!IsInDate(activityId, guid, 10))
             *  {
             *      return View("OutOfDate");
             *  }
             * }
             * //未传guid
             * else
             * {
             *  return View("OutOfDate");
             * }
             */
            ActionResult empty = new EmptyResult();

            try
            {
                if (string.IsNullOrWhiteSpace(flag))
                {
                    //扫码计数-所有
                    scanCountDi.getBll().CountByNameAndId(activityId, "【热高乐园红包雨】");
                }
                else
                {
                    if (flag.Trim() == "1")
                    {
                        scanCountDi.getBll().CountByNameAndId(activityId, "【热高乐园红包雨】发生重定向-现金红包跳转)");
                    }
                    else
                    {
                        scanCountDi.getBll().CountByNameAndId(activityId, "【热高乐园红包雨】发生重定向-非现金红包跳转)");
                    }
                }

                //日志记录公共部分
                AwardsInfoModel awardsModel = new AwardsInfoModel();
                TRP_ClientLog   entity      = new TRP_ClientLog();
                entity.CreateTime = DateTime.Now;
                entity.DeleteMark = false;
                entity.Enable     = true;
                entity.PageUrl    = HttpContext.Request.Url.AbsoluteUri ?? "http://www.chinazhihuiping.com/wxredpackets/Test/Activity";
                entity.IPAddress  = HttpContext.Request.UserHostAddress ?? "127.0.0.1";
                entity.ActivityId = Convert.ToInt32(activityId);

                //请求奖品
                awardsModel = GetAwardsInfo(activityId);

                //奖品实体为空
                if (awardsModel == null)
                {
                    Dictionary <int, string> dic = new Dictionary <int, string>();
                    dic.Add(1, "https://shop13299622.wxrrd.com/coupon/get_code/68929");
                    dic.Add(2, "https://shop13299622.wxrrd.com/coupon/get_code/68928");
                    dic.Add(3, "https://shop13299622.wxrrd.com/coupon/get_code/68927");
                    dic.Add(4, "https://shop13299622.wxrrd.com/coupon/get_code/68926");
                    dic.Add(5, "https://shop13299622.wxrrd.com/coupon/get_code/68925");
                    dic.Add(6, "https://shop13299622.wxrrd.com/coupon/get_code/68924");

                    dic.Add(7, "https://shop13299622.wxrrd.com/coupon/get_code/68923");
                    dic.Add(8, "https://shop13299622.wxrrd.com/coupon/get_code/68922");
                    dic.Add(9, "https://shop13299622.wxrrd.com/coupon/get_code/68921");

                    //RedirectRandom(dic, 9);
                    scanCountDi.getBll().CountByNameAndId(activityId, "【热高乐园红包雨】-取奖品awardsModel == null, 随机跳转");
                    return(empty);
                }

                //奖品的Class不为空
                if (awardsModel.Class != null)
                {
                    if (awardsModel.Class == "")
                    {
                        Dictionary <int, string> dic = new Dictionary <int, string>();
                        dic.Add(1, "https://shop13299622.wxrrd.com/coupon/get_code/68929");
                        dic.Add(2, "https://shop13299622.wxrrd.com/coupon/get_code/68928");
                        dic.Add(3, "https://shop13299622.wxrrd.com/coupon/get_code/68927");
                        dic.Add(4, "https://shop13299622.wxrrd.com/coupon/get_code/68926");
                        dic.Add(5, "https://shop13299622.wxrrd.com/coupon/get_code/68925");
                        dic.Add(6, "https://shop13299622.wxrrd.com/coupon/get_code/68924");

                        dic.Add(7, "https://shop13299622.wxrrd.com/coupon/get_code/68923");
                        dic.Add(8, "https://shop13299622.wxrrd.com/coupon/get_code/68922");
                        dic.Add(9, "https://shop13299622.wxrrd.com/coupon/get_code/68921");

                        //RedirectRandom(dic, 9);

                        scanCountDi.getBll().CountByNameAndId(activityId, "【热高乐园红包雨】-取奖品awardsModel.Class=='', 随机跳转");
                        return(empty);
                    }

                    //如果是券 则直接写日志,跳转
                    string awardsCard = "卡";

                    #region 卡
                    if (awardsModel.Class.Contains(awardsCard))
                    {
                        Dictionary <string, string> dicStr = new Dictionary <string, string>();

                        //50元
                        dicStr.Add("50元青色卡", "https://shop13299622.wxrrd.com/coupon/get_code/68929");
                        dicStr.Add("50元橘色卡", "https://shop13299622.wxrrd.com/coupon/get_code/68928");
                        dicStr.Add("50元橙色卡", "https://shop13299622.wxrrd.com/coupon/get_code/68927");
                        dicStr.Add("50元黄色卡", "https://shop13299622.wxrrd.com/coupon/get_code/68926");
                        dicStr.Add("50元土黄色卡", "https://shop13299622.wxrrd.com/coupon/get_code/68925");
                        dicStr.Add("50元紫色卡", "https://shop13299622.wxrrd.com/coupon/get_code/68924");

                        //100元
                        dicStr.Add("100元蓝色卡", "https://shop13299622.wxrrd.com/coupon/get_code/68923");
                        dicStr.Add("100元绿色卡", "https://shop13299622.wxrrd.com/coupon/get_code/68922");
                        dicStr.Add("100元青色卡", "https://shop13299622.wxrrd.com/coupon/get_code/68921");

                        //通票
                        //dicStr.Add("通票卡", "https://shop13299622.wxrrd.com/coupon/get_code/68930");
                        if (awardsModel.Class.Trim() == "通票卡")
                        {
                            scanCountDi.getBll().CountByNameAndId(activityId, string.Format("【热高乐园红包雨】-奖品:{0}", "100元蓝色卡"));
                            RedirectRedPocket(dicStr, "100元蓝色卡");
                        }
                        else
                        {
                            RedirectRedPocket(dicStr, awardsModel.Class);
                            scanCountDi.getBll().CountByNameAndId(activityId, string.Format("【热高乐园红包雨】-奖品:{0}", awardsModel.Class));
                        }

                        entity.Description = string.Format("用户在{0}点击红包,【热高乐园红包雨】二维码扫码,{1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), awardsModel.Class);

                        //数据库记录日志
                        logDi.getBll().SaveLog(entity);

                        return(empty);
                    }
                    #endregion

                    //非卡
                    else
                    {
                        //非卡重定向 至微信领奖页
                        string url = string.Format("http://www.chinazhihuiping.com/wxredpackets/Test/WXActivity?activityId={0}&giftType={1}&giftId={2}", activityId, awardsModel.Class, awardsModel.id);

                        string urlencode = System.Web.HttpUtility.UrlEncode(url, System.Text.Encoding.UTF8);

                        ResponseWXRedirect(urlencode);

                        return(empty);
                    }
                }
                else
                {
                    Dictionary <int, string> dic = new Dictionary <int, string>();
                    dic.Add(1, "https://shop13299622.wxrrd.com/coupon/get_code/68929");
                    dic.Add(2, "https://shop13299622.wxrrd.com/coupon/get_code/68928");
                    dic.Add(3, "https://shop13299622.wxrrd.com/coupon/get_code/68927");
                    dic.Add(4, "https://shop13299622.wxrrd.com/coupon/get_code/68926");
                    dic.Add(5, "https://shop13299622.wxrrd.com/coupon/get_code/68925");
                    dic.Add(6, "https://shop13299622.wxrrd.com/coupon/get_code/68924");

                    dic.Add(7, "https://shop13299622.wxrrd.com/coupon/get_code/68923");
                    dic.Add(8, "https://shop13299622.wxrrd.com/coupon/get_code/68922");
                    dic.Add(9, "https://shop13299622.wxrrd.com/coupon/get_code/68921");

                    //RedirectRandom(dic, 9);
                    scanCountDi.getBll().CountByNameAndId(activityId, "【热高乐园红包雨】-取奖品awardsModel.Class == null, 随机跳转");
                    return(empty);
                }
            }
            catch (Exception ex)
            {
                Common.Helper.Logger.Info(string.Format("【热高乐园红包雨】进入领奖页面异常,异常信息:{0}", ex.ToString()));
                Response.Redirect(string.Format("http://www.chinazhihuiping.com/wxredpackets/ReGaoPark/Activity?activityId={0}&flag={1}", activityId, 2));
                return(empty);
            }
        }
示例#8
0
        /// <summary>
        /// 微信控制器
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ActionResult WXActivity(RequestModel request)
        {
            ActionResult empty = new EmptyResult();

            try
            {
                #region 数据库日志记录  公共部分

                TRP_ClientLog entity = new TRP_ClientLog();
                entity.CreateTime = DateTime.Now;
                entity.DeleteMark = false;
                entity.Enable     = true;
                entity.PageUrl    = HttpContext.Request.Url.AbsoluteUri ?? wx_url;
                entity.IPAddress  = HttpContext.Request.UserHostAddress ?? "127.0.0.1";
                entity.ActivityId = Convert.ToInt32(request.activityId);

                #endregion

                #region 获取微信用户信息 昵称,头像等

                wxUserInfoModel wxUser = GetWxUserInfo(request.code);

                if (wxUser == null)
                {
                    //微信用户信息未获取到 重定向至活动入口Action
                    string url = string.Format("{0}?activityId={1}", enter_url, request.activityId);
                    return(empty);
                }

                #endregion

                #region 今天已参加活动

                if (isAttendToday(request.activityId, wxUser.Openid))
                {
                    //判断奖品是否已领
                    var receivedModel = awardDi.getBll().hadTakeAward(wxUser.Openid, request.activityId);

                    #region 奖品已核销

                    //奖品已领
                    if (receivedModel == null)
                    {
                        scanCountDi.getBll().CountByNameAndId(request.activityId, str_d_activityname);
                        return(View("HadAttend"));
                    }
                    #endregion

                    #region 奖品还未核销 返回Activity视图

                    //奖品还未领取
                    else
                    {
                        //获取奖品ID  int
                        string awardId = receivedModel.AwardDetailId.ToString();

                        //获取奖品详情
                        TRP_AwardDetail detailModel = detailDi.getBll().GetEntityById(awardId);

                        //奖品名称
                        string awardsName = "";

                        //加密奖品id
                        string ecodeAwardId = DESEncrypt.Encrypt(awardId, _key);


                        if (detailModel != null)
                        {
                            awardsName = detailModel.AwardName;
                        }

                        //奖品类型
                        if (!string.IsNullOrWhiteSpace(awardsName))
                        {
                            string typeCode = "";
                            if (awards_code.ContainsKey(awardsName.Trim()))
                            {
                                typeCode = awards_code[awardsName.Trim()];
                            }
                            else
                            {
                                return(View("Nogift"));
                            }
                            ViewData["Type"] = typeCode;
                        }

                        ViewData["Openid"]        = wxUser.Openid ?? "";
                        ViewData["wxName"]        = wxUser.Nickname ?? "";
                        ViewData["AwardDetailId"] = ecodeAwardId;
                        ViewData["AwardName"]     = awardsName;
                        ViewData["Activity"]      = request.activityId ?? "";

                        entity.Description = string.Format("用户在{0}点击红包,二维码实物扫码(为重复扫码,上次未核销奖品)", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        entity.PageDesc    = "实物扫码,上次未核销奖品";
                        entity.ActivityId  = Convert.ToInt32(request.activityId);
                        logDi.getBll().SaveLog(entity);
                        return(View("Activity"));
                    }
                    #endregion
                }

                #endregion

                #region 首次参加活动
                else
                {
                    //请求奖品
                    AwardsInfoModel awardsModel = GetAwardsInfo(request.activityId);

                    //奖品的Class不为空
                    if (awardsModel.Class != null)
                    {
                        if (awardsModel.Class == "")
                        {
                            scanCountDi.getBll().CountByNameAndId(request.activityId, str_e_activityname);
                            return(View("Nogift"));
                        }
                        else
                        {
                            string awardsType = awardsModel.Class;
                            string typeCode   = "";

                            //Common.Helper.Logger.Info("--test--");
                            //Common.Helper.Logger.Info(awardsModel.Class);
                            //Common.Helper.Logger.Info(awards_code.ContainsKey(awardsModel.Class.Trim()));
                            if (awards_code.ContainsKey(awardsModel.Class.Trim()))
                            {
                                //Common.Helper.Logger.Info(awards_code[awardsModel.Class.Trim()]);
                                typeCode = awards_code[awardsModel.Class.Trim()];
                            }
                            else
                            {
                                return(View("Nogift"));
                            }
                            ViewData["Type"] = typeCode;

                            //不存在微信用户
                            if (!isExistOpenId(wxUser.Openid))
                            {
                                //保存用户微信信息
                                saveUserInfo(wxUser);
                            }

                            //保存扫码信息
                            saveScanInfo(wxUser.Openid, awardsModel.id);

                            string awardName = awardsType;
                            entity.Description = string.Format("{0},用户在{1}点击红包,二维码扫码进入实物领奖页面,奖品为{1}", str_a_activityname, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), awardsType);
                            entity.PageDesc    = string.Format("实物扫码,得到{0}", awardName);
                            entity.ActivityId  = int.Parse(request.activityId);
                            logDi.getBll().SaveLog(entity);

                            ViewData["Openid"]        = wxUser.Openid ?? "";
                            ViewData["wxName"]        = wxUser.Nickname ?? "";
                            ViewData["AwardDetailId"] = awardsModel.id ?? "";
                            ViewData["AwardName"]     = awardsModel.Class ?? "";
                            ViewData["Activity"]      = request.activityId ?? "";
                            return(View("Activity"));
                        }
                    }
                    else
                    {
                        scanCountDi.getBll().CountByNameAndId(request.activityId, str_f_activityname);
                        return(View("Nogift"));
                    }
                }
                #endregion

                #region 注释部分 无限制领取次数


                //if (request.giftType != null)
                //{
                //    string awardsType = request.giftType;
                //    string typeCode = "";
                //    if (awardsType.Contains("笔记本"))
                //    {
                //        typeCode = "A";
                //    }
                //    else
                //    {
                //        Common.Helper.Logger.Info(string.Format("【热高乐园红包雨】,用户获取奖品:微信用户-OpenId:{0}-领取奖品,未接收到奖品类型,发生了重定向"));
                //        Response.Redirect(string.Format("http://www.chinazhihuiping.com/wxredpackets/ReGaoPark/Activity?activityId={0}&flag={1}", request.activityId, 2));
                //        return empty;
                //    }
                //    ViewData["Type"] = typeCode;
                //}

                ////不存在微信用户
                //if (!isExistOpenId(wxUser.Openid))
                //{
                //    //保存用户微信信息
                //    saveUserInfo(wxUser);
                //}

                ////保存扫码信息
                //saveScanInfo(wxUser.Openid, request.giftId);

                //#region 保存日志记录至数据库

                //entity.Description = string.Format("【热高乐园红包雨】,用户在{0}点击红包,二维码扫码进入实物领奖页面,奖品为{1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), request.giftType);
                //entity.PageDesc = string.Format("实物扫码,得到{0}", request.giftType);
                //entity.ActivityId = Convert.ToInt32(DESEncrypt.Decrypt(request.giftId, _key));
                //logDi.getBll().SaveLog(entity);

                //#endregion

                //ViewData["Openid"] = wxUser.Openid ?? "";
                //ViewData["wxName"] = wxUser.Nickname ?? "";
                //ViewData["AwardDetailId"] = request.giftId ?? "";
                //ViewData["AwardName"] = request.giftType ?? "";
                //ViewData["Activity"] = request.activityId ?? "";

                //return View("Activity");

                #endregion
            }
            catch (Exception ex)
            {
                Common.Helper.Logger.Info(string.Format("{0}领取实物异常,异常信息:{1}", str_a_activityname, ex.ToString()));
                Response.Redirect(string.Format("{0}?activityId={1}&flag={2}", enter_url, request.activityId, 2));
                return(empty);
            }
        }
        /// <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);
            }
        }
示例#10
0
        /// <summary>
        ///  ViewData["Openid"] = "";
        ////ViewData["wxName"] = "RandyField";
        ////ViewData["AwardDetailId"] =  "";
        ////ViewData["AwardName"] =  "";
        ////ViewData["Activity"] =  "";
        ////ViewData["Type"] = "A";
        ////return View();
        ////ActionResult empty = new EmptyResult();
        /// 热高乐园红包雨活动
        /// </summary>
        /// <param name="activityId"></param>
        /// <param name="flag"></param>
        /// <returns></returns>
        ///             string type = "1元";
        //string opienid = "omJcruMSo_al_vHgI7dQHdixsPEM";
        //RequestModel request = new RequestModel
        //{
        //    activityName = "【中兴30周年庆现金红包】",
        //    TenPaySender = "中兴大厦",
        //    TenPayWish = "恭喜发财",
        //    TenPayGame = "30周年庆,红包雨",
        //    TenPayRemark = "中兴大厦"
        //};

        //GiveCash(type, opienid, request);
        public ActionResult Activity(string activityId, string flag, string guid)
        {
            /*
             * if (!string.IsNullOrWhiteSpace(guid))
             * {
             *  if (!IsInDate(activityId, guid, 4))
             *  {
             *      return View("OutOfDate");
             *  }
             * }
             * //未传guid
             * else
             * {
             *  return View("OutOfDate");
             * }
             */

            ActionResult empty = new EmptyResult();

            try
            {
                if (string.IsNullOrWhiteSpace(flag))
                {
                    //扫码计数-所有
                    scanCountDi.getBll().CountByNameAndId(activityId, _activityName);
                }
                else
                {
                    if (flag.Trim() == "1")
                    {
                        scanCountDi.getBll().CountByNameAndId(activityId, string.Format("{0}发生重定向-现金红包跳转", _activityName));
                    }
                    else
                    {
                        scanCountDi.getBll().CountByNameAndId(activityId, string.Format("{0}发生重定向-非现金红包跳转", _activityName));
                    }
                }

                //日志记录公共部分
                AwardsInfoModel awardsModel = new AwardsInfoModel();
                TRP_ClientLog   entity      = new TRP_ClientLog();
                entity.CreateTime = DateTime.Now;
                entity.DeleteMark = false;
                entity.Enable     = true;
                entity.PageUrl    = HttpContext.Request.Url.AbsoluteUri ?? "http://www.chinazhihuiping.com/wxredpackets/NewCity/Activity";
                entity.IPAddress  = HttpContext.Request.UserHostAddress ?? "127.0.0.1";
                entity.ActivityId = Convert.ToInt32(activityId);

                //请求奖品
                awardsModel = GetAwardsInfo(activityId);

                //奖品的Class不为空
                if (awardsModel.Class != null)
                {
                    if (awardsModel.Class == "")
                    {
                        scanCountDi.getBll().CountByNameAndId(activityId, string.Format("{0}-取奖品awardsModel.Class == \"\"", _activityName));
                        return(View("Nogift"));
                    }

                    //重定向 至微信领奖页
                    string url = string.Format("http://www.chinazhihuiping.com/wxredpackets/NewCity/WXActivity?activityId={0}&giftType={1}&giftId={2}", activityId, awardsModel.Class, awardsModel.id);

                    string urlencode = System.Web.HttpUtility.UrlEncode(url, System.Text.Encoding.UTF8);

                    ResponseWXRedirect(urlencode);

                    return(empty);
                }
                else
                {
                    scanCountDi.getBll().CountByNameAndId(activityId, string.Format("{0}-取奖品awardsModel.Class == null", _activityName));
                    return(View("Nogift"));
                }
            }
            catch (Exception ex)
            {
                Common.Helper.Logger.Info(string.Format("{0}进入领奖页面异常,异常信息:{1}", _activityName, ex.ToString()));
                return(View("Nogift"));
            }
        }
示例#11
0
        /// <summary>
        ///  ViewData["Openid"] = "";
        ////ViewData["wxName"] = "RandyField";
        ////ViewData["AwardDetailId"] =  "";
        ////ViewData["AwardName"] =  "";
        ////ViewData["Activity"] =  "";
        ////ViewData["Type"] = "A";
        ////return View();
        ////ActionResult empty = new EmptyResult();
        /// 热高乐园红包雨活动
        /// </summary>
        /// <param name="activityId"></param>
        /// <param name="flag"></param>
        /// <returns></returns>
        public ActionResult Activity(string activityId, string flag, string guid)
        {
            //string type = "0.88元现金红包";
            //string opienid = "omJcruMSo_al_vHgI7dQHdixsPEM";
            //RequestModel request=new RequestModel {
            //   activityName = "【中兴30周年庆现金红包】",
            //     TenPaySender = "中兴大厦",
            //     TenPayWish = "恭喜发财",
            //     TenPayGame = "30周年庆,红包雨",
            //     TenPayRemark = "中兴大厦"
            //};

            //GiveCash(type, opienid, request);

            /*
             * if (!string.IsNullOrWhiteSpace(guid))
             * {
             *  if (!IsInDate(activityId, guid, 4))
             *  {
             *      return View("OutOfDate");
             *  }
             * }
             * //未传guid
             * else
             * {
             *  return View("OutOfDate");
             * }
             */

            ActionResult empty = new EmptyResult();

            try
            {
                if (string.IsNullOrWhiteSpace(flag))
                {
                    //扫码计数-所有
                    scanCountDi.getBll().CountByNameAndId(activityId, "【中兴30周年红包雨】");
                }
                else
                {
                    if (flag.Trim() == "1")
                    {
                        scanCountDi.getBll().CountByNameAndId(activityId, "【中兴30周年红包雨】发生重定向-现金红包跳转)");
                    }
                    else
                    {
                        scanCountDi.getBll().CountByNameAndId(activityId, "【中兴30周年红包雨】发生重定向-非现金红包跳转)");
                    }
                }

                //日志记录公共部分
                AwardsInfoModel awardsModel = new AwardsInfoModel();
                TRP_ClientLog   entity      = new TRP_ClientLog();
                entity.CreateTime = DateTime.Now;
                entity.DeleteMark = false;
                entity.Enable     = true;
                entity.PageUrl    = HttpContext.Request.Url.AbsoluteUri ?? "http://www.chinazhihuiping.com/wxredpackets/ZTE/Activity";
                entity.IPAddress  = HttpContext.Request.UserHostAddress ?? "127.0.0.1";
                entity.ActivityId = Convert.ToInt32(activityId);

                //请求奖品
                awardsModel = GetAwardsInfo(activityId);

                //奖品的Class不为空
                if (awardsModel.Class != null)
                {
                    if (awardsModel.Class == "")
                    {
                        scanCountDi.getBll().CountByNameAndId(activityId, "【中兴30周年红包雨】-取奖品awardsModel.Class == \"\"");
                        return(View("Nogift"));
                    }

                    //重定向 至微信领奖页
                    string url = string.Format("http://www.chinazhihuiping.com/wxredpackets/ZTE/WXActivity?activityId={0}&giftType={1}&giftId={2}", activityId, awardsModel.Class, awardsModel.id);

                    string urlencode = System.Web.HttpUtility.UrlEncode(url, System.Text.Encoding.UTF8);

                    ResponseWXRedirect(urlencode);

                    return(empty);
                }
                else
                {
                    scanCountDi.getBll().CountByNameAndId(activityId, "【中兴30周年红包雨】-取奖品awardsModel.Class == null");
                    return(View("Nogift"));
                }
            }
            catch (Exception ex)
            {
                Common.Helper.Logger.Info(string.Format("【中兴30周年红包雨】进入领奖页面异常,异常信息:{0}", ex.ToString()));
                return(View("Nogift"));
            }
        }
        /// <summary>
        /// 页面加载
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ActionResult Index(RequestModel request)
        {
            //return View();
            //awardDi.getBll().hadTakeAward("omJcruMSo_al_vHgI7dQHdixsPEM", "44");
            try
            {
                HttpHelper httpHelper = new HttpHelper();

                #region  微信网页授权

                string  tokenJson    = httpHelper.HttpGet(String.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", _appId, _appsecret, request.code), "");
                JObject tokenJsonObj = null;
                if (!string.IsNullOrWhiteSpace(tokenJson))
                {
                    tokenJsonObj = JObject.Parse(tokenJson);
                }
                else
                {
                    return(View("Error"));
                }

                string          userInfoJson = "";
                wxUserInfoModel model        = null;
                if (tokenJsonObj != null)
                {
                    userInfoJson = httpHelper.HttpGet(string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN", tokenJsonObj["access_token"], tokenJsonObj["openid"]), "");
                    if (!string.IsNullOrWhiteSpace(userInfoJson))
                    {
                        model = JsonConvert.DeserializeObject <wxUserInfoModel>(userInfoJson);
                        if (model.Nickname == null || model.Sex == null)
                        {
                            return(View("Error"));
                        }
                    }
                    else
                    {
                        return(View("Error"));
                    }
                }
                else
                {
                    return(View("Error"));
                }

                #endregion

                ActivityStatus status = new ActivityStatus();
                status = ActivityStatus.Unknown;

                //活动id未取到
                if (string.IsNullOrWhiteSpace(request.activityId))
                {
                    return(View("Error"));
                }



                TRP_ClientLog entity = new TRP_ClientLog();
                entity.CreateTime = DateTime.Now;
                entity.DeleteMark = false;
                entity.Enable     = true;
                entity.PageUrl    = HttpContext.Request.Url.AbsoluteUri ?? "http://www.chinazhihuiping.com/wxredpackets";
                entity.IPAddress  = HttpContext.Request.UserHostAddress ?? "127.0.0.1";

                //今天已参加活动 无领奖资格  直接返回视图 不请求奖品
                if (isAttendToday(request.activityId, model.Openid))
                {
                    status = ActivityStatus.HasAttend;


                    //判断奖品是否已领 如果没有领取 该奖品继续返回页面
                    var receivedModel = awardDi.getBll().hadTakeAward(model.Openid, request.activityId);
                    if (receivedModel == null)
                    {
                        entity.Description = string.Format("用户在{0}点击红包,二维码实物扫码(已参加活动,为重复扫码)", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        entity.PageDesc    = "实物扫码,已参加本次活动";
                        entity.ActivityId  = Convert.ToInt32(request.activityId);
                        logDi.getBll().SaveLog(entity);
                        return(View("HasAttend"));
                    }
                    else
                    {
                        //获取奖品ID  int
                        string awardId = receivedModel.AwardDetailId.ToString();

                        TRP_AwardDetail detailModel = detailDi.getBll().GetEntityById(awardId);

                        //奖品名称
                        string awardsName = "";

                        //加密奖品id
                        string ecodeAwardId = DESEncrypt.Encrypt(awardId, _key);
                        Common.Helper.Logger.Info("发生了重定向奖品Id加密:" + ecodeAwardId);

                        if (detailModel != null)
                        {
                            //奖品名称
                            awardsName = detailModel.AwardName;
                            Common.Helper.Logger.Info("发生了重定向奖品名称:" + awardsName);
                        }

                        if (!string.IsNullOrWhiteSpace(awardsName))
                        {
                            string awardsType = awardsName;
                            string typeCode   = "";
                            if (awardsType.Contains("美食券"))
                            {
                                typeCode = "A";
                            }
                            else if (awardsType.Contains("电影券"))
                            {
                                typeCode = "B";
                            }
                            else if (awardsType.Contains("水趣多"))
                            {
                                typeCode = "C";
                            }
                            else
                            {
                                typeCode = "D";
                                Common.Helper.Logger.Info(string.Format("重定向:微信用户-OpenId:{0}-领取奖品,未接收到奖品类型,默认发瓶水",
                                                                        model.Openid));
                            }
                            ViewData["Type"] = typeCode;
                            Common.Helper.Logger.Info("发生了重定向奖品type:" + typeCode);
                        }
                        else
                        {
                            ViewData["Type"] = "";
                        }

                        ViewData["Openid"]        = model.Openid ?? "";
                        ViewData["wxName"]        = model.Nickname ?? "";
                        ViewData["AwardDetailId"] = ecodeAwardId;
                        ViewData["AwardName"]     = awardsName;
                        ViewData["Activity"]      = request.activityId ?? "";

                        entity.Description = string.Format("用户在{0}点击红包,二维码实物扫码(为重复扫码,上次未核销奖品)", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        entity.PageDesc    = "实物扫码,上次未核销奖品";
                        entity.ActivityId  = Convert.ToInt32(request.activityId);
                        logDi.getBll().SaveLog(entity);
                        return(View());
                    }
                    //return View("HasAttend");
                }

                string activityId = request.activityId;
                //http://localhost:89/RedPacketService/GetRedPacketServie?activityId=44
                //获取奖品信息
                string awards = httpHelper.HttpGet(String.Format("http://localhost:89/RedPacketService/GetRedPacketServie?activityId={0}", activityId), "");

                if (string.IsNullOrWhiteSpace(awards))
                {
                    return(View("Error"));
                }

                //反序列化获取奖品信息
                AwardsInfoModel awardsInfo = JsonConvert.DeserializeObject <AwardsInfoModel>(awards);
                if (awardsInfo != null)
                {
                    if (awardsInfo.Class != null)
                    {
                        string awardsType = awardsInfo.Class;
                        string typeCode   = "";
                        if (awardsType.Contains("美食券"))
                        {
                            typeCode = "A";
                        }
                        else if (awardsType.Contains("电影券"))
                        {
                            typeCode = "B";
                        }
                        else if (awardsType.Contains("水趣多"))
                        {
                            typeCode = "C";
                        }
                        else
                        {
                            typeCode = "D";
                            Common.Helper.Logger.Info(string.Format("获取奖品:微信用户-OpenId:{0}-领取奖品,未接收到奖品类型,默认发瓶水",
                                                                    model.Openid));
                        }
                        ViewData["Type"] = typeCode;
                    }
                }



                //首次参加本次活动
                status = ActivityStatus.FirstTime;

                //不存在微信用户
                if (!isExistOpenId(model.Openid))
                {
                    //保存用户微信信息
                    saveUserInfo(model);
                }

                //保存扫码信息
                saveScanInfo(model.Openid, awardsInfo.id);

                string awardName = awardsInfo.Class;

                if (status == ActivityStatus.FirstTime)
                {
                    entity.Description = string.Format("用户在{0}点击红包,二维码扫码进入实物领奖页面,奖品为{1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), awardName);
                    entity.PageDesc    = string.Format("实物扫码,得到{0}", awardName);
                    entity.ActivityId  = Convert.ToInt32(DESEncrypt.Decrypt(awardsInfo.id, _key));
                    logDi.getBll().SaveLog(entity);
                    ViewData["Openid"]        = model.Openid ?? "";
                    ViewData["wxName"]        = model.Nickname ?? "";
                    ViewData["AwardDetailId"] = awardsInfo.id ?? "";
                    ViewData["AwardName"]     = awardsInfo.Class ?? "";
                    ViewData["Activity"]      = request.activityId ?? "";
                    return(View());
                }
            }
            catch (Exception ex)
            {
                Common.Helper.Logger.Info(string.Format("进入领奖页面异常,异常信息:{0}", ex.ToString()));
            }

            return(View("Error"));
        }