前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于百度万年历定制化 2

基于百度万年历定制化 2

作者头像
happlyfox
发布2018-10-31 15:13:47
6510
发布2018-10-31 15:13:47
举报
文章被收录于专栏:技术开源分享技术开源分享

接着上面的内容,我们本章节通过设置数据库表结构,将json数据通过一种数据结构存储在数据库中。 首先我们需要设计数据库的表。

image.png

数据库字段说明 Id 主键 HolidayDate 节假日日期 HolidayName 节假日名称 HolidayDescripton 说明 HolidayConfig 放假配置 [放假日期|工作日期] =[A|B] A,B存在多个时用逗号分隔,见上图,通过这样的数据结构,然后编码实现。

后台代码贴部分,数据库交互使用EntityFramework

代码语言:javascript
复制
        public static void SetWnlConfig()
        {
            wnlEntities db = new wnlEntities();
            var list = db.HolidayArrange.ToList();

            var dateFestival = list.Select(u => u.HolidayDate + "||" + u.HolidayName).ToList();
            var dateFestivalContent = list.Select(u => new FestivalContent
            {
                name = u.HolidayName,
                value = u.HolidayDescription
            }).ToList();
            List<string[]> splists = list.Select(u => u.HolidayConfig.Split('|').ToArray()).ToList();
            List<string> dateRest = new List<string>();
            List<string> dateWork = new List<string>();

            foreach (var split in splists)
            {
                dateRest.AddRange(split[0].Split(','));
                dateWork.AddRange(split[1].Split(','));
            }

            var data = new WnlConfig
            {
                dateFestival = dateFestival,
                dateFestivalContent = dateFestivalContent,
                dateRest = dateRest,
                dateWork = dateWork,
            };

            //默认缓存一个小时
            CacheHelper.SetCache("wnl", JsonConvert.SerializeObject(data), new TimeSpan(0, 1, 0, 0));
        }

通过调用上述方法能够得到json数据,回传给前端,前端绑定后,即可得到相应的结果。

配置修改

既然保存在数据库中,那对应的数据应该能够被动态更改,下图给出配置界面

image.png

点击新增弹出配置窗体

配置窗体.png

配置代码

代码语言:javascript
复制
        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="formjson"></param>
        /// <returns></returns>
        public ActionResult AddConfig(string formjson)
        {
            DataMsg datamsg = null;
            var model = JsonConvert.DeserializeObject<HolidayArrange>(formjson);
            if (!ValidateModel(model))
            {
                datamsg = new DataMsg()
                {
                    code = CodeStatus.Error,
                    msg = "配置验证失败,请核对后重新提交!"
                };
                return Json(datamsg, JsonRequestBehavior.AllowGet);
            }

            wnlEntities db = new wnlEntities();
            db.HolidayArrange.Add(model);
            int iret = db.SaveChanges();
            if (iret > 0)
            {
                datamsg = new DataMsg()
                {
                    code = CodeStatus.Ok,
                    msg = "新增成功"
                };
                SetWnlConfig();
            }
            else
            {
                datamsg = new DataMsg()
                {
                    code = CodeStatus.Error,
                    msg = "新增失败"
                };
            }

            return Json(datamsg, JsonRequestBehavior.AllowGet);
        }

剩下的编辑和删除配置同理

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.09.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置修改
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档