Esempio n. 1
0
        public async Task <IActionResult> Success(ContactDataViewModel ContactData, string OrderId, string MemberMobile, byte OrderStateId = 40)
        {
            PostOrderViewModel1 povm = null;
            int ret = 0;

            try
            {
                if (OrderStateId == 1)
                {
                    // 3.系統在Action【Cart/Success】判斷2傳送OrderStateId==1。
                    // 4.系統變更訂單狀態為1。
                    ret = await IMER.UpdateOrderState(OrderId, OrderStateId);

                    if (ret != 0)
                    {
                        return(View(new PostOrderViewModel1 {
                            OrderDetail = null, ContactData = null, CartTobal = -1, OrderId = "", RtnModel = null, MemberMobile = MemberMobile, ret = ret
                        }));
                    }
                }
                if (OrderStateId == 2)
                {
                    // 3.系統在Action【Cart/Success】判斷2傳送OrderStateId==2。
                    // 4.系統變更訂單狀態為2。
                    ret = await IMER.UpdateOrderState(OrderId, OrderStateId);

                    if (ret != 0)
                    {
                        return(View(new PostOrderViewModel1 {
                            OrderDetail = null, ContactData = null, CartTobal = -1, OrderId = "", RtnModel = null, MemberMobile = MemberMobile, ret = ret
                        }));
                    }
                }

                List <OrderCheckProductStockEnoughViewModel> OCPSE = await IOR.OrderCheckProductStockEnough(OrderId);

                if (OCPSE == null)
                {
                    return(View(new PostOrderViewModel1 {
                        OrderDetail = null, ContactData = null, CartTobal = -1, OrderId = "", RtnModel = null, MemberMobile = MemberMobile, ret = ret, OCPSE = OCPSE
                    }));
                }

                // 3a.系統在Action【Cart/Success】判斷2傳送OrderStateId!=1。
                //  3a-1.回4-1。
                // 4-1.系統刪除會員之所有購物車資料。
                ret = await IMER.DeleteAllMemberCarts(MemberMobile);

                if (ret != 0)
                {
                    return(View(new PostOrderViewModel1 {
                        OrderDetail = null, ContactData = null, CartTobal = -1, OrderId = "", RtnModel = null, MemberMobile = MemberMobile
                    }));
                }
                // 16.系統讀取訂單明細。
                List <CartListViewModel> lstCLVM = await IOR.GetOrderDetail(OrderId);

                // 17.系統更新商品庫存。
                ret = await IOR.UpdateProductStock(lstCLVM);

                if (ret != 0)
                {
                    return(View(new PostOrderViewModel1 {
                        OrderDetail = null, ContactData = null, CartTobal = -1, OrderId = "", RtnModel = null, MemberMobile = MemberMobile
                    }));
                }
                // 5.系統在Action【Cart/Success】寄發建立訂單eMail(含平台連結)。
                //EmailMessage em = new EmailMessage();
                //EmailAddress fAdd = new EmailAddress();
                //fAdd.Name = IEC.SmtpUsername;
                //fAdd.Address = $@"{IEC.SmtpUsername}";
                ////fAdd.Address = $@"{IEC.SmtpUsername}@{IEC.SmtpServer}";
                //em.FromAddresses.Add(fAdd);
                //EmailAddress tAdd = new EmailAddress();
                //tAdd.Name = ContactData.MemberName;
                //tAdd.Address = ContactData.eMail;
                //em.ToAddresses.Add(tAdd);
                //em.Subject = "288訂購訊息";
                //em.Content = "您好,\n";
                //em.Content += $"您在288建立的訂單己完成,訂單代碼為{OrderId},<br>";
                //em.Content += $"若為會員,請至本平台會員中心查詢訂單處理狀態,<br>";
                //em.Content += $"若非會員,本平台會寄送eMail告知訂單處理狀況,<br>";
                //em.Content += $"288網址:http://dreammaker.game.tw/YunQiWholesale,<br>";
                //em.Content += $"客服專線:04-28825252";
                //em.Content += $"288應謝您!";
                // System.Net.Mail.MailMessage Message
                //IES.Send(em);
                // 5.系統在Action【Cart/Success】寄發建立訂單eMail(含平台連結)。
                System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
                mail.To.Add(ContactData.eMail);
                mail.From       = new System.Net.Mail.MailAddress($@"{IEC.SmtpUsername}@{IEC.SmtpServer}");
                mail.Subject    = "288訂購訊息";
                mail.Body       = "您好,\n";
                mail.Body      += $"您在288建立的訂單己完成,訂單代碼為{OrderId},<br>";
                mail.Body      += $"若為會員,請至本平台會員中心查詢訂單處理狀態,<br>";
                mail.Body      += $"若非會員,本平台會寄送eMail告知訂單處理狀況,<br>";
                mail.Body      += $"288網址:http://dreammaker.game.tw/YunQiWholesale,<br>";
                mail.Body      += $"客服專線:04-28825252";
                mail.Body      += $"288應謝您!";
                mail.IsBodyHtml = true;
                IES.SendMail(mail);
                // 6.系統判斷5執行成功。
                // 7.系統回傳View【Cart/Success】,並傳回new PostOrderViewModel1 { OrderDetail=null, ContactData=contactData, CartTobal= null, OrderId=4上傳orderId, RtnModel=null }。
                povm = new PostOrderViewModel1 {
                    OrderDetail = null, ContactData = ContactData, CartTobal = -1, OrderId = OrderId, RtnModel = null, MemberMobile = MemberMobile
                };
            }
            catch (Exception ex)
            {
                string msg = ex.Message;
                // 6a.系統判斷5執行失敗。
                //  6a-1.系統回傳View【Cart/Success】,並傳回new PostOrderViewModel1 { OrderDetail=null, ContactData=null, CartTobal= null, OrderId="", RtnModel=null }。
                povm = new PostOrderViewModel1 {
                    OrderDetail = null, ContactData = null, CartTobal = -1, OrderId = "", RtnModel = null, MemberMobile = MemberMobile
                };
            }
            return(View(povm));
        }
