Example #1
0
        public ActionResult Index(string utm_source = "", string adkey = "")
        {
            if (utm_source == "band")
            {
                ViewBag.url   = "https://" + System.Web.HttpContext.Current.Request["HTTP_HOST"] + "/emoticon?utm_source=band&utm_medium=share&utm_campaign=emoticon";
                ViewBag.image = "https://www.orange-event.kr/Content/images/orange4050/sns/band.jpg";
            }
            else
            {
                ViewBag.url   = "https://" + System.Web.HttpContext.Current.Request["HTTP_HOST"] + "/emoticon?utm_source=facebook&utm_medium=share&utm_campaign=emoticon";
                ViewBag.image = "https://www.orange-event.kr/Content/images/orange4050/sns/facebook.jpg";
            }

            if (adkey != null && adkey != "")
            {
                Session.Add("adkey", adkey);
            }

            var date = common.Now.ToString("yyyyMMddHHmmss");

            var urlCode  = "004008";
            var trUrl    = "http://dev.www.orange-event.kr/emoticon/callback";
            var kmcState = System.Configuration.ConfigurationManager.AppSettings["kmc.state"] as string;
            var kmcModel = new RequestKMCModel {
            };

            // 실서버 적용시 urlCode,trUrl 실서버용으로 변경
            if (kmcState == "release")
            {
                urlCode = "002007";
                trUrl   = "https://www.orange-event.kr/emoticon/callback";
            }
            else if (kmcState == "debug")
            {
                urlCode = "003013";
                trUrl   = "https://test.www.orange-event.kr/emoticon/callback";
            }

            // 이벤트종료일 제어
            if (!IsEventClose())
            {
                kmcModel = kmcService.RequestKMC(date, urlCode, trUrl);
            }


            var model = new OverFortyFiveDbModels
            {
                OverFortyFiveDbModel = new OverFortyFiveDbModel {
                },
                RequestKMCModel      = kmcModel
            };

            ViewBag.IsClose = IsEventClose();

            return(View(model));
        }
