From ab24d1de25687cfdb12ccfcad8d117b040d9138c Mon Sep 17 00:00:00 2001
From: Janie <109517022+Janie06@users.noreply.github.com>
Date: Tue, 14 Mar 2023 10:03:02 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AA=BF=E6=95=B4=20CancelBooking=20API=20+=20?=
=?UTF-8?q?=E8=A8=82=E5=96=AE=E7=9B=B8=E9=97=9C=E4=BF=A1=E4=BB=B6=E6=A8=A3?=
=?UTF-8?q?=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
1. CancelBooking API 寄出通知信給user、supplier
2. BookingStatus = 04(已取消),ModifyDate = now(取消訂單時間)
3. 取消訂單、退款信件樣式
---
.../EasyBL.WEBAPP/ShowEasy/BookingMail.cs | 388 +++++++++++++++++-
.../ShowEasy/BookingOnlineService.cs | 139 ++++++-
2 files changed, 519 insertions(+), 8 deletions(-)
diff --git a/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingMail.cs b/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingMail.cs
index 2162bf4..e9b08c0 100644
--- a/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingMail.cs
+++ b/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingMail.cs
@@ -1047,6 +1047,151 @@ namespace EasyBL.WEBAPP.SYS
}
+ //Cancel Booking(User)
+ public string CancelledBooking(string Img, string LastName, string BookingStatus, string PaymentStatus, string BookingNo, string BookingItem, DateTime? BookingDate, DateTime? ServiceDateS, string CurrencyID, string TotalPrice, string ServiceName)
+ {
+
+ StringBuilder sb = new StringBuilder();
+
+ EmailTemplate_CH mailTemplate = new EmailTemplate_CH();
+ //var Server = Common.ConfigGetValue("", "ida:RedirectUri");
+
+ sb.Append(mailTemplate.MailHeader());
+ sb.Append(mailTemplate.MailCSS());
+ sb.Append(mailTemplate.MailShowEasyLogo());
+ //Email Body
+ sb.Append("
");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append(" ");
+ //Text:你好 xxx,
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("你好," + LastName + ",");
+ sb.Append("");
+ sb.Append(" | ");
+ sb.Append(" ");
+ //Text:我們正在處理您的退款
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("我們已收到您希望取消訂單的申請。 ");
+ sb.Append(" ");
+ sb.Append("取消訂單會依據各商品的退款規則,可能需支付退款費用。");
+ sb.Append(" ");
+ sb.Append(" ");
+ sb.Append("若有任何問題,您可以");
+ sb.Append(" ");
+ sb.Append("撥打 +886-2 27255000");
+ sb.Append(" ");
+ sb.Append("發送 Email: info@showeasy.com。");
+ sb.Append(" ");
+ sb.Append(" ");
+ sb.Append("ShowEasy 客服時間:");
+ sb.Append("週一至週五:9:00~18:00 (台灣時區)");
+ sb.Append("");
+ sb.Append(" | ");
+ sb.Append(" ");
+ //Text:訂單資訊
+ sb.Append("");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append("訂單資訊:");
+ sb.Append(" ");
+ sb.Append(" | ");
+ sb.Append(" ");
+ //Button:service card start ----------------------------------------------------
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ //service img
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append(Img);
+ sb.Append("\" width = '30' height = '30'");
+ sb.Append(" | ");
+ //booking status
+ sb.Append("");
+ sb.Append("");
+ sb.Append("取消訂單, " + PaymentStatus);
+ sb.Append("");
+ //service name
+ sb.Append("");
+ sb.Append(ServiceName);
+ sb.Append("");
+ //booking number
+ sb.Append("");
+ sb.Append(BookingNo);
+ sb.Append("");
+ //BookingItem
+ //sb.Append("");
+ //sb.Append("接送服務, 台北市, 四人座車型 x 1");
+ //sb.Append("");
+ var lstT = new List();
+ var objval = BookingItem.ToString();
+ if (!string.IsNullOrEmpty(objval) && objval != "[]")
+ {
+ lstT = JsonConvert.DeserializeObject>(objval.ToString());
+ }
+ foreach (var item in lstT)
+ {
+ sb.Append("");
+ sb.Append(item);
+ sb.Append("");
+ }
+ //service time
+ sb.Append("");
+ sb.Append("服務時間: " + ServiceDateS);
+ sb.Append("");
+ //booking time
+ sb.Append("");
+ sb.Append("訂購時間: " + BookingDate);
+ sb.Append("");
+ //cost
+ sb.Append("");
+ sb.Append("$" + TotalPrice + CurrencyID);
+ sb.Append("");
+ //sb.Append("");
+ sb.Append("");
+ sb.Append("查看訂單");
+ sb.Append("");
+ sb.Append(" | ");
+ sb.Append(" ");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append(" | ");
+ sb.Append(" ");
+ sb.Append(" ");
+ sb.Append(" | ");
+ sb.Append(" ");
+ //如果按鈕無法點擊 (連結記得改成要打的API)
+ sb.Append("");
+ sb.Append("");
+ sb.Append("如果按鈕無法點擊,你可以直接點擊");
+ sb.Append(" ");
+ sb.Append("");
+ sb.Append("這裡");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append(" | ");
+ sb.Append(" ");
+ sb.Append(" ");
+ //sb.Append(mailTemplate.MailButtom());
+ sb.Append(mailTemplate.MailFooter());
+
+ return sb.ToString();
+
+ }
+
//Refunding for customer
public string Refunding()
{
@@ -1066,7 +1211,7 @@ namespace EasyBL.WEBAPP.SYS
sb.Append(" |
");
sb.Append("");
sb.Append(" ");
- //Text:hi
+ //Text:你好 xxx,
sb.Append("");
sb.Append("");
sb.Append("");
@@ -1074,7 +1219,7 @@ namespace EasyBL.WEBAPP.SYS
sb.Append("");
sb.Append(" | ");
sb.Append(" ");
- //Text:我們成功收到了你的訂單。
+ //Text:我們正在處理您的退款
sb.Append("");
sb.Append("");
sb.Append("");
@@ -1167,8 +1312,128 @@ namespace EasyBL.WEBAPP.SYS
}
+ //Refunded for customer
+ public string Refunded()
+ {
+
+ StringBuilder sb = new StringBuilder();
+
+ EmailTemplate_CH mailTemplate = new EmailTemplate_CH();
+ //var Server = Common.ConfigGetValue("", "ida:RedirectUri");
+
+ sb.Append(mailTemplate.MailHeader());
+ sb.Append(mailTemplate.MailCSS());
+ sb.Append(mailTemplate.MailShowEasyLogo());
+ //Email Body
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append(" ");
+ //Text:您好,xxx
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("你好,Janie,");
+ sb.Append("");
+ sb.Append(" | ");
+ sb.Append(" ");
+ //Text:我們已成功退款。
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("我們已成功退款。 ");
+ sb.Append(" ");
+ sb.Append("若有任何問題,您可以下兩種方式與我們聯繫: ");
+ sb.Append("撥打 +886-2 27255000 ");
+ sb.Append("發送 Email: info@showeasy.com 。 ");
+ sb.Append(" ");
+ sb.Append("ShowEasy 客服時間:");
+ sb.Append("週一至週五:9:00~18:00 (台灣時區)");
+ sb.Append("");
+ sb.Append(" | ");
+ sb.Append(" ");
+ //Text:訂單資訊
+ sb.Append("");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append("訂單資訊:");
+ sb.Append(" ");
+ sb.Append(" | ");
+ sb.Append(" ");
+ //Button:service card start ----------------------------------------------------
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ //service img
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append(" | ");
+ //booking status
+ sb.Append("");
+ sb.Append("");
+ sb.Append("等待確認中");
+ sb.Append("");
+ //service name
+ sb.Append("");
+ sb.Append("包車遊覽|新北景點一日遊:九份&平溪&北海岸");
+ sb.Append("");
+ //booking number
+ sb.Append("");
+ sb.Append("#B35553244AC");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("接送服務, 台北市, 四人座車型 x 1");
+ sb.Append("");
+ //service time
+ sb.Append("");
+ sb.Append("服務時間: 2022.09.20 08:00 (當地時間)");
+ sb.Append("");
+ //booking time
+ sb.Append("");
+ sb.Append("訂購時間: 2022.07.20 12:00");
+ sb.Append("");
+ //cost
+ sb.Append("");
+ sb.Append("$3,500 台幣");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("$3,500 台幣");
+ sb.Append("");
+ sb.Append(" | ");
+ sb.Append(" ");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append(" | ");
+ sb.Append(" ");
+ sb.Append(" ");
+ sb.Append(" | ");
+ sb.Append(" ");
+ //如果按鈕無法點擊 (連結記得改成要打的API)
+ sb.Append("");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append("如果按鈕無法點擊,你可以直接點擊");
+ sb.Append("");
+ sb.Append("這裡");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append(" | ");
+ sb.Append(" ");
+ sb.Append(" ");
+ //sb.Append(mailTemplate.MailButtom());
+ sb.Append(mailTemplate.MailFooter());
+
+ return sb.ToString();
+
+ }
+
//Cancel Order Notify (SE/Supplier)
- private string CheckPaymentStatus(string FirstName, string LastName, string BookingNo, string Amount, DateTime? date)
+ public string CancelOrderNotify(string BookingNo, string ServiceName, string FirstName, string LastName, string CurrencyID, string TotalPrice, DateTime? date)
{
StringBuilder sb = new StringBuilder();
@@ -1186,7 +1451,7 @@ namespace EasyBL.WEBAPP.SYS
sb.Append(" | ");
sb.Append("");
sb.Append(" ");
- //Text:您好,Janie,
+ //Text:客戶取消訂單!
sb.Append("");
sb.Append("");
sb.Append("");
@@ -1194,7 +1459,7 @@ namespace EasyBL.WEBAPP.SYS
sb.Append("");
sb.Append(" | ");
sb.Append(" ");
- //Text:我們已經成功收到你的付款!
+ //Text:您的客戶已取消訂單,請進行確認並進行退款流程!
sb.Append("");
sb.Append("");
sb.Append(" ");
@@ -1213,6 +1478,119 @@ namespace EasyBL.WEBAPP.SYS
sb.Append(" | ");
sb.Append("");
sb.Append(" ");
+ sb.Append(ServiceName);
+ sb.Append(" ");
+ sb.Append(" | ");
+ //客戶名稱
+ sb.Append(" ");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append("客戶名稱: " + FirstName + " " + LastName);
+ sb.Append(" ");
+ sb.Append(" | ");
+ //訂單金額
+ sb.Append(" ");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append("訂單金額: " + CurrencyID + " " + TotalPrice);
+ sb.Append(" ");
+ sb.Append(" | ");
+ //取消日期
+ sb.Append(" ");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append("取消日期" + date);
+ sb.Append(" ");
+ sb.Append(" | ");
+ sb.Append(" ");
+ sb.Append("");
+ //查看訂單按鈕
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append(" | ");
+ sb.Append(" ");
+ sb.Append(" ");
+ sb.Append(" | ");
+ sb.Append(" ");
+ //如果按鈕無法點擊 (連結記得改成要打的API)
+ sb.Append("");
+ sb.Append("");
+ sb.Append("如果按鈕無法點擊,你可以直接點擊");
+ sb.Append(" ");
+ sb.Append("");
+ sb.Append("這裡");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append(" | ");
+ sb.Append(" ");
+ sb.Append(" | ");
+ //sb.Append(mailTemplate.MailButtom());
+ sb.Append(mailTemplate.MailFooter());
+
+ return sb.ToString();
+
+ }
+
+ //SE Cancel Order Notify
+ public string SECancelOrderNotify(string FirstName, string LastName, string BookingNo, string Amount, DateTime? date)
+ {
+
+ StringBuilder sb = new StringBuilder();
+
+ EmailTemplate_CH mailTemplate = new EmailTemplate_CH();
+ var Server = Common.ConfigGetValue("", "ida:RedirectUri");
+
+ sb.Append(mailTemplate.MailHeader());
+ sb.Append(mailTemplate.MailCSS());
+ sb.Append(mailTemplate.MailShowEasyLogo());
+ //Email Body
+ sb.Append(" |
");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append(" ");
+ //Text:客戶取消訂單!
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ sb.Append("客戶取消訂單!");
+ sb.Append("");
+ sb.Append(" | ");
+ sb.Append(" ");
+ //Text:ShowEasy 已取消此訂單,請進行確認並進行退款流程。
+ sb.Append("");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append("ShowEasy 已取消此訂單,請進行確認並進行退款流程。");
+ sb.Append(" ");
+ sb.Append(" | ");
+ sb.Append(" ");
+ //訂單編號
+ sb.Append("");
+ sb.Append("");
+ sb.Append(" ");
+ sb.Append("訂單編號: " + BookingNo);
+ sb.Append(" ");
+ sb.Append(" | ");
+ //商品名稱
+ sb.Append(" ");
+ sb.Append("");
+ sb.Append(" ");
sb.Append("台灣展館服務 - 高雄自動化展");
sb.Append(" ");
sb.Append(" | ");
diff --git a/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingOnlineService.cs b/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingOnlineService.cs
index f35b922..c24a558 100644
--- a/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingOnlineService.cs
+++ b/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingOnlineService.cs
@@ -397,15 +397,111 @@ namespace EasyBL.WEBAPP.SYS
do
{
var db = SugarBase.DB;
- var Booking = db.Updateable() //更新訂單狀態
- .UpdateColumns(x => new SETB_SAL_BookingOnline { BookingStatus = "04" })
+ var Img = "";
+ var sPayment = "";
+ var changeBookingStatus = db.Updateable() //更新訂單狀態
+ .UpdateColumns(x => new SETB_SAL_BookingOnline { BookingStatus = "04", ModifyDate = DateTime.Now })
.Where(x => x.BookingID == BookingID && x.Account == sAccount && x.LangType == Lang)
.ExecuteCommand();
+ var sUser = db.Queryable() //get Member info
+ .Where(x => x.Account == sAccount)
+ .Single();
+
+ var booking = db.Queryable() //get Booking info
+ .Where(x => x.Account == sAccount && x.BookingID == BookingID)
+ .Single();
+
+ var service = db.Queryable() //get Service info
+ .Where(x => x.ServiceID == booking.ServiceID && x.LangID == Lang)
+ .Single();
+
+ service.PreviewFile = GetPreviewFile(service.PreviewFile);
+
+ var supplier = db.Queryable() //get Supplier info
+ .Where(x => x.SupplierID == service.SupplierID && x.LangType == Lang)
+ .Single();
+
+ var supplierMail = db.Queryable() //get Supplier Mail
+ .Where(x => x.SupplierID == service.SupplierID && x.LangType == Lang)
+ .Single();
+
+ //var img = db.Queryable() //get img info
+ //.Where(x => x.ParentID == sAccount && x.ParentID == service.PreviewFile)
+ //.Single();
+
+ if (!string.IsNullOrEmpty(booking.PaymentStatus))
+ {
+ if (booking.PaymentStatus == "01")
+ {
+ sPayment = "未付清";
+ }
+ else if (booking.PaymentStatus == "02")
+ {
+ sPayment = "已付款待確認";
+ }
+ else if (booking.PaymentStatus == "03")
+ {
+ sPayment = "確認付款";
+ }
+ else if (booking.PaymentStatus == "04")
+ {
+ sPayment = "退款中";
+ }
+ else
+ {
+ sPayment = "已退款";
+ }
+ }
+
+ var OrgID = WebAppGlobalConstWord.TG_ORGID;
+
+ if (sUser != null)
+ {
+
+ }
+
+ //寄信給User
+ var oEmail = new Emails(); //寄件人
+ var toEmail = new List(); //收件人
+ var oEmailTo = new EmailTo //收件人資訊
+ {
+ ToUserID = sUser.MemberID,
+ ToUserName = sUser.LastName,
+ ToEmail = sUser.Email,
+ Type = "to"
+ };
+ toEmail.Add(oEmailTo);
+ oEmail.FromUserName = "訂單取消通知"; //取fonfig
+ oEmail.Title = "訂單取消通知"; //取fonfig
+ oEmail.EmailBody = new BookingMail().CancelledBooking(service.PreviewFile, sUser.LastName, booking.BookingStatus, sPayment, booking.BookingNo, booking.BookingItem, booking.BookingDate, booking.ServiceDateS, booking.CurrencyID, booking.TotalPrice, service.ServiceName);
+ oEmail.IsCCSelf = false;
+ oEmail.Attachments = null;
+ oEmail.EmailTo = toEmail;
+ var bSend = new MailService(OrgID, true).MailFactory(oEmail, out sError);
+
+ //寄信給Supplier
+ oEmail = new Emails(); //寄件人
+ toEmail = new List(); //收件人
+ oEmailTo = new EmailTo //收件人資訊
+ {
+ ToUserID = sUser.MemberID,
+ ToUserName = sUser.LastName,
+ ToEmail = sUser.Email,
+ Type = "to"
+ };
+ toEmail.Add(oEmailTo);
+ oEmail.FromUserName = "訂單取消通知"; //取fonfig
+ oEmail.Title = "訂單取消通知"; //取fonfig
+ oEmail.EmailBody = new BookingMail().CancelOrderNotify(booking.BookingNo, service.ServiceName, sUser.FirstName, sUser.LastName, booking.CurrencyID, booking.TotalPrice, booking.ModifyDate);
+ oEmail.IsCCSelf = false;
+ oEmail.Attachments = null;
+ oEmail.EmailTo = toEmail;
+ bSend = new MailService(OrgID, true).MailFactory(oEmail, out sError);
//返回token信息
srm = new SuccessResponseMessage(null, null);
- srm.DATA.Add(BLWording.REL, Booking);
+ srm.DATA.Add(BLWording.REL, bSend);
} while (false);
}
@@ -609,7 +705,44 @@ namespace EasyBL.WEBAPP.SYS
}
+ //取得封面圖片
+ public string GetPreviewFile(string PreviewFile)
+ {
+ var sFilePath = "";
+ var db = SugarBase.GetIntance();
+ try
+ {
+ do
+ {
+ var sORIGID = WebAppGlobalConstWord.TG_ORGID;
+ string requestUrl = Common.ConfigGetValue("", "ida:RedirectUri");
+ var oFilePath = db.Queryable()
+ .Where(x => x.ParentID == PreviewFile && x.OrgID == sORIGID)
+ .Select(x => new FileDTO
+ {
+ FileID = x.FileID,
+ FileName = x.FileName,
+ FilePath = x.FilePath
+ })
+ .Single();
+
+
+ if (oFilePath != null)
+ {
+ sFilePath = requestUrl + "/" + oFilePath.FilePath.Replace("\\", "/");
+
+ }
+ return sFilePath;
+
+ } while (false);
+ }
+ catch (Exception ex)
+ {
+
+ }
+ return sFilePath;
+ }
}
| |