This commit is contained in:
Yvan
2026-08-17 07:44:52 +08:00
parent d09e6b42bd
commit 9715b2ef1a
28 changed files with 1586 additions and 326 deletions
-185
View File
@@ -1,185 +0,0 @@
package service
import "strings"
type apiMetadataValue struct{ group, description string }
var apiMetadata = map[string]apiMetadataValue{
"DELETE /api/deleteApisByIds": {group: "api", description: "批量删除api"},
"DELETE /dataAccessLog/deleteDataAccessLogByIds": {group: "数据权限审计", description: "批量删除数据权限审计日志"},
"DELETE /department/deleteDepartment": {group: "部门", description: "删除部门"},
"DELETE /info/deleteInfo": {group: "公告", description: "删除公告"},
"DELETE /info/deleteInfoByIds": {group: "公告", description: "批量删除公告"},
"DELETE /mediaUpload/:uploadId": {group: "媒体上传", description: "取消大文件上传"},
"DELETE /position/deletePosition": {group: "岗位", description: "删除岗位"},
"DELETE /sysDictionary/deleteSysDictionary": {group: "系统字典", description: "删除字典"},
"DELETE /sysDictionaryDetail/deleteSysDictionaryDetail": {group: "系统字典详情", description: "删除字典内容"},
"DELETE /sysError/deleteSysError": {group: "错误日志", description: "删除错误日志"},
"DELETE /sysError/deleteSysErrorByIds": {group: "错误日志", description: "批量删除错误日志"},
"DELETE /sysExportTemplate/deleteSysExportTemplate": {group: "导出模板", description: "删除导出模板"},
"DELETE /sysExportTemplate/deleteSysExportTemplateByIds": {group: "导出模板", description: "批量删除导出模板"},
"DELETE /sysLoginLog/deleteLoginLog": {group: "登录日志", description: "删除登录日志"},
"DELETE /sysLoginLog/deleteLoginLogByIds": {group: "登录日志", description: "批量删除登录日志"},
"DELETE /sysOperationRecord/deleteSysOperationRecord": {group: "操作记录", description: "删除操作记录"},
"DELETE /sysOperationRecord/deleteSysOperationRecordByIds": {group: "操作记录", description: "批量删除操作历史"},
"DELETE /sysParams/deleteSysParams": {group: "参数管理", description: "删除参数"},
"DELETE /sysParams/deleteSysParamsByIds": {group: "参数管理", description: "批量删除参数"},
"DELETE /sysVersion/deleteSysVersion": {group: "版本控制", description: "删除版本"},
"DELETE /sysVersion/deleteSysVersionByIds": {group: "版本控制", description: "批量删除版本"},
"DELETE /timedTask/deleteTimedTask": {group: "定时任务", description: "删除定时任务"},
"DELETE /user/deleteUser": {group: "系统用户", description: "删除用户"},
"GET /api/getApiGroups": {group: "api", description: "获取路由组"},
"GET /api/getApiRoles": {group: "api", description: "获取指定API关联角色列表"},
"GET /api/syncApi": {group: "api", description: "获取待同步API"},
"GET /attachmentCategory/getCategoryList": {group: "媒体库分类", description: "分类列表"},
"GET /authority/getDataScopeDepts": {group: "角色", description: "获取角色自定义部门集"},
"GET /authority/getUsersByAuthority": {group: "角色", description: "获取角色关联用户ID列表"},
"GET /department/findDepartment": {group: "部门", description: "根据ID获取部门"},
"GET /department/getDepartmentUsers": {group: "部门", description: "获取部门成员ID列表"},
"GET /info/findInfo": {group: "公告", description: "根据ID获取公告"},
"GET /info/getInfoList": {group: "公告", description: "获取公告列表"},
"GET /logViewer/content": {group: "文件日志", description: "分块读取日志文件内容"},
"GET /logViewer/dates": {group: "文件日志", description: "获取存在日志的日期"},
"GET /logViewer/files": {group: "文件日志", description: "获取日期下的日志文件"},
"GET /menu/getMenuRoles": {group: "菜单", description: "获取菜单关联角色列表"},
"GET /position/findPosition": {group: "岗位", description: "根据ID获取岗位"},
"GET /position/getPositionUsers": {group: "岗位", description: "获取岗位成员ID列表"},
"GET /securityConfig/getSecurityConfig": {group: "安全配置", description: "获取安全配置"},
"GET /sysDictionary/exportSysDictionary": {group: "系统字典", description: "导出字典JSON"},
"GET /sysDictionary/findSysDictionary": {group: "系统字典", description: "根据ID获取字典(建议选择)"},
"GET /sysDictionary/getSysDictionaryList": {group: "系统字典", description: "获取字典列表"},
"GET /sysDictionary/getSysDictionaryListWithDetails": {group: "系统字典", description: "获取字典列表(含明细)"},
"GET /sysDictionaryDetail/findSysDictionaryDetail": {group: "系统字典详情", description: "根据ID获取字典内容"},
"GET /sysDictionaryDetail/getDictionaryDetailsByParent": {group: "系统字典详情", description: "根据父级ID获取字典详情"},
"GET /sysDictionaryDetail/getDictionaryPath": {group: "系统字典详情", description: "获取字典详情的完整路径"},
"GET /sysDictionaryDetail/getDictionaryTreeList": {group: "系统字典详情", description: "获取字典数列表"},
"GET /sysDictionaryDetail/getDictionaryTreeListByType": {group: "系统字典详情", description: "根据分类获取字典数列表"},
"GET /sysDictionaryDetail/getSysDictionaryDetailList": {group: "系统字典详情", description: "获取字典内容列表"},
"GET /sysError/findSysError": {group: "错误日志", description: "根据ID获取错误日志"},
"GET /sysError/getSysErrorList": {group: "错误日志", description: "获取错误日志列表"},
"GET /sysExportTemplate/exportExcel": {group: "导出模板", description: "导出Excel"},
"GET /sysExportTemplate/exportTemplate": {group: "导出模板", description: "下载模板"},
"GET /sysExportTemplate/findSysExportTemplate": {group: "导出模板", description: "根据ID获取导出模板"},
"GET /sysExportTemplate/getSysExportTemplateList": {group: "导出模板", description: "获取导出模板列表"},
"GET /sysExportTemplate/previewSQL": {group: "导出模板", description: "预览SQL"},
"GET /sysLoginLog/findLoginLog": {group: "登录日志", description: "根据ID获取登录日志"},
"GET /sysLoginLog/getLoginLogList": {group: "登录日志", description: "获取登录日志列表"},
"GET /sysOperationRecord/findSysOperationRecord": {group: "操作记录", description: "根据ID获取操作记录"},
"GET /sysOperationRecord/getSysOperationRecordList": {group: "操作记录", description: "获取操作记录列表"},
"GET /sysParams/findSysParams": {group: "参数管理", description: "根据ID获取参数"},
"GET /sysParams/getSysParam": {group: "参数管理", description: "获取参数列表"},
"GET /sysParams/getSysParamsList": {group: "参数管理", description: "获取参数列表"},
"GET /sysVersion/downloadVersionJson": {group: "版本控制", description: "下载版本json"},
"GET /sysVersion/findSysVersion": {group: "版本控制", description: "获取单一版本"},
"GET /sysVersion/getSysVersionList": {group: "版本控制", description: "获取版本列表"},
"GET /timedTask/alertStream": {group: "定时任务", description: "订阅定时任务失败告警(SSE)"},
"GET /timedTask/getRegisteredMethods": {group: "定时任务", description: "获取已注册方法列表"},
"GET /timedTask/getTimedTaskList": {group: "定时任务", description: "获取定时任务列表"},
"GET /timedTask/getTimedTaskLogList": {group: "定时任务", description: "获取定时任务执行日志"},
"GET /user/getUserInfo": {group: "系统用户", description: "获取自身信息(必选)"},
"POST /api/createApi": {group: "api", description: "创建api"},
"POST /api/deleteApi": {group: "api", description: "删除Api"},
"POST /api/enterSyncApi": {group: "api", description: "确认同步API"},
"POST /api/getAllApis": {group: "api", description: "获取所有api"},
"POST /api/getApiById": {group: "api", description: "获取api详细信息"},
"POST /api/getApiList": {group: "api", description: "获取api列表"},
"POST /api/ignoreApi": {group: "api", description: "忽略API"},
"POST /api/setApiRoles": {group: "api", description: "全量覆盖API关联角色列表"},
"POST /api/updateApi": {group: "api", description: "更新Api"},
"POST /attachmentCategory/addCategory": {group: "媒体库分类", description: "添加/编辑分类"},
"POST /attachmentCategory/deleteCategory": {group: "媒体库分类", description: "删除分类"},
"POST /authority/copyAuthority": {group: "角色", description: "拷贝角色"},
"POST /authority/createAuthority": {group: "角色", description: "创建角色"},
"POST /authority/deleteAuthority": {group: "角色", description: "删除角色"},
"POST /authority/getAuthorityList": {group: "角色", description: "获取角色列表"},
"POST /authority/setDataScope": {group: "角色", description: "设置角色数据权限"},
"POST /authority/setRoleUsers": {group: "角色", description: "全量覆盖角色关联用户"},
"POST /authorityBtn/canRemoveAuthorityBtn": {group: "按钮权限", description: "删除按钮"},
"POST /authorityBtn/getAuthorityBtn": {group: "按钮权限", description: "获取已有按钮权限"},
"POST /authorityBtn/setAuthorityBtn": {group: "按钮权限", description: "设置按钮权限"},
"POST /casbin/getPolicyPathByAuthorityId": {group: "casbin", description: "获取权限列表"},
"POST /casbin/updateCasbin": {group: "casbin", description: "更改角色api权限"},
"POST /dataAccessLog/getDataAccessLogList": {group: "数据权限审计", description: "获取数据权限审计日志"},
"POST /department/createDepartment": {group: "部门", description: "创建部门"},
"POST /department/getDepartmentList": {group: "部门", description: "获取部门树"},
"POST /department/setDepartmentUsers": {group: "部门", description: "设置部门成员(反向分配)"},
"POST /email/emailTest": {group: "email", description: "发送测试邮件"},
"POST /email/sendEmail": {group: "email", description: "发送邮件"},
"POST /fileUploadAndDownload/deleteFile": {group: "文件上传与下载", description: "删除文件"},
"POST /fileUploadAndDownload/editFileName": {group: "文件上传与下载", description: "文件名或者备注编辑"},
"POST /fileUploadAndDownload/getFileList": {group: "文件上传与下载", description: "获取上传文件列表"},
"POST /fileUploadAndDownload/importURL": {group: "文件上传与下载", description: "导入URL"},
"POST /fileUploadAndDownload/upload": {group: "文件上传与下载", description: "文件上传(建议选择)"},
"POST /info/createInfo": {group: "公告", description: "新建公告"},
"POST /jwt/jsonInBlacklist": {group: "jwt", description: "jwt加入黑名单(退出,必选)"},
"POST /mediaUpload/chunk": {group: "媒体上传", description: "上传分片"},
"POST /mediaUpload/complete": {group: "媒体上传", description: "完成大文件上传"},
"POST /mediaUpload/init": {group: "媒体上传", description: "初始化大文件上传"},
"POST /menu/addBaseMenu": {group: "菜单", description: "新增菜单"},
"POST /menu/addMenuAuthority": {group: "菜单", description: "增加menu和角色关联关系"},
"POST /menu/deleteBaseMenu": {group: "菜单", description: "删除菜单"},
"POST /menu/getBaseMenuById": {group: "菜单", description: "根据id获取菜单"},
"POST /menu/getBaseMenuTree": {group: "菜单", description: "获取用户动态路由"},
"POST /menu/getMenu": {group: "菜单", description: "获取菜单树(必选)"},
"POST /menu/getMenuAuthority": {group: "菜单", description: "获取指定角色menu"},
"POST /menu/getMenuList": {group: "菜单", description: "分页获取基础menu列表"},
"POST /menu/setMenuRoles": {group: "菜单", description: "全量覆盖菜单关联角色列表"},
"POST /menu/updateBaseMenu": {group: "菜单", description: "更新菜单"},
"POST /position/createPosition": {group: "岗位", description: "创建岗位"},
"POST /position/getPositionList": {group: "岗位", description: "获取岗位列表"},
"POST /position/setPositionUsers": {group: "岗位", description: "设置岗位成员(反向分配)"},
"POST /securityConfig/setSecurityConfig": {group: "安全配置", description: "设置安全配置"},
"POST /sysApiToken/createApiToken": {group: "API Token", description: "签发API Token"},
"POST /sysApiToken/deleteApiToken": {group: "API Token", description: "作废API Token"},
"POST /sysApiToken/getApiTokenList": {group: "API Token", description: "获取API Token列表"},
"POST /sysDictionary/createSysDictionary": {group: "系统字典", description: "新增字典"},
"POST /sysDictionary/importSysDictionary": {group: "系统字典", description: "导入字典JSON"},
"POST /sysDictionaryDetail/createSysDictionaryDetail": {group: "系统字典详情", description: "新增字典内容"},
"POST /sysError/createSysError": {group: "错误日志", description: "新建错误日志"},
"POST /sysExportTemplate/createSysExportTemplate": {group: "导出模板", description: "新增导出模板"},
"POST /sysExportTemplate/importExcel": {group: "导出模板", description: "导入Excel"},
"POST /sysOperationRecord/createSysOperationRecord": {group: "操作记录", description: "新增操作记录"},
"POST /sysParams/createSysParams": {group: "参数管理", description: "新建参数"},
"POST /system/getServerInfo": {group: "系统服务", description: "获取服务器信息"},
"POST /system/getSystemConfig": {group: "系统服务", description: "获取配置文件内容"},
"POST /system/setSystemConfig": {group: "系统服务", description: "设置配置文件内容"},
"POST /sysVersion/exportVersion": {group: "版本控制", description: "创建版本"},
"POST /sysVersion/importVersion": {group: "版本控制", description: "同步版本"},
"POST /timedTask/createTimedTask": {group: "定时任务", description: "创建定时任务"},
"POST /timedTask/toggleTimedTask": {group: "定时任务", description: "启用/停用定时任务"},
"POST /timedTask/triggerTimedTask": {group: "定时任务", description: "手动触发定时任务"},
"POST /user/admin_register": {group: "系统用户", description: "用户注册"},
"POST /user/changePassword": {group: "系统用户", description: "修改密码(建议选择)"},
"POST /user/getUserList": {group: "系统用户", description: "获取用户列表"},
"POST /user/resetPassword": {group: "系统用户", description: "重置用户密码"},
"POST /user/setUserAuthorities": {group: "系统用户", description: "设置权限组"},
"POST /user/setUserAuthority": {group: "系统用户", description: "修改用户角色(必选)"},
"POST /user/setUserDepartments": {group: "系统用户", description: "设置用户归属部门"},
"POST /user/setUserPositions": {group: "系统用户", description: "设置用户岗位"},
"PUT /authority/updateAuthority": {group: "角色", description: "更新角色信息"},
"PUT /department/updateDepartment": {group: "部门", description: "更新部门"},
"PUT /info/updateInfo": {group: "公告", description: "更新公告"},
"PUT /position/updatePosition": {group: "岗位", description: "更新岗位"},
"PUT /sysDictionary/updateSysDictionary": {group: "系统字典", description: "更新字典"},
"PUT /sysDictionaryDetail/updateSysDictionaryDetail": {group: "系统字典详情", description: "更新字典内容"},
"PUT /sysError/updateSysError": {group: "错误日志", description: "更新错误日志"},
"PUT /sysExportTemplate/updateSysExportTemplate": {group: "导出模板", description: "更新导出模板"},
"PUT /sysParams/updateSysParams": {group: "参数管理", description: "更新参数"},
"PUT /timedTask/updateTimedTask": {group: "定时任务", description: "更新定时任务"},
"PUT /user/setSelfInfo": {group: "系统用户", description: "设置自身信息(必选)"},
"PUT /user/setSelfSetting": {group: "系统用户", description: "用户界面配置"},
"PUT /user/setUserInfo": {group: "系统用户", description: "设置用户信息"},
}
func routeMetadata(method, path string) (string, string) {
if value, ok := apiMetadata[strings.ToUpper(method)+" "+path]; ok {
return value.group, value.description
}
return routeGroup(path), ""
}
// RouteMetadata exposes the administration API grouping and description to
// transport-level documentation without leaking the metadata table itself.
func RouteMetadata(method, path string) (string, string) {
return routeMetadata(method, path)
}
+4 -11
View File
@@ -7,13 +7,6 @@ import (
"kra/internal/service/dto"
)
type LoginResult struct {
User *dto.UserResponse `json:"user"`
Token string `json:"token"`
ExpiresAt int64 `json:"expiresAt"`
NeedChangePassword bool `json:"needChangePassword"`
}
type AuthService struct {
uc *biz.AuthenticationUsecase
}
@@ -22,11 +15,11 @@ func NewAuthService(uc *biz.AuthenticationUsecase) *AuthService {
return &AuthService{uc: uc}
}
func loginResult(value *biz.AuthenticationResult) *LoginResult {
return &LoginResult{User: convertUser(value.User), Token: value.Token, ExpiresAt: value.ExpiresAt.UnixMilli(), NeedChangePassword: value.NeedChangePassword}
func loginResult(value *biz.AuthenticationResult) *dto.LoginResponse {
return &dto.LoginResponse{User: convertUser(value.User), Token: value.Token, ExpiresAt: value.ExpiresAt.UnixMilli(), NeedChangePassword: value.NeedChangePassword}
}
func (s *AuthService) Login(ctx context.Context, req *dto.LoginRequest, ip, agent string) (*LoginResult, error) {
func (s *AuthService) Login(ctx context.Context, req *dto.LoginRequest, ip, agent string) (*dto.LoginResponse, error) {
value, err := s.uc.Login(ctx, &biz.LoginAttempt{Username: req.Username, Password: req.Password, CaptchaID: req.CaptchaID, Captcha: req.Captcha, IP: ip, Agent: agent})
if err != nil {
return nil, err
@@ -34,7 +27,7 @@ func (s *AuthService) Login(ctx context.Context, req *dto.LoginRequest, ip, agen
return loginResult(value), nil
}
func (s *AuthService) SwitchAuthority(ctx context.Context, claims *biz.AuthClaims, authorityID uint) (*LoginResult, error) {
func (s *AuthService) SwitchAuthority(ctx context.Context, claims *biz.AuthClaims, authorityID uint) (*dto.LoginResponse, error) {
value, err := s.uc.SwitchAuthority(ctx, claims, authorityID)
if err != nil {
return nil, err
+10
View File
@@ -119,6 +119,16 @@ func (s *DictionaryService) DictionaryDetails(ctx context.Context, page, size in
}
return out, total, nil
}
func (s *DictionaryService) DictionaryDetailsRequest(ctx context.Context, page, size int, request dto.DictionaryDetailListRequest) ([]*dto.DictionaryDetailResponse, int64, error) {
return s.DictionaryDetails(ctx, page, size, biz.DictionaryDetailFilter{
DictionaryID: request.DictionaryID,
Label: request.Label,
Value: request.Value,
Status: request.Status,
ParentID: request.ParentID,
Level: request.Level,
})
}
func (s *DictionaryService) DictionaryDetail(ctx context.Context, id uint) (*dto.DictionaryDetailResponse, error) {
v, err := s.uc.FindDictionaryDetail(ctx, id)
if err != nil {
+8
View File
@@ -0,0 +1,8 @@
package dto
type LoginResponse struct {
User *UserResponse `json:"user"`
Token string `json:"token"`
ExpiresAt int64 `json:"expiresAt"`
NeedChangePassword bool `json:"needChangePassword"`
}
+9
View File
@@ -30,6 +30,15 @@ type DictionaryDetailsByParentRequest struct {
ParentID *uint `json:"parentID" form:"parentID"`
IncludeChildren bool `json:"includeChildren" form:"includeChildren"`
}
type DictionaryDetailListRequest struct {
DictionaryID uint
Label string
Value string
Status *bool
ParentID *uint
Level *int
}
type SystemParameterRequest struct {
ID uint `json:"ID" form:"ID"`
CreatedAt time.Time `json:"CreatedAt" form:"CreatedAt"`
+13
View File
@@ -0,0 +1,13 @@
package dto
type DatabaseInitRequest struct {
DBType string `json:"dbType"`
Host string `json:"host"`
Port string `json:"port"`
UserName string `json:"userName"`
Password string `json:"password"`
DBName string `json:"dbName" binding:"required"`
DBPath string `json:"dbPath"`
Template string `json:"template"`
AdminPassword string `json:"adminPassword" binding:"required"`
}
+8
View File
@@ -57,6 +57,14 @@ func (s *MediaService) MediaList(ctx context.Context, filter biz.MediaFilter) ([
}
return out, total, nil
}
func (s *MediaService) MediaListRequest(ctx context.Context, request *dto.MediaListRequest) ([]*dto.MediaResponse, int64, error) {
return s.MediaList(ctx, biz.MediaFilter{
Page: request.Page, PageSize: request.PageSize, Keyword: request.Keyword,
CategoryID: request.ClassID, Tag: request.Tag, UserID: request.UserID,
StartCreatedAt: request.StartCreatedAt, EndCreatedAt: request.EndCreatedAt,
OrderKey: request.OrderKey, Desc: request.Desc,
})
}
func (s *MediaService) Delete(ctx context.Context, id uint) error { return s.uc.Delete(ctx, id) }
func (s *MediaService) Rename(ctx context.Context, id uint, name string) error {
return s.uc.UpdateMediaName(ctx, id, name)
+4 -23
View File
@@ -5,22 +5,11 @@ import (
"strings"
"kra/internal/biz"
"kra/internal/routeinfo"
"kra/internal/service/dto"
)
type DatabaseInit struct {
DBType string `json:"dbType"`
Host string `json:"host"`
Port string `json:"port"`
UserName string `json:"userName"`
Password string `json:"password"`
DBName string `json:"dbName" binding:"required"`
DBPath string `json:"dbPath"`
Template string `json:"template"`
AdminPassword string `json:"adminPassword" binding:"required"`
}
func (s *SystemConfigService) Initialize(ctx context.Context, input *DatabaseInit, apis []*biz.API) error {
func (s *SystemConfigService) Initialize(ctx context.Context, input *dto.DatabaseInitRequest, apis []*biz.API) error {
driver, config := input.DBType, ""
switch driver {
case "mysql":
@@ -37,7 +26,7 @@ func (s *SystemConfigService) Initialize(ctx context.Context, input *DatabaseIni
return s.uc.Initialize(ctx, &biz.DatabaseConfig{Driver: driver, Host: input.Host, Port: input.Port, User: input.UserName, Password: input.Password, Name: input.DBName, Path: input.DBPath, Config: config, Template: input.Template, AdminPassword: input.AdminPassword, APIs: apis})
}
func (s *SystemConfigService) InitializeRoutes(ctx context.Context, input *DatabaseInit, routes []dto.Route) error {
func (s *SystemConfigService) InitializeRoutes(ctx context.Context, input *dto.DatabaseInitRequest, routes []dto.Route) error {
apis := make([]*biz.API, 0, len(routes))
for _, route := range routes {
path := route.Path
@@ -47,16 +36,8 @@ func (s *SystemConfigService) InitializeRoutes(ctx context.Context, input *Datab
path = "/"
}
}
group, description := routeMetadata(route.Method, path)
group, description := routeinfo.Metadata(route.Method, path)
apis = append(apis, &biz.API{Path: path, Method: route.Method, APIGroup: group, Description: description})
}
return s.Initialize(ctx, input, apis)
}
func routeGroup(path string) string {
parts := strings.Split(strings.Trim(path, "/"), "/")
if len(parts) > 0 && parts[0] != "" {
return parts[0]
}
return "base"
}
+11 -8
View File
@@ -7,7 +7,7 @@ import (
"kra/internal/service/dto"
)
type UserInput struct {
type userInput struct {
ID uint
Username, Password, NickName, HeaderImg, Phone, Email string
AuthorityID uint
@@ -24,17 +24,20 @@ func NewUserService(uc *biz.UserUsecase, settings *SecurityService) *UserService
return &UserService{uc: uc, settings: settings}
}
func userInput(value *dto.UserRequest) UserInput {
return UserInput{ID: value.ID, Username: value.Username, Password: value.Password, NickName: value.NickName, HeaderImg: value.HeaderImg, AuthorityID: value.AuthorityID, AuthorityIDs: value.AuthorityIDs, Enable: value.Enable, Phone: value.Phone, Email: value.Email}
func userRequestInput(value *dto.UserRequest) userInput {
return userInput{ID: value.ID, Username: value.Username, Password: value.Password, NickName: value.NickName, HeaderImg: value.HeaderImg, AuthorityID: value.AuthorityID, AuthorityIDs: value.AuthorityIDs, Enable: value.Enable, Phone: value.Phone, Email: value.Email}
}
func (s *UserService) ListUsersRequest(ctx context.Context, value *dto.UserListRequest) ([]*dto.UserResponse, int64, error) {
return s.ListUsers(ctx, value.Page, value.PageSize, &biz.UserListFilter{Username: value.Username, NickName: value.NickName, Phone: value.Phone, Email: value.Email, OrderKey: value.OrderKey, Desc: value.Desc})
}
func (s *UserService) CreateUserRequest(ctx context.Context, value *dto.UserRequest) (*dto.UserResponse, error) {
return s.CreateUser(ctx, userInput(value))
return s.createUser(ctx, userRequestInput(value))
}
func (s *UserService) UpdateUserRequest(ctx context.Context, value *dto.UserRequest) error {
return s.UpdateUser(ctx, userInput(value))
return s.updateUser(ctx, userRequestInput(value))
}
func (s *UserService) UpdateSelfUserRequest(ctx context.Context, id uint, value *dto.SelfUserRequest) error {
return s.updateSelfUser(ctx, userInput{ID: id, NickName: value.NickName, HeaderImg: value.HeaderImg, Phone: value.Phone, Email: value.Email, Enable: value.Enable})
}
func (s *UserService) User(ctx context.Context, id uint) (*dto.UserResponse, error) {
@@ -85,7 +88,7 @@ func (s *UserService) Authorities(ctx context.Context) ([]*dto.AuthorityResponse
return result, nil
}
func (s *UserService) CreateUser(ctx context.Context, input UserInput) (*dto.UserResponse, error) {
func (s *UserService) createUser(ctx context.Context, input userInput) (*dto.UserResponse, error) {
if err := s.settings.ValidatePassword(ctx, input.Password); err != nil {
return nil, err
}
@@ -97,12 +100,12 @@ func (s *UserService) CreateUser(ctx context.Context, input UserInput) (*dto.Use
}
return convertUser(user), nil
}
func (s *UserService) UpdateUser(ctx context.Context, input UserInput) error {
func (s *UserService) updateUser(ctx context.Context, input userInput) error {
// The compatible ChangeUserInfo payload uses authorityIds for role assignment; the
// standalone authorityId field is not applied by setUserInfo.
return s.uc.UpdateUser(ctx, &biz.User{ID: input.ID, NickName: input.NickName, HeaderImg: input.HeaderImg, Phone: input.Phone, Email: input.Email, Enable: input.Enable}, input.AuthorityIDs)
}
func (s *UserService) UpdateSelfUser(ctx context.Context, input UserInput) error {
func (s *UserService) updateSelfUser(ctx context.Context, input userInput) error {
return s.uc.UpdateSelfUser(ctx, &biz.User{ID: input.ID, NickName: input.NickName, HeaderImg: input.HeaderImg, Phone: input.Phone, Email: input.Email, Enable: input.Enable})
}
func (s *UserService) DeleteUser(ctx context.Context, id uint) error {