package admin import ( "context" "xk-of-api/api/admin/v1" "xk-of-api/internal/model" "xk-of-api/internal/response" "xk-of-api/internal/service" ) // Login 处理后台登录请求。 func (c *ControllerV1) Login(ctx context.Context, req *v1.LoginReq) (res *v1.LoginRes, err error) { response.Success(ctx, service.Admin.Login(req.Account)) return nil, nil } // MenuTree 返回后台多级菜单树。 func (c *ControllerV1) MenuTree(ctx context.Context, req *v1.MenuTreeReq) (res *v1.MenuTreeRes, err error) { response.Success(ctx, service.Admin.Menus()) return nil, nil } // MenuLayout 返回当前管理员菜单布局。 func (c *ControllerV1) MenuLayout(ctx context.Context, req *v1.MenuLayoutReq) (res *v1.MenuLayoutRes, err error) { response.Success(ctx, service.Admin.MenuLayout()) return nil, nil } // UpdateMenuLayout 更新当前管理员菜单布局偏好。 func (c *ControllerV1) UpdateMenuLayout(ctx context.Context, req *v1.UpdateMenuLayoutReq) (res *v1.UpdateMenuLayoutRes, err error) { response.Success(ctx, service.Admin.UpdateMenuLayout(req.MenuLayout)) return nil, nil } // Roles 返回角色列表。 func (c *ControllerV1) Roles(ctx context.Context, req *v1.RolesReq) (res *v1.RolesRes, err error) { response.Success(ctx, service.Admin.Roles()) return nil, nil } // SaveRoleMenus 保存角色菜单授权。 func (c *ControllerV1) SaveRoleMenus(ctx context.Context, req *v1.SaveRoleMenusReq) (res *v1.SaveRoleMenusRes, err error) { response.Success(ctx, service.Admin.SaveRoleMenus(req.RoleId, req.MenuIds)) return nil, nil } // SitePages 获取页面 SEO/GSO 配置。 func (c *ControllerV1) SitePages(ctx context.Context, req *v1.SitePagesReq) (res *v1.SitePagesRes, err error) { response.Success(ctx, service.Admin.SitePages()) return nil, nil } // SaveSitePage 保存页面 SEO/GSO 配置。 func (c *ControllerV1) SaveSitePage(ctx context.Context, req *v1.SaveSitePageReq) (res *v1.SaveSitePageRes, err error) { page := model.SitePage{Id: req.Id, Code: req.Code, Title: req.Title, SeoTitle: req.SeoTitle, SeoKeywords: req.SeoKeywords, SeoDescription: req.SeoDescription, GsoContent: req.GsoContent, Status: req.Status, Sort: req.Sort} response.Success(ctx, service.Admin.SaveSitePage(page)) return nil, nil } // SiteSections 获取官网页面模块。 func (c *ControllerV1) SiteSections(ctx context.Context, req *v1.SiteSectionsReq) (res *v1.SiteSectionsRes, err error) { response.Success(ctx, service.Admin.SiteSections(req.PageCode)) return nil, nil } // SaveSiteSection 保存官网页面模块。 func (c *ControllerV1) SaveSiteSection(ctx context.Context, req *v1.SaveSiteSectionReq) (res *v1.SaveSiteSectionRes, err error) { section := model.SiteSection{Id: req.Id, PageCode: req.PageCode, SectionKey: req.SectionKey, Title: req.Title, Subtitle: req.Subtitle, Content: req.Content, Status: req.Status, Sort: req.Sort} response.Success(ctx, service.Admin.SaveSiteSection(section)) return nil, nil } // SiteMedia 获取官网素材列表。 func (c *ControllerV1) SiteMedia(ctx context.Context, req *v1.SiteMediaReq) (res *v1.SiteMediaRes, err error) { response.Success(ctx, service.Admin.SiteMedia(req.MediaType)) return nil, nil } // SaveSiteMedia 保存官网素材。 func (c *ControllerV1) SaveSiteMedia(ctx context.Context, req *v1.SaveSiteMediaReq) (res *v1.SaveSiteMediaRes, err error) { media := model.SiteMedia{Id: req.Id, MediaType: req.MediaType, GroupCode: req.GroupCode, Title: req.Title, Url: req.Url, Alt: req.Alt, Status: req.Status, Sort: req.Sort} response.Success(ctx, service.Admin.SaveSiteMedia(media)) return nil, nil } // RecruitJobs 获取后台招聘职位列表。 func (c *ControllerV1) RecruitJobs(ctx context.Context, req *v1.RecruitJobsReq) (res *v1.RecruitJobsRes, err error) { response.Success(ctx, service.Admin.RecruitJobs()) return nil, nil } // SaveRecruitJob 保存招聘职位。 func (c *ControllerV1) SaveRecruitJob(ctx context.Context, req *v1.SaveRecruitJobReq) (res *v1.SaveRecruitJobRes, err error) { job := model.RecruitJob{Id: req.Id, Title: req.Title, Department: req.Department, JobType: req.JobType, City: req.City, Salary: req.Salary, Experience: req.Experience, Description: req.Description, Requirements: req.Requirements, Manager: req.Manager, ManagerTitle: req.ManagerTitle, Email: req.Email, Phone: req.Phone, Featured: req.Featured, Status: req.Status, Sort: req.Sort} response.Success(ctx, service.Admin.SaveRecruitJob(job)) return nil, nil } // SiteSettings 获取站点全局配置。 func (c *ControllerV1) SiteSettings(ctx context.Context, req *v1.SiteSettingsReq) (res *v1.SiteSettingsRes, err error) { response.Success(ctx, service.Admin.SiteSettings()) return nil, nil } // SaveSiteSettings 保存站点全局配置。 func (c *ControllerV1) SaveSiteSettings(ctx context.Context, req *v1.SaveSiteSettingsReq) (res *v1.SaveSiteSettingsRes, err error) { settings := model.SiteSettings{SiteTitle: req.SiteTitle, SiteLogo: req.SiteLogo, SiteLogoDark: req.SiteLogoDark, SiteFavicon: req.SiteFavicon, IcpText: req.IcpText, Copyright: req.Copyright, ContactPhone: req.ContactPhone, ContactEmail: req.ContactEmail, ContactAddress: req.ContactAddress, DefaultSeo: req.DefaultSeo, DefaultGso: req.DefaultGso, AmapKey: req.AmapKey, AmapSecurityCode: req.AmapSecurityCode} response.Success(ctx, service.Admin.SaveSiteSettings(settings)) return nil, nil }