public Theme GetDefaultTheme(ClientPageInput themePageInput) { // 读取默认模板 Theme defaultTheme = null; if (themePageInput.ClientType == ClientType.PcWeb) { defaultTheme = GetSingle(r => r.ClientType == themePageInput.ClientType && r.Type == themePageInput.Type && r.IsDefault); } else { defaultTheme = GetSingle(r => r.ClientType == themePageInput.ClientType && r.IsDefault); } if (defaultTheme == null) { defaultTheme = GetSingle(r => r.ClientType == themePageInput.ClientType); if (defaultTheme != null) { defaultTheme.IsDefault = true; Update(defaultTheme); } } if (defaultTheme == null) // 从服务器上获取默认模板 { defaultTheme = Resolve <IThemeOpenService>().InitThemeFormServcie(themePageInput); } return(defaultTheme); }
/// <summary> /// 根据客户端类型,获取所有的模板信息 /// 用户客户端缓存 /// </summary> /// <param name="themePageInput"></param> public AllClientPages GetAllClientPages(ClientPageInput themePageInput) { var cacheKey = $"AllThemePageInfo_{themePageInput.Type.ToStr()}_{themePageInput.ClientType.ToStr()}"; return(ObjectCache.GetOrSet(() => { var allClientPages = new AllClientPages(); var defaultTheme = Resolve <IThemeService>().GetDefaultTheme(themePageInput); if (defaultTheme == null) { throw new ValidException("默认模板为空"); } var themePage = GetList(r => r.ThemeId == defaultTheme.Id); var resultList = new List <ClientPage>(); foreach (var page in themePage) { resultList.Add(page.ToClientPage()); } // 赋值 allClientPages.Theme.Setting = defaultTheme.Setting.ToObject <object>(); allClientPages.Theme.Type = defaultTheme.Type; allClientPages.Theme.Id = defaultTheme.Id.ToString(); allClientPages.Theme.Name = defaultTheme.Name; allClientPages.Theme.Menu = defaultTheme.Menu; allClientPages.Theme.UpdateTime = defaultTheme.UpdateTime; allClientPages.Theme.TabBarSetting = defaultTheme.TabBarSetting.ToObject <object>(); allClientPages.PageList = resultList; allClientPages.Site.Name = HttpWeb.Site.CompanyName; allClientPages.Site.Tenant = HttpWeb.Tenant; // 判断是否开启微信支付 var config = Resolve <IAlaboAutoConfigService>().GetValue <WeChatPaymentConfig>(); if (!config.IsEnable || config.AppId.IsNullOrEmpty() || config.APISecretKey.IsNullOrEmpty() || config.CallBackUrl.IsNullOrEmpty()) { allClientPages.Site.IsWeiXinPay = false; } else { allClientPages.Site.IsWeiXinPay = true; var scope = "snsapi_userinfo"; if (!config.IsBaseUserInfo) { scope = "snsapi_base"; } allClientPages.Site.WeiXinUrl = $"https://open.weixin.qq.com/connect/oauth2/authorize?appid={config.AppId}&redirect_uri={config.ReturnUrl}&response_type=code&scope={scope}&state=STATE#wechat_redirect"; } return allClientPages; }, cacheKey).Value); }
/// <summary> /// 获取后台管理模板菜单 /// </summary> /// <returns></returns> public List <ThemeOneMenu> GetAdminThemeMenus() { var clientPageInput = new ClientPageInput { ClientType = ClientType.PcWeb, Type = ThemeType.Admin }; var defaultAdminTemplage = Resolve <IThemeService>().GetDefaultTheme(clientPageInput); var menus = defaultAdminTemplage?.Menu?.Menus; return(menus); }
public ApiResult <AllClientPages> GetAllClientPages([FromQuery] ClientPageInput parameter) { if (!this.IsFormValid()) { return(ApiResult.Failure <AllClientPages>(this.FormInvalidReason())); } try { var allClientPages = Resolve <IThemePageService>().GetAllClientPages(parameter); allClientPages.LastUpdate = DateTime.Now.AddMinutes(10).ConvertDateTimeInt(); return(ApiResult.Success(allClientPages)); } catch (Exception ex) { return(ApiResult.Failure <AllClientPages>(ex.Message)); } }
/// <summary> /// 从远程获取模板 /// </summary> /// <param name="themePageInput"></param> /// <returns></returns> public Theme InitThemeFormServcie(ClientPageInput themePageInput) { var apiUrl = "Api/Make/Init"; IDictionary <string, string> parameters = new Dictionary <string, string> { { "siteId", HttpWeb.Site.Id.ToString() }, { "clientType", themePageInput.ClientType.ToString() }, { "type", themePageInput.Type.ToString() } }; var themePublish = Ioc.Resolve <IOpenClient>().Get <ThemePublish>(apiUrl, parameters); if (themePublish != null) { Publish(themePublish); var theme = Resolve <IThemeService>().GetSingle(themePublish.Theme.Id); return(theme); } return(null); }
public ThemePublish InitDefaultTheme(ClientPageInput clientPageInput) { throw new NotImplementedException(); }