Esempio n. 2
0
        // ReturnURL:信用卡付款結果通知
        public async Task <ActionResult <string> > PostCardInfo([FromForm] CardInfo model)
        {
            string             ret  = "1|OK";
            CheckMacValueModel cmvm = null;
            byte OrderStateId       = 4;

            try
            {
                if (model.RtnCode == 1)
                {
                    // 3.系統在Action【Paymeent/PostCardInfo】判斷綠界傳送之RtnCode==1。
                    // 4.系統在Action【Paymeent/PostCardInfo】讀取對應訂單之CheckMacValue。
                    cmvm = await IOR.GetOrderCheckMacValue(model.MerchantTradeNo);

                    if (cmvm != null)
                    {
                        // 5.系統判斷4傳回值!=null。
                        if (cmvm.CheckMacValue != "")
                        {
                            // 6.系統判斷4傳回值之CheckMacValue!=""。
                            // 6-1.系統設定OrderStateId=4。
                            OrderStateId = 4;
                        }
                        else
                        {
                            // 6a.系統判斷4傳回值之CheckMacValue==""。
                            //  6a-1.系統設定OrderStateId=6。
                            OrderStateId = 6;
                            //  6a-2.回7。
                        }
                        // 7.系統變更訂單狀態,並新增一筆會計帳。
                        int r = await IOR.UpdateOrderGreenCard(cmvm.OrderId, OrderStateId, model.TradeDate, model.PaymentType, model.TradeAmt, model.TradeNo, DateTime.Now);

                        if (r == 0)
                        {
                            // 8-1.系統判斷7傳回值=0。
                            // 8-2.系統寄發己付款eMail。
                            System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
                            mail.To.Add(cmvm.eMail);
                            mail.From       = new System.Net.Mail.MailAddress($@"{IEC.SmtpUsername}@{IEC.SmtpServer}");
                            mail.Subject    = "288訂購訊息";
                            mail.Body       = "您好,\n";
                            mail.Body      += $"您在288建立的訂單己付款完成,訂單代碼為{cmvm.OrderId},<br>";
                            mail.Body      += $"若為會員,請至本平台會員中心查詢訂單處理狀態,<br>";
                            mail.Body      += $"若非會員,本平台會寄送eMail告知訂單處理狀況,<br>";
                            mail.Body      += $"288網址:http://288ibobo.com ,<br>";
                            mail.Body      += $"客服專線:04-28825252";
                            mail.Body      += $"288應謝您!";
                            mail.IsBodyHtml = true;
                            IES.SendMail(mail);
                            // 9系統回傳"1|OK"。
                            ret = "1|OK";
                        }
                        else if (r == 2)
                        {
                            // 8-1a.系統判斷7傳回值=2。
                            //  8-1a-1.系統設定傳回值=”1|特店訂單編號找不到”
                            ret = "1|特店訂單編號找不到";
                            //  8-1a-2.回10。
                        }
                        else
                        {
                            // 8-1a.系統判斷7傳回值!=0/2。
                            //  8-1a-1.系統設定傳回值=”0|特店系統內部錯誤”
                            ret = "0|特店系統內部錯誤";
                            //  8-1a-2.回10。
                        }
                    }
                    else
                    {
                        // 5a.系統判斷4傳回值==null。
                        //  5a-1.系統設定傳回值=”0|內部錯誤”。
                        ret = $@"0|特店系統內部錯誤";
                        //  5a-2.回10。
                    }
                }
                else
                {
                    // 3a.系統在Action【Paymeent/PostCardInfo】判斷綠界傳送之RtnCode!=1。
                    //  3a-1.系統設定傳回值=”0|RtnMsg”。
                    //ret = $@"0|{model.RtnMsg}";
                    ret = $@"0|{model.RtnMsg}";
                    //  3a-2.回10。
                }
            }
            catch (Exception ex)
            {
                // 8a.系統判斷7執行失敗。
                //  8a-1.系統設定傳回值=”0|特店系統內部錯誤”
                //  8a-2.回10。
                ret = $@"0|特店系統內部錯誤";
            }
            return(ret);
        }
        //20181121 ---棋
        public async Task <IViewComponentResult> InvokeAsync(string MemberMobile, DateTime?sDate, DateTime?eDate, string ReferrerMobile, int Page = 1, int StartPage = 1)
        {
            //9-1.系統在ViewComponent【Followertriumph】中讀取Appsetting.json中的每頁筆數BRowsPerPage以及分頁頁碼連結總數PageCount。
            int RowsPerPage = int.Parse(config["Page:BRowsPerPage"]);
            int PageCount   = int.Parse(config["Page:PageCount"]);
            //9-2.系統在ViewComponent【Followertriumph】讀取我的下線業績總數。
            long memberCount = await IOR.GetFollowertriumphCount(ReferrerMobile, sDate, eDate, MemberMobile);

            //9-3.系統依9-2傳回值將9傳送頁碼重設在Between 1 and(9讀取記錄筆數/RowsPerPage)+(9讀取記錄筆數%RowsPerPage==0?0:1)。
            int TotalPages = (int)(memberCount / RowsPerPage);

            if (memberCount % RowsPerPage > 0)
            {
                TotalPages += 1;
            }
            if (Page < 1)
            {
                Page = 1;
            }
            if (Page > TotalPages)
            {
                Page = TotalPages;
            }
            if (Page <= 0)
            {
                Page = 1;
            }
            //9-4.系統計算資料Skip數 = (9傳送頁碼(預設1) - 1)*9 - 1讀取RowsPerPage。
            int Skip = (Page - 1) * RowsPerPage;
            //9-5系統在ViewComponent【FollowertriumphViewComponent】讀取我的下線業績清單:
            List <FollowertriumphViewModel> FollowVM = await IOR.GetFollowertriumphList(ReferrerMobile, sDate, eDate, MemberMobile, Skip, RowsPerPage);

            //9-5-1系統在ViewComponent【FollowertriumphViewComponent】讀取下線批發總額:
            FollowertriumphTotalViewModel ReferrerTota = await IOR.GetFollowertriumphTotal(sDate, eDate, MemberMobile);

            //9-5-2系統在ViewComponent【FollowertriumphViewComponent】讀取會員批發總額:
            FollowertriumphTotalViewModel MemberTotall = await IOR.GetMemberTotal(sDate, eDate, MemberMobile);

            //計算Bonus 預設0  如果超過3000 把值取代掉 否則為0
            //如果 ReferrerTota.Total >= 3000 將 Bonus 取代成 ReferrerTota.Total * 0.05M
            decimal Bonus = 0;

            if (MemberTotall.Total > 3000)
            {
                Bonus = ReferrerTota.Total * 0.05M;
            }

            //9-6.系統設定PagerTagHelper之相關參數
            int CurrentPage = Page;

            //9-6-1.系統將管理者權限清單Session["EmployeeRights"]暫存在ViewBag.TR。
            ViewBag.TR   = HttpContext.Session.GetObjectFromJson <List <int> >("EmployeeRights");
            ViewBag.Page = Page;

            return(View(new FollowertriumphManageViewModel
            {
                listFollowertriumphViewModel = FollowVM,
                CurrentPage = CurrentPage,
                TotalPages = TotalPages,
                PageCount = PageCount,
                StartPage = StartPage,
                Parameters = Page,
                FollowertriumphTotall = ReferrerTota,
                MemberTotall = MemberTotall,
                memberCount = memberCount,
                Bonus = Bonus,
            }));
        }
