/// <summary> /// 获取商户模板信息(包括配置信息) /// </summary> /// <param name="templateId"></param> /// <returns></returns> public ViewSiteTemplate GetTemplateInfo(int templateId) { ViewSiteTemplate template = this.ReadDB.ReadInfo <ViewSiteTemplate>(t => t.ID == templateId); template.Configs = this.ReadDB.ReadList <ViewSiteConfig>(t => t.TemplateID == templateId); return(template); }
public Task SaveSiteTemplateInfo([FromForm] int id, [FromForm] string name, [FromForm] PlatformSource platform, [FromForm] string domain, [FromForm] int siteid, [FromForm] string model) { ViewSiteTemplate template = new ViewSiteTemplate() { ID = id, Name = name, Platform = platform, Domain = domain, SiteID = siteid }; return(this.GetResult(ViewAgent.Instance().SaveSiteTemplateInfo(template, WebAgent.GetArray <int>(model)))); }
/// <summary> /// 获取商户的视图配置 /// 如果商户模板中没有针对该视图的配置,则返回默认配置 /// </summary> /// <typeparam name="TView">视图配置类(支持抽象类)</typeparam> /// <param name="siteId"></param> /// <returns></returns> protected TView GetViewConfig <TView>(int templateId) where TView : IViewBase { TView view = ViewCaching.Instance().GetSiteView <TView>(templateId); if (view != null) { return(view); } ViewSiteTemplate template = this.GetSiteTemplate(templateId); if (template == null) { return(default);
public Task GetTemplate([FromForm] int templateId) { ViewSiteTemplate template = SiteAgent.Instance().GetTemplateInfo(templateId); Site site = SiteAgent.Instance().GetSiteInfo(template.SiteID); return(this.GetResult(new { template.ID, template.SiteID, template.Name, template.Platform, template.Domain, IsDefault = site.GetTemplateID(template.Platform) == templateId, Models = template.Configs.ToDictionary(t => t.ViewID, t => new { t.ModelID, t.ID }) })); }
public Task GetSiteTemplateInfo([FromForm] int id) { ViewSiteTemplate template = ViewAgent.Instance().GetSiteTemplateInfo(id) ?? new ViewSiteTemplate() { Configs = new List <ViewSiteConfig>() }; return(this.GetResult(new { template.ID, template.Platform, template.Name, template.Domain, template.SiteID, Models = template.Configs.Select(t => t.ModelID) })); }
public Task AddTemplate([FromForm] string name, [FromForm] int siteId, [FromForm] PlatformSource source, [FromForm] int isDefault, [FromForm] string domain, [FromForm] int templateId) { if (templateId == 0) { return(this.ShowError("请选择来源模板")); } ViewSiteTemplate template = new ViewSiteTemplate() { SiteID = siteId, Name = name, Platform = source, Domain = domain }; return(this.GetResult(SiteAgent.Instance().AddTemplate(template, isDefault == 1, templateId))); }
/// <summary> /// 删除商户模板 /// </summary> /// <param name="templateId"></param> /// <returns></returns> public bool DeleteSiteTemplate(int templateId) { ViewSiteTemplate template = this.GetSiteTemplateInfo(templateId); if (template == null) { return(this.FaildMessage("")); } using (DbExecutor db = NewExecutor(IsolationLevel.ReadUncommitted)) { template.Configs.ForEach(config => { config.Delete(db); }); template.Delete(db); db.Commit(); } return(this.AccountInfo.Log(LogType.View, $"删除商户模板 {template.Platform}/{template.Name}")); }
/// <summary> /// 添加商户模板 /// </summary> /// <param name="template"></param> /// <param name="isDefault"></param> /// <param name="templateId"></param> /// <returns></returns> public bool AddTemplate(ViewSiteTemplate template, bool isDefault, int templateId) { if (template.SiteID == 0) { return(this.FaildMessage("商户ID错误")); } if (string.IsNullOrEmpty(template.Name)) { return(this.FaildMessage("模板名称错误")); } Site site = this.GetSiteInfo(template.SiteID); if (site.GetTemplateID(template.Platform) == 0) { isDefault = true; } if (isDefault) { template.Domain = string.Empty; } template.ID = ViewAgent.Instance().CopySystemTemplate(template.SiteID, templateId); if (isDefault) { Expression <Func <Site, int> > field = template.Platform switch { PlatformSource.PC => t => t.PCTemplate, PlatformSource.H5 => t => t.H5Template, PlatformSource.APP => t => t.APPTemplate, _ => null }; this.WriteDB.Update(field, template.ID, t => t.ID == site.ID); SiteCaching.Instance().RemoveSiteInfo(site.ID); } template.Update(this.WriteDB, t => t.Name, t => t.Domain); return(true); }
/// <summary> /// 保存商户的模板配置 /// </summary> /// <param name="template"></param> public void SaveTemplateInfo(ViewSiteTemplate template) { string key = $"{TEMPLATEINFO}{template.ID}"; this.NewExecutor().HashSet(key, template); }
/// <summary> /// 保存商户模板 /// </summary> /// <param name="template"></param> /// <param name="models"></param> /// <returns></returns> public bool SaveSiteTemplateInfo(ViewSiteTemplate template, int[] models) { if (string.IsNullOrEmpty(template.Name)) { return(this.FaildMessage("请输入模板名称")); } if (!string.IsNullOrEmpty(template.Domain) && !isDomain(template.Domain)) { return(this.FaildMessage("域名错误,请重新输入域名")); } bool isNew = template.ID == 0; using (DbExecutor db = NewExecutor(IsolationLevel.ReadUncommitted)) { if (template.ID == 0) { template.AddIdentity(db); } else { template.Update(db, t => t.Name, t => t.Platform, t => t.Domain); } //# 得到当前平台下所有的视图 List <ViewSetting> views = db.ReadList <ViewSetting>(t => t.Platform == template.Platform); List <ViewModel> modelList = new List <ViewModel>(); foreach (int modelId in models) { ViewModel model = db.ReadInfo <ViewModel>(t => t.ID == modelId); if (model == null) { db.Rollback(); return(this.FaildMessage($"模型ID{modelId}不存在")); } ViewSiteConfig config = isNew ? null : config = db.ReadInfo <ViewSiteConfig>(t => t.TemplateID == template.ID && t.ViewID == model.ViewID && t.SiteID == template.SiteID); if (config != null && config.ModelID != modelId) { config.ModelID = modelId; config.Update(db, t => t.ModelID); } else if (config == null) { config = new ViewSiteConfig() { TemplateID = template.ID, ViewID = model.ViewID, ModelID = model.ID, SiteID = template.SiteID }; config.Add(db); } modelList.Add(model); } ViewSetting view = views.FirstOrDefault(t => !modelList.Any(p => p.ViewID == t.ID)); if (view != null) { db.Rollback(); return(this.FaildMessage($"视图{view.Name}未选则模型")); } db.AddCallback(() => { SiteCaching.Instance().RemoveSiteInfo(template.SiteID); }); db.Commit(); } return(this.AccountInfo.Log(LogType.View, $"保存系统模板 {template.Platform}/{template.Name}")); }