Ejemplo n.º 1
0
        /// <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
            });
        }
Ejemplo n.º 2
0
        /// <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));
            }
        }