public ActionResult Put([JsonBinder] MenuInfo menuInfo) { var ajaxResponse = new AjaxResponse { Success = true, Message = "同步成功!" }; var result = WeChatApisContext.Current.MenuApi.Create(menuInfo); var menu = new WeiChat_Menu { CreateBy = UserId, CreateTime = DateTime.Now, IsCurrent = true, MenuData = JsonConvert.SerializeObject(menuInfo), Remark = string.Format("{0}--用户推送", DateTime.Now.ToString("yy-MM-dd HH:mm:ss")), TenantId = TenantId }; menu.Result = result.GetFriendlyMessage(); db.WeiChat_Menus.Add(menu); db.SaveChanges(); #region 最多只保存30条历史记录 var count = db.WeiChat_Menus.Count(); var takCount = 30; if (count > takCount) { db.WeiChat_Menus.RemoveRange(db.WeiChat_Menus.OrderByDescending(p => p.CreateTime).Skip(takCount)); db.SaveChanges(); } #endregion if (!result.IsSuccess()) { ajaxResponse.Success = false; ajaxResponse.Message = result.GetFriendlyMessage(); return(Json(ajaxResponse)); } return(Json(ajaxResponse)); }
public ActionResult Get() { var result = WeChatApisContext.Current.MenuApi.Get(); var lastData = db.WeiChat_Menus.OrderByDescending(p => p.Id).FirstOrDefault(); if (result.IsSuccess() && (result.Menu != null) && (result.Menu.Button != null)) { var menuData = JsonConvert.SerializeObject(result.Menu); var menu1 = JObject.Parse(result.DetailResult); if (lastData != null && lastData.MenuData != null) { var menu2 = JObject.Parse(lastData.MenuData); if (!JToken.DeepEquals(menu1, menu2)) { //如果不存在历史版本或者菜单内容不一致,则生成一个历史版本保存 var menu = new WeiChat_Menu { CreateBy = UserId, CreateTime = DateTime.Now, IsCurrent = true, MenuData = menuData, Remark = string.Format("{0}--{1}", DateTime.Now.ToString("yy-MM-dd HH:mm:ss"), lastData == null ? "初始化" : "版本冲突"), TenantId = TenantId }; db.WeiChat_Menus.Add(menu); db.SaveChanges(); } } return(Json(result.Menu, JsonRequestBehavior.AllowGet)); } if (lastData != null) { var data = JsonConvert.DeserializeObject <MenuInfo>(lastData.MenuData); return(Json(data, JsonRequestBehavior.AllowGet)); } return(Json(new List <string>(), JsonRequestBehavior.AllowGet)); }