Esempio n. 4
0
        // PaymentInfoURL:ATM、CVS的取號結果通知
        public async Task <ActionResult <string> > PostPaymentInfo([FromForm] PaymentInfo model)
        {
            string ret = "1|OK";
            bool   suc = true;
            string pay = model.PaymentType.Substring(0, 3);

            switch (pay)
            {
            case "ATM":
                if (model.RtnCode != 2)
                {
                    // 3a.系統在Action【Paymeent/PostPaymentInfo】判斷綠界傳送之RtnCode!=2?(ATM),或是10100073(CVS)。
                    //  3a-1.系統設定傳回值=”0|RtnMsg”。
                    ret = $@"0|{model.RtnMsg}";
                    //  3a-2.回10。
                    suc = false;
                }
                break;

            case "CVS":
                if (model.RtnCode != 10100073)
                {
                    // 3a.系統在Action【Paymeent/PostPaymentInfo】判斷綠界傳送之RtnCode!=2?(ATM),或是10100073(CVS)。
                    //  3a-1.系統設定傳回值=”0|RtnMsg”。
                    ret = $@"0|{model.RtnMsg}";
                    //  3a-2.回10。
                    suc = false;
                }
                break;

            default:
                break;
            }
            if (suc)
            {
                CheckMacValueModel cmvm = null;
                byte OrderStateId       = 4;
                try
                {
                    // 3.系統在Action【Paymeent/PostPaymentInfo】判斷綠界傳送之RtnCode==2?(ATM),或是10100073(CVS)。
                    // 4.系統在Action【Paymeent/PostCardInfo】讀取對應訂單之CheckMacValue。
                    cmvm = await IOR.GetOrderCheckMacValue(model.MerchantTradeNo);

                    if (cmvm != null)
                    {
                        // 5.系統判斷4傳回值!=null。
                        if (cmvm.CheckMacValue != "")
                        {
                            // 6.系統判斷4傳回值之CheckMacValue!=""。
                            // 6-1.系統設定OrderStateId=2。
                            OrderStateId = 2;
                        }
                        else
                        {
                            // 6a.系統判斷4傳回值之CheckMacValue==""。
                            //  6a-1.系統設定OrderStateId=6。
                            OrderStateId = 6;
                            //  6a-2.回7。
                        }
                        // 7.系統變更訂單狀態。
                        int r = await IOR.UpdateOrderGreenATMCVS(cmvm.OrderId, OrderStateId, model.TradeDate, model.PaymentType, model.TradeAmt, model.TradeNo, model.BankCode, model.vAccount, model.ExpireDate, model.PaymentNo);

                        if (r == 0)
                        {
                            // 8-1.系統判斷7傳回值=0。
                            // 8-2.系統寄發己付款eMail。
                            System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
                            mail.To.Add(cmvm.eMail);
                            mail.From    = new System.Net.Mail.MailAddress($@"{IEC.SmtpUsername}@{IEC.SmtpServer}");
                            mail.Subject = "288訂購訊息";
                            mail.Body    = "您好,\n";
                            mail.Body   += $"您在288建立的訂單己付款完成({model.PaymentType}),訂單代碼為{cmvm.OrderId},<br>";
                            if (pay == "ATM")
                            {
                                mail.Body += $"您的ATM繳款帳號為{model.vAccount}<br>";
                            }
                            else if (pay == "CVS")
                            {
                                mail.Body += $"您的超商繳款代碼為{model.PaymentNo}<br>";
                            }
                            mail.Body      += $"若為會員,請至本平台會員中心查詢訂單處理狀態,<br>";
                            mail.Body      += $"若非會員,本平台會寄送eMail告知訂單處理狀況,<br>";
                            mail.Body      += $"288網址:http://288ibobo.com ,<br>";
                            mail.Body      += $"客服專線:04-28825252";
                            mail.Body      += $"288應謝您!";
                            mail.IsBodyHtml = true;
                            IES.SendMail(mail);
                            // 9系統回傳"1|OK"。
                            ret = "1|OK";
                        }
                        else if (r == 2)
                        {
                            // 8-1a.系統判斷7傳回值=2。
                            //  8-1a-1.系統設定傳回值=”1|特店訂單編號找不到”
                            ret = "1|特店訂單編號找不到";
                            //  8-1a-2.回10。
                        }
                        else
                        {
                            // 8-1a.系統判斷7傳回值!=0/2。
                            //  8-1a-1.系統設定傳回值=”0|特店系統內部錯誤”
                            ret = "0|特店系統內部錯誤";
                            //  8-1a-2.回10。
                        }
                    }
                    else
                    {
                        // 5a.系統判斷4傳回值==null。
                        //  5a-1.系統設定傳回值=”0|內部錯誤”。
                        ret = $@"0|特店系統內部錯誤";
                        //  5a-2.回10。
                    }
                }
                catch (Exception ex)
                {
                    // 8a.系統判斷7執行失敗。
                    //  8a-1.系統設定傳回值=”0|特店系統內部錯誤”
                    //  8a-2.回10。
                    ret = $@"0|特店系統內部錯誤";
                }
            }
            return(ret);
        }