/// <summary> /// 批评处理价格、库存 /// </summary> /// <param name="request"></param> /// <returns></returns> public static BaseResponse SavePriceBatch(SaveHotelPriceModel request) { if (request.RuleId <= 0 || request.RoomId <= 0 || request.HotelId <= 0) { return(new BaseResponse { Msg = "价格政策错误" }); } var dateList = new List <DateTime>(); var monthList = new List <DateTime>(); //月份 if (!string.IsNullOrEmpty(request.MonthList)) { var m1 = request.MonthList.Split(',').ToList(); m1.ForEach(m => { if (!string.IsNullOrEmpty(m)) { var d1 = m.Split('-').ToList(); if (d1.Count == 2) { var year = ConvertHelper.ToInt32(d1[0], 0); var month = ConvertHelper.ToInt32(d1[1], 0); if (year == 0 || year < 2018 || month <= 0 || month > 12) { } else { monthList.Add(new DateTime(year, month, 1)); } } } }); } if (monthList == null || monthList.Count == 0) { return(new BaseResponse { IsSuccess = 0, Msg = "月份不能为空" }); } //日期 request.DateList = !string.IsNullOrEmpty(request.DateList) ? request.DateList : "1,31"; var da = request.DateList.Split(',').Distinct().Select(x => ConvertHelper.ToInt32(x, 0)).ToList(); monthList.ForEach(x => { if (da.Count() == 1) { da.Add(da[0]); } for (var d = da[0]; d <= da[1]; d++) { var d2 = new DateTime(1900, 1, 1); var str = $"{x.Year}-{x.Month}-{d}"; var bf = DateTime.TryParse(str, out d2); if (bf && d2.Year > 2000) { dateList.Add(d2); } } ; }); if (dateList == null || dateList.Count <= 0) { return(new BaseResponse { IsSuccess = 0, Msg = "日期数据异常" }); } var newDateList = new List <DateTime>(); //星期 if (!string.IsNullOrEmpty(request.WeekList) && request.WeekList != "-1") { var w1 = request.WeekList.Split(',').Select(x => ConvertHelper.ToInt32(x, -1)).ToList(); var c = dateList.Count; for (var i = 0; i < c; i++) { var d = dateList[i]; if (w1.Contains(d.DayOfWeek.GetHashCode())) { newDateList.Add(d); } } } else { newDateList = dateList; } if (newDateList == null || newDateList.Count <= 0) { return(new BaseResponse { IsSuccess = 0, Msg = "日期数据异常" }); } var list = new List <BaseResponse>(); newDateList.ForEach(d => { var sigleRequest = new SaveHotelPriceModel { Count = request.Count, ContractPrice = request.ContractPrice, HotelId = request.HotelId, PriceDate = d.ToString("yyyy-MM-dd"), OperateName = request.OperateName, RetainCount = request.RetainCount, RoomId = request.RoomId, RuleId = request.RuleId, SellPrice = request.SellPrice, Type = request.Type, }; var a = SavePriceDetail(sigleRequest); list.Add(a); }); return(new BaseResponse() { IsSuccess = 1 }); }
/// <summary> /// 单日价格、库存 /// </summary> /// <param name="request"></param> /// <returns></returns> public static BaseResponse SavePriceDetail(SaveHotelPriceModel request) { if (request.RuleId <= 0 || request.RoomId <= 0 || request.HotelId <= 0) { return(new BaseResponse { Msg = "价格政策错误" }); } //验证对于日期是否存在 var db = new H_HoteRulePriceAccess(); var model = new H_HoteRulePriceModel(); var date = ConvertHelper.ToDateTime(request.PriceDate, new DateTime(1900, 1, 1)); var dateInt = ConvertHelper.ToInt32(date.ToString("yyyyMMdd"), 0); if (date.Year < 2000) { return(new BaseResponse { Msg = "日期错误" }); } model = db.Query().Where(x => x.HRPDateInt == dateInt && x.HRRId == request.RuleId).FirstOrDefault(); if (model != null && model.Id > 0) { if (request.Id > 0) { if (model.Id != request.Id) { return(new BaseResponse { Msg = "数据有问题" }); } } model.HRPUpdateName = request.OperateName; model.HRPUpdateTime = DateTime.Now; } else { model = new H_HoteRulePriceModel { HRPDate = date, HRPDateInt = dateInt, HRPAddName = request.OperateName, HIId = request.HotelId, HRId = request.RoomId, HRRId = request.RuleId, HRPAddTime = DateTime.Now, HRPStatus = 1, HRPIsValid = 1 }; } if (request.Type == 1) {//价格 model.HRPSellPrice = request.SellPrice; model.HRPContractPrice = request.ContractPrice; } if (request.Type == 2) {// 库存 model.HRPCount = request.Count; model.HRPRetainCount = request.RetainCount; } if (model.Id > 0) { return(Update(model)); } else { return(Insert(model)); } }