Files
xk-of-api/internal/controller/admin/admin_v1.go
2026-07-18 05:58:41 +08:00

112 lines
5.3 KiB
Go

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
}