Example #2
0
        public ActionResult Create4050Entry(OverFortyFiveDbModels model)
        {
            int emoticonTypeOneLimit   = 6000;
            int emoticonTypeTwoLimit   = 10000;
            int emoticonTypeThreeLimit = 0;

            try
            {
                if (IsEventClose())
                {
                    throw new OverFortyFiveServiceException("400", "해당 이벤트는 선착순 마감되었습니다.", null);
                }

                long?userId = Session["OverFortyFiveDbEntryId"] as long?;
                if (!userId.HasValue)
                {
                    throw new OverFortyFiveServiceException("400", "휴대폰 인증을 다시 받아주세요.", null);
                }
                var overFortyFiveDbModel = model.OverFortyFiveDbModel;

                if (int.Parse(overFortyFiveDbModel.BirthDay.ToString().Substring(0, 4)) >= 1980)
                {
                    throw new OverFortyFiveServiceException("400", "40세 이상부터 가능한 이벤트입니다.\r\n[휴대폰 인증 기준, 1979년 이전 출생]\r\n(ex) 79년, 78년, 77년, …", null);
                }

                if (!ModelState.IsValid)
                {
                    var errorProp = ModelState.Values.Where(x => x.Errors.Count > 0).FirstOrDefault();
                    if (errorProp != null)
                    {
                        throw new OverFortyFiveServiceException("400", errorProp.Errors[0].ErrorMessage, null);
                    }
                }

                // 연락방식 체크
                if (!model.OverFortyFiveDbModel.AllCheck)
                {
                    return(Json(new
                    {
                        Result = false,
                        IsRequiredAllCheck = false,
                        Message = "전화와 문자메시지, 두 가지 항목에 수신 동의를 하셔야 이벤트 참여가 가능합니다."
                    }));
                }

                int emoticonCount = service.GetEmoticonTypeCount(model.OverFortyFiveDbModel.EmoticonType);
                int emoticonLimit = emoticonTypeThreeLimit;
                if (model.OverFortyFiveDbModel.EmoticonType == EmoticonType.Emoticon1)
                {
                    emoticonLimit = emoticonTypeOneLimit;
                }
                else if (model.OverFortyFiveDbModel.EmoticonType == EmoticonType.Emoticon2)
                {
                    emoticonLimit = emoticonTypeTwoLimit;
                }

                if (emoticonCount >= emoticonLimit)
                {
                    return(Json(new
                    {
                        Result = false,
                        Message = "해당 이모티콘은 소진되었습니다. 이모티콘을 재선택 해주세요."
                    }));
                }

                var user = service.GetOverFortyFiveEntryById(userId.Value);
                // 기존 저장 개인정보와 다른값 체크
                if (user.Name != overFortyFiveDbModel.Name || user.Mobile != overFortyFiveDbModel.Mobile || user.Gender != overFortyFiveDbModel.Gender || user.BirthDay != overFortyFiveDbModel.BirthDay)
                {
                    throw new OverFortyFiveServiceException("400", "휴대폰 인증을 받아 다시 시도해주세요.", null);
                }
                var entry = mapperConfig.CreateMapper().Map <OverFortyFiveDbModel, OverFortyFiveDbEntry>(overFortyFiveDbModel, user);
                //var message = string.Format("[오렌지라이프] \r\n마케팅동의처리 안내\r\n안녕하세요, 고객님\r\n{0}년 {1}월 {2}일에 오렌지라이프에 신청하신 '상품의 소개 등을 위한 개인(신용)정보 처리동의' (마케팅동의)가 정상 반영되어 안내 드립니다.", common.Now.Year, common.Now.Month, common.Now.Day);

                //entry.IsMessage = smsOpenApiService.SendMMS("", entry.Mobile, "0222009867", message, "L");
                entry.UpdateDate = common.Now;

                if (Session["adkey"] != null)
                {
                    var result = callTnkPostbackUrl(Session["adkey"].ToString());

                    entry.TnkAdKey      = Session["adkey"].ToString();
                    entry.TnkResult     = result;
                    entry.TnkUpdateDate = common.Now;
                }
                service.UpdateOverFortyFiveEntry(entry);

                DateTime fridayString = DateTime.Today.AddDays(Convert.ToInt32(DayOfWeek.Friday) - Convert.ToInt32(DateTime.Today.DayOfWeek));

                if (DateTime.Today.DayOfWeek.ToString() == DayOfWeek.Friday.ToString() && DateTime.Today.Day > (int)DayOfWeek.Thursday)
                {
                    fridayString = DateTime.Today.AddDays(Convert.ToInt32(DayOfWeek.Friday) - Convert.ToInt32(DateTime.Today.DayOfWeek)).AddDays(7);
                }
                String dayString = fridayString.Day > 9 ? fridayString.Day.ToString() : "0" + fridayString.Day.ToString();

                var successMessge = "마케팅동의 및 이벤트 참여가 완료되었습니다.\r\n 이모티콘 지급일은 " + fridayString.Month + "/" + dayString + "(금)입니다.\r\n(카카오톡 이모티콘은 플러스 친구로 발송)";

                Session.Remove("adkey");
                Session.Remove("OverFortyFiveDbEntryId");

                return(Json(new
                {
                    Result = true,
                    Message = successMessge
                }));
            }
            catch (OverFortyFiveServiceException e)
            {
                return(Json(new
                {
                    Result = false,
                    IsRequiredAllCheck = true,
                    Message = e.Message
                }));
            }
            catch (Exception e)
            {
                logger.Error(e);
                return(Json(new
                {
                    Result = false,
                    IsRequiredAllCheck = true,
                    Message = "서비스 점검중입니다. 잠시 후 시도해보시거나, 담당자에게 문의하시기 바랍니다."
                }));
            }
        }