예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <summary>
        /// 新建站点
        /// </summary>
        public bool AddSite(Site site)
        {
            if (site.ID <= 0 || this.ReadDB.Exists <Site>(t => t.ID == site.ID))
            {
                return(this.FaildMessage("编号已经存在"));
            }
            if (string.IsNullOrEmpty(site.Name))
            {
                return(this.FaildMessage("请输入商户名"));
            }
            if (this.ReadDB.Exists <Site>(t => t.Name == site.Name))
            {
                return(this.FaildMessage("商户名重复"));
            }

            site.Setting = new Site.SiteSetting()
            {
                Currencies = new[] { site.Currency },
                Languages  = new[] { site.Language }
            };

            using (DbExecutor db = NewExecutor(IsolationLevel.ReadUncommitted))
            {
                site.Add(db);

                // 复制PC模板到商户模板
                if (site.PCTemplate != 0)
                {
                    db.AddCallback(() =>
                    {
                        site.PCTemplate = ViewAgent.Instance().CopySystemTemplate(site.ID, site.PCTemplate);
                    });
                }

                // 复制H5模板到商户模板
                if (site.H5Template != 0)
                {
                    db.AddCallback(() =>
                    {
                        site.H5Template = ViewAgent.Instance().CopySystemTemplate(site.ID, site.H5Template);
                    });
                }

                // 复制APP模板到商户模板
                if (site.APPTemplate != 0)
                {
                    db.AddCallback(() =>
                    {
                        site.APPTemplate = ViewAgent.Instance().CopySystemTemplate(site.ID, site.APPTemplate);
                    });
                }

                new SiteDetail()
                {
                    SiteID   = site.ID,
                    AdminURL = this.CreateDefaultAdminUrl(db, site.Name)
                }.Add(db);

                this.CreateDefaultAdmin(db, site.ID);

                db.Commit();
            }

            site.Update(this.WriteDB, t => t.PCTemplate, t => t.H5Template, t => t.APPTemplate);

            this.AccountInfo.Log(LogType.Site, $"新建商户{site.ID}");

            return(true);
        }