/// <summary> /// 喜玩订单 /// </summary> /// <param name="createrequset"></param> /// <param name="orderseriald"></param> /// <param name="ruleid"></param> /// <param name="qlhotelid"></param> /// <returns></returns> public DataResult XiWanOrder(CreateRequset createrequset, string orderseriald, int ruleid, int qlhotelid) { var result = new DataResult(); result.Code = DataResultType.Fail; var item = createrequset.orderModel; var request = new XiWanOrderRequest(); request.DistributeOrderNo = !string.IsNullOrWhiteSpace(item.thirdOrderNo) ? item.thirdOrderNo : orderseriald; request.HotelId = item.hotelId; request.RoomId = item.outCode.ToString(); request.RoomName = GetXiWanRoomName(item.roomTypeId.ToString()); request.ProductSerial = item.productSerial; request.ComeDate = Convert.ToDateTime(item.arrival).Date; request.RoomNum = item.roomNum; request.LeaveDate = Convert.ToDateTime(item.departure).Date; request.LastArriveTime = "18:00"; request.TotalPrice = Convert.ToDecimal(item.roomPrice); request.ContactName = item.contactName; request.ContactMobile = item.mobile; request.GuestNames = item.guestName.Split(','); request.NoteToHotel = !string.IsNullOrWhiteSpace(item.remark) ? item.remark : "无"; var rtn = XiWanAPI.XiWanPost <XiWanOrderResponse, XiWanOrderRequest>(request, HotelOrderUrl); //日志 var logmodel = new HO_HotelOrderLogModel { HOLOrderId = orderseriald, HOLLogType = 1,//订单日志 HOLAddId = 0, HOLAddName = "系统", HOLAddDepartId = 0, HOLAddDepartName = "系统", HOLAddTime = DateTime.Now }; logmodel.HOLRemark = "喜玩下单请求:" + JsonConvert.SerializeObject(request) + "||喜玩下单接口返回:" + JsonConvert.SerializeObject(rtn); OrderLogBll.AddOrderModel(logmodel); result.Message = JsonConvert.SerializeObject(rtn); var order = rtn?.Result; var price = OrderBll.GetHotelPriceList(ruleid, Convert.ToDateTime(item.arrival), Convert.ToDateTime(item.departure)); if (rtn.Code == "0" && !string.IsNullOrWhiteSpace(order.OrderNo)) { result.Code = DataResultType.Sucess; result.Data = orderseriald; logmodel.HOLRemark = "喜玩更新供应商订单流水号:流水号=" + order.OrderNo; var upserialid = OrderBll.UpdatesSupplier(orderseriald, order.OrderNo, 0); logmodel.HOLRemark = "更新结果:" + (upserialid > 0 ? "更新成功" : "更新失败"); OrderLogBll.AddOrderModel(logmodel); if (price != null && price.Any()) { foreach (var i in price) { logmodel.HOLRemark = "喜玩更新库存:原有库存=" + i.HRPCount; i.HRPCount = i.HRPCount - 1 >= 0 ? i.HRPCount - 1 : 0; var up = HotelRoomRuleBll.UpdateCount(i); logmodel.HOLRemark += ",更新后库存=" + i.HRPCount + ",更新结果:" + up.Msg; OrderLogBll.AddOrderModel(logmodel); } } } else { if (rtn.Msg.Contains("存在日期满房") || rtn.Msg.Contains("总价应为") || rtn.Msg.Contains("已关闭")) { var upstock = XiWanApiService.Xw_HotelPrice(qlhotelid); logmodel.HOLRemark = "满房或价格变动更新酒店库存和价格:酒店id:" + qlhotelid + ",更新结果:" + upstock.Code; OrderLogBll.AddOrderModel(logmodel); if (rtn.Msg.Contains("存在日期满房")) { if (price != null && price.Any()) { var i = price.OrderBy(s => s.HRPDate).FirstOrDefault(); i.HRPCount = 0; var up = HotelRoomRuleBll.UpdateCount(i); logmodel.HOLRemark = "满房更新库存:待更新信息:" + JsonConvert.SerializeObject(i) + ",更新结果:" + up.IsSuccess; OrderLogBll.AddOrderModel(logmodel); } result.Code = DataResultType.Fail; result.Message = JsonConvert.SerializeObject(rtn); OrderBll.UpdatesSupplier(orderseriald, "", 2); } if (rtn.Msg.Contains("总价应为")) { var neworder = OrderBll.GetModel(orderseriald); var newprice = OrderBll.GetHotelPriceList(neworder.HRRId, neworder.HOCheckInDate, neworder.HOCheckOutDate); if (price != null && price.Any()) { var total = price.Sum(s => s.HRPContractPrice) * neworder.HORoomCount; createrequset.orderModel.roomPrice = total.ToString(); if (createrequset.supplierSourceId == 1) { total = total * 0.94M; } if (neworder.HOSellPrice >= total) { XiWanOrder(createrequset, orderseriald, ruleid, qlhotelid); } else { result.Code = DataResultType.Fail; result.Message = JsonConvert.SerializeObject(rtn); OrderBll.UpdatesSupplier(orderseriald, "", 2); } } } if (rtn.Msg.Contains("已关闭")) { var up = HotelBll.SetValid(qlhotelid, 0, "system"); logmodel.HOLRemark = "已关闭更新酒店状态:待更新酒店Id:" + qlhotelid + ",更新结果:" + up.IsSuccess; OrderLogBll.AddOrderModel(logmodel); result.Code = DataResultType.Fail; result.Message = JsonConvert.SerializeObject(rtn); OrderBll.UpdatesSupplier(orderseriald, "", 2); } } } return(result); }
public JsonResult <string> DeleteOldPrice(int days) { var rtn = XiWanApiService.DeleteOldPrice(days); return(Json(rtn)); }
public JsonResult <DataResult> Xw_HotelPrice(int id) { var rtn = XiWanApiService.Xw_HotelPrice(id); return(Json(rtn)); }
public JsonResult <XiWanPriceHotel> GetHotelPrice(int id, DateTime comeDate, DateTime leaveDate) { var rtn = XiWanApiService.GetHotelPrice(id, comeDate.ToString("yyyy-MM-dd"), leaveDate.ToString("yyyy-MM-dd")); return(Json(rtn)); }
public JsonResult <DataResult> Xw_HotelDetail(int max, int top) { var rtn = XiWanApiService.GetHotelDetail(max, top); return(Json(rtn)); }
public JsonResult <DataResult> Xw_HotelList() { var rtn = XiWanApiService.GetHotelList(1, 1); return(Json(rtn)); }