You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

165 lines
5.1 KiB

  1. using EasyBL;
  2. using EasyBL.WebApi;
  3. using EasyBL.WebApi.Common;
  4. using EasyBL.WebApi.Filters;
  5. using EasyBL.WebApi.Message;
  6. using EasyBL.WEBAPP;
  7. using EasyBL.WEBAPP.SYS;
  8. using Entity.ShowEasyDtos;
  9. using Entity.Sugar;
  10. using Entity.ViewModels;
  11. using Newtonsoft.Json;
  12. using SqlSugar.Base;
  13. using System;
  14. using System.Collections.Generic;
  15. using System.Linq;
  16. using System.Net;
  17. using System.Net.Http;
  18. using System.Web;
  19. using System.Web.Http;
  20. namespace WebApp.Controllers
  21. {
  22. public class BookingOnlineController : ApiController
  23. {
  24. /// <summary>
  25. /// 子類別查詢API (服務有包含該類別才列出)
  26. /// </summary>
  27. /// <param name="argumentClassID"></param>
  28. /// <returns></returns>
  29. [HttpGet]
  30. [SEApiSecurityFilter]
  31. public HttpResponseMessage BookingCategoryList(string Lang)
  32. {
  33. var SEToken = SETokenUtil.GetToken(this.Request);
  34. return new BookingOnlineService().GetBookingCategory(SEToken.Account, Lang);
  35. }
  36. /// <summary>
  37. /// 子類別查詢API (服務有包含該類別才列出)
  38. /// </summary>
  39. /// <param name="argumentClassID"></param>
  40. /// <returns></returns>
  41. [HttpGet]
  42. [SEApiSecurityFilter]
  43. public HttpResponseMessage BookingCardList(string Lang, int PageIndex, int PageSize, string SubCategoryIDs, string BookingStatuses, string PaymentStatuses, string Query)
  44. {
  45. var SEToken = SETokenUtil.GetToken(this.Request);
  46. var sAccount = SEToken.Email;
  47. List<string> rsSubCategoryIDs = new List<string>();
  48. List<string> rsBookingStatuses = new List<string>();
  49. List<string> rsPaymentStatuses = new List<string>();
  50. if (!string.IsNullOrEmpty(SubCategoryIDs))
  51. {
  52. rsSubCategoryIDs = JsonConvert.DeserializeObject<List<string>>(SubCategoryIDs);
  53. }
  54. if (!string.IsNullOrEmpty(BookingStatuses))
  55. {
  56. rsBookingStatuses = JsonConvert.DeserializeObject<List<string>>(BookingStatuses);
  57. }
  58. if (!string.IsNullOrEmpty(PaymentStatuses))
  59. {
  60. rsPaymentStatuses = JsonConvert.DeserializeObject<List<string>>(PaymentStatuses);
  61. }
  62. return new BookingOnlineService().BookingCardList(Lang, sAccount, PageIndex, PageSize, rsSubCategoryIDs, rsBookingStatuses, rsPaymentStatuses, Query);
  63. }
  64. /// <summary>
  65. /// 上傳匯款單
  66. /// </summary>
  67. /// <param name="argumentClassID"></param>
  68. /// <returns></returns>
  69. [HttpPost]
  70. [SEApiSecurityFilter]
  71. public HttpResponseMessage UploadRemittance(string BookingID)
  72. {
  73. var SEToken = SETokenUtil.GetToken(this.Request);
  74. return new BookingOnlineService().UploadRemittance(SEToken.OrgID, SEToken.Account, BookingID);
  75. }
  76. /// <summary>
  77. /// 導向後台
  78. /// </summary>
  79. /// <param name="argumentClassID"></param>
  80. /// <returns></returns>
  81. [HttpGet]
  82. public HttpResponseMessage RedirectToBackend(string BookingNo)
  83. {
  84. var result = new BookingOnlineService().RedirectToBackend(BookingNo);
  85. var Server = Common.ConfigGetValue("", "ida:RedirectUri");
  86. if (result.ReasonPhrase == "OK")
  87. {
  88. result = Request.CreateResponse(HttpStatusCode.Moved);
  89. result.Headers.Location = new Uri(Server);
  90. }
  91. return result;
  92. }
  93. /// <summary>
  94. /// 取消訂單
  95. /// </summary>
  96. /// <param name="argumentClassID"></param>
  97. /// <returns></returns>
  98. [HttpPost]
  99. [SEApiSecurityFilter]
  100. public HttpResponseMessage CancelBooking(string BookingID, string Lang)
  101. {
  102. var SEToken = SETokenUtil.GetToken(this.Request);
  103. return new BookingOnlineService().CancelBooking(SEToken.Account, BookingID, Lang);
  104. }
  105. /// <summary>
  106. /// 用訂單編號查
  107. /// </summary>
  108. /// <param name="argumentClassID"></param>
  109. /// <returns></returns>
  110. [HttpGet]
  111. [SEApiSecurityFilter]
  112. public HttpResponseMessage Booking(string Lang, string BookingID, string BookingNo)
  113. {
  114. var SEToken = SETokenUtil.GetToken(this.Request);
  115. return new BookingOnlineService().GetOneDetailBooking(Lang, SEToken.Account, BookingID, BookingNo);
  116. }
  117. [HttpPost]
  118. [SEApiSecurityFilter]
  119. public HttpResponseMessage BookingStatus(string BookingID, string BookingStatus)
  120. {
  121. var SEToken = SETokenUtil.GetToken(this.Request);
  122. return new BookingOnlineService().SaveBookingStatus(BookingID, BookingStatus);
  123. }
  124. [HttpGet]
  125. [SEApiSecurityFilter]
  126. public HttpResponseMessage FindBookingID(string Lang, string BookingNo)
  127. {
  128. var SEToken = SETokenUtil.GetToken(this.Request);
  129. return new BookingOnlineService().FindBookingID(Lang, SEToken.Account, BookingNo);
  130. }
  131. }
  132. }