Browse Source

[WHAT] 修改Booking API

Dev
berlin-tzen 2 years ago
parent
commit
94598041ca
  1. 19
      EuroTran/EasyBL.WEBAPP/ShowEasy/BookingMaintain_QryService.cs
  2. 79
      EuroTran/EasyBL.WEBAPP/ShowEasy/BookingMaintain_UpdService.cs
  3. 57
      EuroTran/EasyBL.WEBAPP/ShowEasy/BookingService.cs
  4. 2
      EuroTran/Entity/ShowEasyDtos/ContactDTO.cs
  5. 8
      EuroTran/Entity/Sugar/SETB_SAL_Booking.cs
  6. 60
      EuroTran/WebApp/Controllers/BookingController.cs

19
EuroTran/EasyBL.WEBAPP/ShowEasy/BookingMaintain_QryService.cs

@ -118,7 +118,7 @@ namespace EasyBL.WEBAPP.SYS
var sEffective = _fetchString(i_crm, @"Effective");
var bExcel = _fetchBool(i_crm, @"Excel");
var BookingDic = FindAllDetailByIDsAsDictionary(sLanguageID, "", "");
var BookingDic = FindAllDetailByIDsAsDictionary(sLanguageID, "", "", "");
var BookingList = db.Queryable<SETB_SAL_Booking, SETB_CMS_Member, SETB_PDT_ServiceBaseInfo>((t1, t2, t3) => new object[] {
@ -250,7 +250,7 @@ namespace EasyBL.WEBAPP.SYS
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
var rsBooking = QueryOneDetailBooking(sLanguageID, sBookingID);
var rsBooking = QueryOneDetailBooking(sLanguageID, sBookingID, "");
rm = new SuccessResponseMessage(null, i_crm);
rm.DATA.Add(BLWording.REL, rsBooking);
@ -550,7 +550,7 @@ namespace EasyBL.WEBAPP.SYS
#endregion 預訂管理(List 幣別列表 call ServiceMaintain_UpdService QueryCurrencyList)
//QueryALLBookingAsDic
public Dictionary<string, View_SAL_Booking> FindAllByIDsAsDictionary(string sBookingID, string sMemberID)
public Dictionary<string, View_SAL_Booking> FindAllByIDsAsDictionary(string sBookingID, string sBookingNo, string sMemberID)
{
string sMsg = null;
@ -565,6 +565,7 @@ namespace EasyBL.WEBAPP.SYS
var saBookingList = db.Queryable<SETB_SAL_Booking>()
.Where(t1 => t1.DelStatus == "N" && t1.Effective == "Y")
.WhereIF(!string.IsNullOrEmpty(sBookingID), t1 => t1.BookingID == sBookingID)
.WhereIF(!string.IsNullOrEmpty(sBookingNo), t1 => t1.BookingNo == sBookingNo)
.WhereIF(!string.IsNullOrEmpty(sMemberID), t1 => t1.MemberID == sMemberID)
.Select(t1 => new View_SAL_Booking {
@ -592,11 +593,11 @@ namespace EasyBL.WEBAPP.SYS
}
public Dictionary<string, View_SAL_Booking> FindAllDetailByIDsAsDictionary(string sLanguageID, string sBookingID, string sMemberID) {
public Dictionary<string, View_SAL_Booking> FindAllDetailByIDsAsDictionary(string sLanguageID, string sBookingID, string sBookingNo, string sMemberID) {
var rsBookingDic = new Dictionary<string, View_SAL_Booking>();
var BookingDic = FindAllByIDsAsDictionary(sBookingID, sMemberID);
var BookingDic = FindAllByIDsAsDictionary(sBookingID, sBookingNo, sMemberID);
MemberMaintain_QryService mm_qry = new MemberMaintain_QryService();
var MemberDic = mm_qry.FindAllByIDsAsDictionary(sMemberID, "");
@ -704,9 +705,9 @@ namespace EasyBL.WEBAPP.SYS
}
public View_SAL_Booking QueryOneDetailBooking(string sLanguageID, string sBookingID) {
public View_SAL_Booking QueryOneDetailBooking(string sLanguageID, string sBookingID, string sBookingNo) {
var Booking = FindAllDetailByIDsAsDictionary(sLanguageID, sBookingID, "").Values.ToList()
var Booking = FindAllDetailByIDsAsDictionary(sLanguageID, sBookingID, sBookingNo, "").Values.ToList()
.Where(w => w.BookingID == sBookingID)
.FirstOrDefault();
@ -725,7 +726,7 @@ namespace EasyBL.WEBAPP.SYS
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
var BookingDic = FindAllDetailByIDsAsDictionary(sLanguageID, "", sMemberID);
var BookingDic = FindAllDetailByIDsAsDictionary(sLanguageID, "", "", sMemberID);
BookingDic = FilterByMemberID(BookingDic, sMemberID);
@ -846,7 +847,7 @@ namespace EasyBL.WEBAPP.SYS
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
var BookingDic = FindAllDetailByIDsAsDictionary(sLanguageID, "", sMemberID);
var BookingDic = FindAllDetailByIDsAsDictionary(sLanguageID, "", "", sMemberID);
BookingDic = FilterByMemberID(BookingDic, sMemberID);

79
EuroTran/EasyBL.WEBAPP/ShowEasy/BookingMaintain_UpdService.cs

@ -28,6 +28,24 @@ namespace EasyBL.WEBAPP.WSM
#endregion 預訂維護(單筆查詢 call BookingMaintainQryService QueryOne)
public ResponseMessage SaveBooking(SETB_SAL_Booking Booking) {
ResponseMessage rsResult = null;
if (string.IsNullOrEmpty(Booking.BookingID))
{
// insert
rsResult = Insert(Booking);
}
else {
// update
rsResult = Update(Booking);
}
return rsResult;
}
#region 預訂維護(新增)
/// <summary>
@ -36,7 +54,7 @@ namespace EasyBL.WEBAPP.WSM
/// <param name="i_crm">todo: describe i_crm parameter on UpdImportCustomers</param>
/// <returns></returns>
/// Origtek framwork API
public ResponseMessage Insert(RequestMessage i_crm)
public ResponseMessage Insert(SETB_SAL_Booking Booking)
{
ResponseMessage rm = null;
string sMsg = null;
@ -49,27 +67,12 @@ namespace EasyBL.WEBAPP.WSM
var sBookingID = Guid.NewGuid().ToString();
var oEntity = _fetchEntity<View_SAL_Booking>(i_crm) as SETB_SAL_Booking;
_setEntityBase(oEntity, i_crm);
oEntity.BookingID = sBookingID;
oEntity.DelStatus = "N";
BookingMaintain_QryService bm_qry = new BookingMaintain_QryService();
var iOldCout = bm_qry.QueryIntCount(i_crm);
if (oEntity.OrderByValue <= iOldCout)
{
var iRelUp = db.Updateable<SETB_SAL_Booking>()
.UpdateColumns(x => new SETB_SAL_Booking { OrderByValue = x.OrderByValue + 1 })
.Where(x => x.OrgID == i_crm.ORIGID && x.BookingID == oEntity.BookingID && x.OrderByValue >= oEntity.OrderByValue)
.ExecuteCommand();
}
Booking.BookingID = sBookingID;
Booking.DelStatus = "N";
Booking.Effective = "Y";
var iRel = db.Insertable(oEntity).ExecuteCommand();
rm = new SuccessResponseMessage(null, i_crm);
var iRel = db.Insertable(Booking).ExecuteCommand();
rm = new SuccessResponseMessage(null, null);
rm.DATA.Add(BLWording.REL, iRel);
} while (false);
@ -79,13 +82,12 @@ namespace EasyBL.WEBAPP.WSM
catch (Exception ex)
{
sMsg = Util.GetLastExceptionMsg(ex);
LogAndSendEmail(sMsg + @"Param:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(BookingMaintain_UpdService), "", "Insert 預訂維護(新增)", "", "", "");
}
finally
{
if (null != sMsg)
{
rm = new ErrorResponseMessage(sMsg, i_crm);
rm = new ErrorResponseMessage(sMsg, null);
}
}
return rm;
@ -101,7 +103,7 @@ namespace EasyBL.WEBAPP.WSM
/// <param name="i_crm">todo: describe i_crm parameter on UpdImportCustomers</param>
/// <returns></returns>
/// Origtek framwork API
public ResponseMessage Update(RequestMessage i_crm)
public ResponseMessage Update(SETB_SAL_Booking Booking)
{
ResponseMessage rm = null;
string sMsg = null;
@ -111,34 +113,14 @@ namespace EasyBL.WEBAPP.WSM
{
do
{
var oNewEntity = _fetchEntity<View_SAL_Booking>(i_crm) as SETB_SAL_Booking;
_setEntityBase(oNewEntity, i_crm);
oNewEntity.DelStatus = "N";
var oOldEntity = db.Queryable<SETB_SAL_Booking>().Single(x => x.OrgID == i_crm.ORIGID && x.BookingID == oNewEntity.BookingID);
if (oNewEntity.OrderByValue > oOldEntity.OrderByValue)
{
var iRelUp = db.Updateable<SETB_SAL_Booking>()
.UpdateColumns(x => new SETB_SAL_Booking { OrderByValue = x.OrderByValue - 1 })
.Where(x => x.OrgID == oNewEntity.OrgID && x.BookingID == oNewEntity.BookingID && x.OrderByValue <= oNewEntity.OrderByValue && x.OrderByValue > oOldEntity.OrderByValue).ExecuteCommand();
}
else
{
var iRelDown = db.Updateable<SETB_SAL_Booking>()
.UpdateColumns(x => new SETB_SAL_Booking { OrderByValue = x.OrderByValue + 1 })
.Where(x => x.OrgID == oNewEntity.OrgID && x.BookingID == oNewEntity.BookingID && x.OrderByValue >= oNewEntity.OrderByValue && x.OrderByValue < oOldEntity.OrderByValue).ExecuteCommand();
}
var iRel = db.Updateable(oNewEntity)
var iRel = db.Updateable(Booking)
.IgnoreColumns(x => new
{
x.CreateUser,
x.CreateDate
}).ExecuteCommand();
rm = new SuccessResponseMessage(null, i_crm);
rm = new SuccessResponseMessage(null, null);
rm.DATA.Add(BLWording.REL, iRel);
} while (false);
@ -148,13 +130,12 @@ namespace EasyBL.WEBAPP.WSM
catch (Exception ex)
{
sMsg = Util.GetLastExceptionMsg(ex);
LogAndSendEmail(sMsg + @"Param:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(BookingMaintain_UpdService), "", "Update 預訂維護(修改)", "", "", "");
}
finally
{
if (null != sMsg)
{
rm = new ErrorResponseMessage(sMsg, i_crm);
rm = new ErrorResponseMessage(sMsg, null);
}
}
return rm;

57
EuroTran/EasyBL.WEBAPP/ShowEasy/BookingService.cs

@ -3,6 +3,7 @@ using EasyBL.WebApi;
using EasyBL.WebApi.Common;
using EasyBL.WebApi.Message;
using EasyBL.WEBAPP.ShowEasy;
using EasyBL.WEBAPP.WSM;
using Entity.ShowEasyDtos;
using Entity.Sugar;
using Entity.ViewModels;
@ -86,7 +87,9 @@ namespace EasyBL.WEBAPP.SYS
//取Member所有的訂單
BookingMaintain_QryService booking_qry = new BookingMaintain_QryService();
var allBookingServiceList = booking_qry.FindAllByIDsAsDictionary("", member.MemberID).Values.ToList().Where(w => !string.IsNullOrEmpty(w.ServiceID)).Select(s => s.ServiceID).ToList();
var allBookingServiceList = booking_qry.FindAllByIDsAsDictionary("", "", member.MemberID).Values.ToList()
.Where(w => !string.IsNullOrEmpty(w.ServiceID))
.Select(s => s.ServiceID).ToList();
//取所有category
ServiceSubCategoryMaintain_QryService serviceSub_qry = new ServiceSubCategoryMaintain_QryService();
@ -240,7 +243,7 @@ namespace EasyBL.WEBAPP.SYS
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public HttpResponseMessage GetOneDetailBooking(string sLanguageID, string sBookingID) {
public HttpResponseMessage GetOneDetailBooking(string sLanguageID, string sBookingID, string sBookingNo) {
SuccessResponseMessage srm = null;
string sError = null;
@ -255,15 +258,10 @@ namespace EasyBL.WEBAPP.SYS
sLanguageID = WebAppGlobalConstWord.DEFAULT_LANGUAGE;
}
var rsBooking = bm_qry.QueryOneDetailBooking(sLanguageID, sBookingID);
var rsBooking = bm_qry.QueryOneDetailBooking(sLanguageID, sBookingID, sBookingNo);
if (rsBooking != null) {
var Booking = EntityToDTO(rsBooking);
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, Booking);
}
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsBooking);
} while (false);
}
@ -286,6 +284,45 @@ namespace EasyBL.WEBAPP.SYS
#endregion 訂單管理(BookingDTO API 以ID查詢單筆訂單)
public HttpResponseMessage SaveBooking(string sAccount, SETB_SAL_Booking Booking) {
SuccessResponseMessage srm = null;
string sError = null;
try
{
do
{
MemberMaintain_QryService mm_qry = new MemberMaintain_QryService();
var Member = mm_qry.QueryOneByAccount(sAccount);
Booking.MemberID = Member.MemberID;
BookingMaintain_UpdService bm_upd = new BookingMaintain_UpdService();
var rsResult = bm_upd.SaveBooking(Booking);
//返回token信息
srm = new SuccessResponseMessage(null, null);
srm.DATA.Add(BLWording.REL, rsResult.DATA[BLWording.REL]);
} while (false);
}
catch (Exception ex)
{
sError = Util.GetLastExceptionMsg(ex);
srm = new SuccessResponseMessage(null, null)
{
STATUSCODE = (int)StatusCodeEnum.Error,
MSG = StatusCodeEnum.Error.GetEnumText()
};
srm.DATA.Add(BLWording.REL, "");
}
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
}
private BookingDTO EntityToDTO(View_SAL_Booking entityBooking) {
BookingDTO dtoBooking = new BookingDTO();

2
EuroTran/Entity/ShowEasyDtos/ContactDTO.cs

@ -13,7 +13,7 @@ namespace Entity.ShowEasyDtos
public string LastName { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string MobilePhone { get; set; }
}
}

8
EuroTran/Entity/Sugar/SETB_SAL_Booking.cs

@ -65,6 +65,14 @@ namespace Entity.Sugar
public string ServiceID { get; set; }
public const string CN_SERVICEID = "ServiceID";
/// <summary>
/// Desc:
/// Default:
/// Nullable:False
/// </summary>
public string NoticeDetail { get; set; }
public const string CN_NOTICEDETAIL = "NoticeDetail";
/// <summary>
/// Desc:
/// Default:

60
EuroTran/WebApp/Controllers/BookingController.cs

@ -7,6 +7,7 @@ using EasyBL.WEBAPP;
using EasyBL.WEBAPP.SYS;
using Entity.ShowEasyDtos;
using Entity.Sugar;
using Entity.ViewModels;
using Newtonsoft.Json;
using SqlSugar.Base;
using System;
@ -49,49 +50,6 @@ namespace WebApp.Controllers
return new BookingService().GetBookingCategory(SEToken.Account, LangType);
}
///// <summary>
/////
///// </summary>
///// <param name=""></param>
///// <returns></returns>
//[HttpGet]
//[SEApiSecurityFilter]
//public HttpResponseMessage Bookings(
// string Lang,
// string SubCategoryIDs,
// string BookingStatuses,
// string PaymentStatuses)
//{
// List<string> rsSubCategoryIDs = new List<string>();
// List<string> rsBookingStatuses = new List<string>();
// List<string> rsPaymentStatuses = new List<string>();
// var SEToken = SETokenUtil.GetToken(this.Request);
// if (!string.IsNullOrEmpty(SubCategoryIDs))
// {
// rsSubCategoryIDs = JsonConvert.DeserializeObject<List<string>>(SubCategoryIDs);
// }
// if (!string.IsNullOrEmpty(BookingStatuses))
// {
// rsBookingStatuses = JsonConvert.DeserializeObject<List<string>>(BookingStatuses);
// }
// if (!string.IsNullOrEmpty(PaymentStatuses))
// {
// rsPaymentStatuses = JsonConvert.DeserializeObject<List<string>>(PaymentStatuses);
// }
// return new BookingService().GetBookings(SEToken.Account, Lang, rsSubCategoryIDs, rsBookingStatuses, rsPaymentStatuses);
//}
/// <summary>
///
/// </summary>
/// <param name=""></param>
/// <returns></returns>
[HttpGet]
[SEApiSecurityFilter]
public HttpResponseMessage BookingCardList(
@ -126,13 +84,21 @@ namespace WebApp.Controllers
}
[HttpGet]
//[SEApiSecurityFilter]
public HttpResponseMessage Booking (string Lang, string BookingID)
public HttpResponseMessage Booking(string Lang, string BookingID, string BookingNo)
{
return new BookingService().GetOneDetailBooking(Lang, BookingID, BookingNo);
}
[HttpPost]
[SEApiSecurityFilter]
public HttpResponseMessage Booking(SETB_SAL_Booking Booking)
{
//var SEToken = SETokenUtil.GetToken(this.Request);
var SEToken = SETokenUtil.GetToken(this.Request);
Booking.OrgID = SEToken.OrgID;
return new BookingService().GetOneDetailBooking(Lang, BookingID);
return new BookingService().SaveBooking(SEToken.Account, Booking);
}
}

|||||||
100:0
Loading…
Cancel
Save