示例#1
0
        public DTOBackHolidayData GetHoliday([FromForm] DTOGetHolidayData dto)
        {
            Repository <Prc_Holiday> repository = new Repository <Prc_Holiday>(DbContext);
            Prc_Holiday model = repository.Get(a => !a.IsDelete && a.Year == dto.Year);
            string      str   = string.Empty;

            if (model != null)
            {
                str = model.Data;
            }
            Repository <Prc_ConfigSet> repositoryCfgSet = new Repository <Prc_ConfigSet>(DbContext);
            var revDay       = repositoryCfgSet.Get(a => a.Code == PrcConfigSet.ReserveDay);
            var revHour      = repositoryCfgSet.Get(a => a.Code == PrcConfigSet.ReserveHour);
            int revDayValue  = revDay == null || string.IsNullOrWhiteSpace(revDay.Value) ? 7 : int.Parse(revDay.Value);
            int revHourValue = revHour == null || string.IsNullOrWhiteSpace(revHour.Value) ? 24 : int.Parse(revHour.Value);

            return(new DTOBackHolidayData()
            {
                StrJson = str, ReserveDay = revDayValue, ReserveHour = revHourValue
            });
        }
示例#2
0
        public ReturnResponse SaveHoliday([FromForm] DTOHolidayData dto)
        {
            if (dto.Holidays == null)
            {
                dto.Holidays = new List <HolidayItem>();
            }
            Dictionary <int, List <HolidayItem> > yearSplit = new Dictionary <int, List <HolidayItem> >();

            foreach (HolidayItem holiday in dto.Holidays)
            {
                DateTime dt = Convert.ToDateTime(holiday.StrTime);
                if (!yearSplit.ContainsKey(dt.Year))
                {
                    yearSplit.Add(dt.Year, new List <HolidayItem>());
                }
                yearSplit[dt.Year].Add(holiday);
            }
            Repository <Prc_ConfigSet> repositoryCfgSet  = new Repository <Prc_ConfigSet>(DbContext);
            Repository <Prc_Holiday>   repositoryHoliday = new Repository <Prc_Holiday>(DbContext);

            //保存节假日历
            foreach (int year in yearSplit.Keys)
            {
                Prc_Holiday        model    = repositoryHoliday.Get(a => !a.IsDelete && a.Year == year);
                List <HolidayItem> yearData = yearSplit[year];
                if (model == null)
                {
                    //如果没有当年,则新加
                    model      = new Prc_Holiday();
                    model.Year = year;
                    model.Data = JsonConvert.SerializeObject(new Dictionary <string, Dictionary <string, int> >());
                    repositoryHoliday.Add(model);
                    DbContext.SaveChanges();
                }

                Dictionary <string, Dictionary <string, int> > monthData = JsonConvert.DeserializeObject <Dictionary <string, Dictionary <string, int> > >(model.Data);
                foreach (HolidayItem holiday in yearData)
                {
                    DateTime dt           = DateTime.Parse(holiday.StrTime);
                    string   yearMonthStr = dt.ToString("yyyyMM");
                    string   dayStr       = dt.ToString("dd");
                    if (!monthData.ContainsKey(yearMonthStr))
                    {
                        monthData.Add(yearMonthStr, new Dictionary <string, int>());
                    }
                    if (monthData[yearMonthStr].ContainsKey(dayStr))
                    {
                        if (holiday.Type == 0)
                        {
                            monthData[yearMonthStr].Remove(dayStr);
                        }
                        else
                        {
                            monthData[yearMonthStr][dayStr] = holiday.Type;
                        }
                    }
                    else
                    {
                        if (holiday.Type != 0)
                        {
                            monthData[yearMonthStr].Add(dayStr, holiday.Type);
                        }
                    }
                }
                model.Data = JsonConvert.SerializeObject(monthData);
                repositoryHoliday.Update(model);
            }
            //保存期限配置
            var revDay  = repositoryCfgSet.Get(a => a.Code == PrcConfigSet.ReserveDay);
            var revHour = repositoryCfgSet.Get(a => a.Code == PrcConfigSet.ReserveHour);

            if (revDay == null)
            {
                repositoryCfgSet.Add(new Prc_ConfigSet()
                {
                    Code = PrcConfigSet.ReserveDay, Value = dto.ReserveDay.ToString()
                });
            }
            else
            {
                revDay.Value = dto.ReserveDay.ToString();
                repositoryCfgSet.Update(revDay);
            }

            if (revHour == null)
            {
                repositoryCfgSet.Add(new Prc_ConfigSet()
                {
                    Code = PrcConfigSet.ReserveHour, Value = dto.ReserveHour.ToString()
                });
            }
            else
            {
                revHour.Value = dto.ReserveHour.ToString();
                repositoryCfgSet.Update(revHour);
            }
            DbContext.SaveChanges();

            return(new ReturnResponse());
        }
示例#3
0
        public ReturnResponse LoadHoliday(DTOLoadHoliday dto)
        {
            string holidayUrl = Environment.GetEnvironmentVariable("HolidayURL");

            if (string.IsNullOrWhiteSpace(holidayUrl))
            {
                holidayUrl = "http://holiday.youcaihua.net:9955";
            }
            holidayUrl += "/YCH/1.0/DTOGetHoliday";
            DTOHDLoadHoliday hddto = new DTOHDLoadHoliday()
            {
                Year         = dto.Year.ToString(),
                BusinessId   = "0D842379-F14F-4078-A79C-1E2AD005C381",
                BusinessName = "产品管理平台"
            };

            hddto.SetSign(hddto);
            string jsonstr = "";

            try
            {
                var result = PostHelper.Post <DTOHDLoadHoliday, DTOHDBackHoliday> (hddto, holidayUrl);
                if (result.ResponseStatus.ErrorCode != "0")
                {
                    throw new Exception(result.ResponseStatus.Message);
                }
                else
                {
                    jsonstr = result.HolidayData;
                }
            }
            catch (System.Net.WebException e)
            {
                throw new Exception($"同步失败,请检查服务器网络连接,原因:{e.Message}");
            }

            if (!string.IsNullOrWhiteSpace(jsonstr) && jsonstr.Length > 2)
            {
                Repository <Prc_Holiday> repository = new Repository <Prc_Holiday>(DbContext);
                Prc_Holiday model = repository.Get(a => !a.IsDelete && a.Year == dto.Year);
                if (model == null)
                {
                    model      = new Prc_Holiday();
                    model.Year = dto.Year;
                    model.Data = jsonstr;
                    repository.Add(model);
                }
                else
                {
                    model.Data = jsonstr;
                    repository.Update(model);
                }
                DbContext.SaveChanges();
            }
            else
            {
                throw new Exception($"同步失败,{dto.Year}年尚未有节假日数据!");
            }

            return(new ReturnResponse());
        }