瀏覽代碼

refactor(admin): 重构 admin模块代码

- 将 admin 相关的 handler、service 和 repository 移至独立的包中
- 更新文件名和包名以更好地反映其功能
-调整导入路径和引用以适应新的包结构
- 优化部分代码结构以提高可维护性
fusu 2 周之前
父節點
當前提交
b05f0a52f3

+ 2 - 1
cmd/migration/wire/wire.go

@@ -5,6 +5,7 @@ package wire
 
 import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/server"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/app"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/log"
@@ -16,7 +17,7 @@ var repositorySet = wire.NewSet(
 	repository.NewDB,
 	//repository.NewRedis,
 	repository.NewRepository,
-	repository.NewUserRepository,
+	admin.NewUserRepository,
 )
 var serverSet = wire.NewSet(
 	server.NewMigrateServer,

+ 2 - 1
cmd/migration/wire/wire_gen.go

@@ -8,6 +8,7 @@ package wire
 
 import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/server"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/app"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/log"
@@ -27,7 +28,7 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 
 // wire.go:
 
-var repositorySet = wire.NewSet(repository.NewDB, repository.NewRepository, repository.NewUserRepository)
+var repositorySet = wire.NewSet(repository.NewDB, repository.NewRepository, admin.NewUserRepository)
 
 var serverSet = wire.NewSet(server.NewMigrateServer)
 

+ 9 - 6
cmd/server/wire/wire.go

@@ -5,12 +5,15 @@ package wire
 
 import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/handler"
+	admin3 "github.com/go-nunu/nunu-layout-advanced/internal/handler/admin"
 	waf3 "github.com/go-nunu/nunu-layout-advanced/internal/handler/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/middleware"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
 	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/server"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	admin2 "github.com/go-nunu/nunu-layout-advanced/internal/service/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/gameShield"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/app"
@@ -32,8 +35,8 @@ var repositorySet = wire.NewSet(
 	repository.NewRabbitMQ,
 	repository.NewRepository,
 	repository.NewTransaction,
-	repository.NewAdminRepository,
-	repository.NewUserRepository,
+	admin.NewAdminRepository,
+	admin.NewUserRepository,
 	repository.NewGameShieldRepository,
 	repository.NewGameShieldPublicIpRepository,
 	waf2.NewWebForwardingRepository,
@@ -58,9 +61,9 @@ var repositorySet = wire.NewSet(
 
 var serviceSet = wire.NewSet(
 	service.NewService,
-	service.NewUserService,
+	admin2.NewUserService,
 
-	service.NewAdminService,
+	admin2.NewAdminService,
 	gameShield.NewGameShieldService,
 	service.NewAoDunService,
 	service.NewGameShieldPublicIpService,
@@ -93,8 +96,8 @@ var serviceSet = wire.NewSet(
 
 var handlerSet = wire.NewSet(
 	handler.NewHandler,
-	handler.NewUserHandler,
-	handler.NewAdminHandler,
+	admin3.NewUserHandler,
+	admin3.NewAdminHandler,
 	handler.NewGameShieldHandler,
 	handler.NewGameShieldPublicIpHandler,
 	waf3.NewWebForwardingHandler,

+ 12 - 9
cmd/server/wire/wire_gen.go

@@ -8,12 +8,15 @@ package wire
 
 import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/handler"
+	admin3 "github.com/go-nunu/nunu-layout-advanced/internal/handler/admin"
 	waf3 "github.com/go-nunu/nunu-layout-advanced/internal/handler/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/middleware"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/server"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	admin2 "github.com/go-nunu/nunu-layout-advanced/internal/service/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service/api/gameShield"
 	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/app"
@@ -43,9 +46,9 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	transaction := repository.NewTransaction(repositoryRepository)
 	sidSid := sid.NewSid()
 	serviceService := service.NewService(transaction, logger, sidSid, jwtJWT)
-	userRepository := repository.NewUserRepository(repositoryRepository)
-	userService := service.NewUserService(serviceService, userRepository)
-	userHandler := handler.NewUserHandler(handlerHandler, userService)
+	userRepository := admin.NewUserRepository(repositoryRepository)
+	userService := admin2.NewUserService(serviceService, userRepository)
+	userHandler := admin3.NewUserHandler(handlerHandler, userService)
 	gameShieldRepository := repository.NewGameShieldRepository(repositoryRepository)
 	parserService := service.NewParserService(serviceService)
 	crawlerService := service.NewCrawlerService(serviceService, parserService, viperViper)
@@ -91,9 +94,9 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	allowAndDenyIpService := waf2.NewAllowAndDenyIpService(serviceService, allowAndDenyIpRepository, wafFormatterService, gatewayipService)
 	globalLimitService := waf2.NewGlobalLimitService(serviceService, globalLimitRepository, duedateService, crawlerService, viperViper, requiredService, parserService, hostService, hostRepository, cdnService, cdnRepository, tcpforwardingRepository, udpForWardingRepository, webForwardingRepository, allowAndDenyIpService, allowAndDenyIpRepository, tcpforwardingService, udpForWardingService, webForwardingService, gatewayipRepository, gatewayipService)
 	globalLimitHandler := waf3.NewGlobalLimitHandler(handlerHandler, globalLimitService)
-	adminRepository := repository.NewAdminRepository(repositoryRepository)
-	adminService := service.NewAdminService(serviceService, adminRepository)
-	adminHandler := handler.NewAdminHandler(handlerHandler, adminService)
+	adminRepository := admin.NewAdminRepository(repositoryRepository)
+	adminService := admin2.NewAdminService(serviceService, adminRepository)
+	adminHandler := admin3.NewAdminHandler(handlerHandler, adminService)
 	gatewayGroupRepository := repository.NewGatewayGroupRepository(repositoryRepository)
 	gatewayGroupService := service.NewGatewayGroupService(serviceService, gatewayGroupRepository, requiredService, parserService, requestService)
 	gatewayGroupHandler := handler.NewGatewayGroupHandler(handlerHandler, gatewayGroupService)
@@ -113,11 +116,11 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 
 // wire.go:
 
-var repositorySet = wire.NewSet(repository.NewDB, repository.NewRedis, repository.NewCasbinEnforcer, repository.NewMongoClient, repository.NewMongoDB, repository.NewRabbitMQ, repository.NewRepository, repository.NewTransaction, repository.NewAdminRepository, repository.NewUserRepository, repository.NewGameShieldRepository, repository.NewGameShieldPublicIpRepository, waf.NewWebForwardingRepository, waf.NewTcpforwardingRepository, waf.NewUdpForWardingRepository, repository.NewGameShieldUserIpRepository, repository.NewGameShieldBackendRepository, repository.NewGameShieldSdkIpRepository, repository.NewHostRepository, waf.NewGlobalLimitRepository, repository.NewGatewayGroupRepository, repository.NewGateWayGroupIpRepository, repository.NewCdnRepository, waf.NewAllowAndDenyIpRepository, repository.NewProxyRepository, repository.NewCcRepository, repository.NewExpiredRepository, repository.NewLogRepository, waf.NewGatewayipRepository)
+var repositorySet = wire.NewSet(repository.NewDB, repository.NewRedis, repository.NewCasbinEnforcer, repository.NewMongoClient, repository.NewMongoDB, repository.NewRabbitMQ, repository.NewRepository, repository.NewTransaction, admin.NewAdminRepository, admin.NewUserRepository, repository.NewGameShieldRepository, repository.NewGameShieldPublicIpRepository, waf.NewWebForwardingRepository, waf.NewTcpforwardingRepository, waf.NewUdpForWardingRepository, repository.NewGameShieldUserIpRepository, repository.NewGameShieldBackendRepository, repository.NewGameShieldSdkIpRepository, repository.NewHostRepository, waf.NewGlobalLimitRepository, repository.NewGatewayGroupRepository, repository.NewGateWayGroupIpRepository, repository.NewCdnRepository, waf.NewAllowAndDenyIpRepository, repository.NewProxyRepository, repository.NewCcRepository, repository.NewExpiredRepository, repository.NewLogRepository, waf.NewGatewayipRepository)
 
-var serviceSet = wire.NewSet(service.NewService, service.NewUserService, service.NewAdminService, gameShield.NewGameShieldService, service.NewAoDunService, service.NewGameShieldPublicIpService, service.NewDuedateService, service.NewFormatterService, service.NewParserService, service.NewRequiredService, service.NewCrawlerService, waf2.NewWebForwardingService, waf2.NewTcpforwardingService, waf2.NewUdpForWardingService, service.NewGameShieldUserIpService, gameShield.NewGameShieldBackendService, service.NewGameShieldSdkIpService, service.NewHostService, waf2.NewGlobalLimitService, service.NewGatewayGroupService, waf2.NewWafFormatterService, service.NewGateWayGroupIpService, service.NewRequestService, service.NewCdnService, waf2.NewAllowAndDenyIpService, service.NewProxyService, service.NewSslCertService, service.NewWebsocketService, service.NewCcService, service.NewLogService, waf2.NewGatewayipService)
+var serviceSet = wire.NewSet(service.NewService, admin2.NewUserService, admin2.NewAdminService, gameShield.NewGameShieldService, service.NewAoDunService, service.NewGameShieldPublicIpService, service.NewDuedateService, service.NewFormatterService, service.NewParserService, service.NewRequiredService, service.NewCrawlerService, waf2.NewWebForwardingService, waf2.NewTcpforwardingService, waf2.NewUdpForWardingService, service.NewGameShieldUserIpService, gameShield.NewGameShieldBackendService, service.NewGameShieldSdkIpService, service.NewHostService, waf2.NewGlobalLimitService, service.NewGatewayGroupService, waf2.NewWafFormatterService, service.NewGateWayGroupIpService, service.NewRequestService, service.NewCdnService, waf2.NewAllowAndDenyIpService, service.NewProxyService, service.NewSslCertService, service.NewWebsocketService, service.NewCcService, service.NewLogService, waf2.NewGatewayipService)
 
-var handlerSet = wire.NewSet(handler.NewHandler, handler.NewUserHandler, handler.NewAdminHandler, handler.NewGameShieldHandler, handler.NewGameShieldPublicIpHandler, waf3.NewWebForwardingHandler, waf3.NewTcpforwardingHandler, waf3.NewUdpForWardingHandler, handler.NewGameShieldUserIpHandler, handler.NewGameShieldBackendHandler, handler.NewGameShieldSdkIpHandler, handler.NewHostHandler, waf3.NewGlobalLimitHandler, handler.NewGatewayGroupHandler, handler.NewGateWayGroupIpHandler, waf3.NewAllowAndDenyIpHandler, handler.NewCcHandler, waf3.NewGatewayipHandler)
+var handlerSet = wire.NewSet(handler.NewHandler, admin3.NewUserHandler, admin3.NewAdminHandler, handler.NewGameShieldHandler, handler.NewGameShieldPublicIpHandler, waf3.NewWebForwardingHandler, waf3.NewTcpforwardingHandler, waf3.NewUdpForWardingHandler, handler.NewGameShieldUserIpHandler, handler.NewGameShieldBackendHandler, handler.NewGameShieldSdkIpHandler, handler.NewHostHandler, waf3.NewGlobalLimitHandler, handler.NewGatewayGroupHandler, handler.NewGateWayGroupIpHandler, waf3.NewAllowAndDenyIpHandler, handler.NewCcHandler, waf3.NewGatewayipHandler)
 
 // 限流器依赖集
 var limiterSet = wire.NewSet(limiter.NewLimiter, middleware.NewRateLimitMiddleware)

+ 2 - 1
cmd/task/wire/wire.go

@@ -6,6 +6,7 @@ package wire
 import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/job"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
 	waf2 "github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/server"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
@@ -29,7 +30,7 @@ var repositorySet = wire.NewSet(
 	repository.NewRabbitMQ,
 	repository.NewRepository,
 	repository.NewTransaction,
-	repository.NewUserRepository,
+	admin.NewUserRepository,
 	repository.NewGameShieldRepository,
 	repository.NewGameShieldBackendRepository,
 	repository.NewGameShieldPublicIpRepository,

+ 3 - 2
cmd/task/wire/wire_gen.go

@@ -9,6 +9,7 @@ package wire
 import (
 	"github.com/go-nunu/nunu-layout-advanced/internal/job"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/server"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
@@ -36,7 +37,7 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	transaction := repository.NewTransaction(repositoryRepository)
 	sidSid := sid.NewSid()
 	taskTask := task.NewTask(transaction, logger, sidSid)
-	userRepository := repository.NewUserRepository(repositoryRepository)
+	userRepository := admin.NewUserRepository(repositoryRepository)
 	userTask := task.NewUserTask(taskTask, userRepository)
 	gameShieldRepository := repository.NewGameShieldRepository(repositoryRepository)
 	jwtJWT := jwt.NewJwt(viperViper)
@@ -92,7 +93,7 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 
 // wire.go:
 
-var repositorySet = wire.NewSet(repository.NewDB, repository.NewRedis, repository.NewMongoClient, repository.NewCasbinEnforcer, repository.NewMongoDB, repository.NewRabbitMQ, repository.NewRepository, repository.NewTransaction, repository.NewUserRepository, repository.NewGameShieldRepository, repository.NewGameShieldBackendRepository, repository.NewGameShieldPublicIpRepository, repository.NewHostRepository, repository.NewGameShieldUserIpRepository, repository.NewGameShieldSdkIpRepository, waf.NewWebForwardingRepository, waf.NewTcpforwardingRepository, waf.NewUdpForWardingRepository, waf.NewGlobalLimitRepository, repository.NewGatewayGroupRepository, repository.NewGateWayGroupIpRepository, repository.NewCdnRepository, repository.NewExpiredRepository, repository.NewProxyRepository, waf.NewGatewayipRepository, repository.NewLogRepository)
+var repositorySet = wire.NewSet(repository.NewDB, repository.NewRedis, repository.NewMongoClient, repository.NewCasbinEnforcer, repository.NewMongoDB, repository.NewRabbitMQ, repository.NewRepository, repository.NewTransaction, admin.NewUserRepository, repository.NewGameShieldRepository, repository.NewGameShieldBackendRepository, repository.NewGameShieldPublicIpRepository, repository.NewHostRepository, repository.NewGameShieldUserIpRepository, repository.NewGameShieldSdkIpRepository, waf.NewWebForwardingRepository, waf.NewTcpforwardingRepository, waf.NewUdpForWardingRepository, waf.NewGlobalLimitRepository, repository.NewGatewayGroupRepository, repository.NewGateWayGroupIpRepository, repository.NewCdnRepository, repository.NewExpiredRepository, repository.NewProxyRepository, waf.NewGatewayipRepository, repository.NewLogRepository)
 
 var taskSet = wire.NewSet(task.NewTask, task.NewUserTask, task.NewGameShieldTask, task.NewWafTask)
 

+ 10 - 9
internal/handler/admin.go → internal/handler/admin/admin.go

@@ -1,20 +1,21 @@
-package handler
+package admin
 
 import (
 	"github.com/gin-gonic/gin"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
-	"github.com/go-nunu/nunu-layout-advanced/internal/service"
+	"github.com/go-nunu/nunu-layout-advanced/internal/handler"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/admin"
 	"net/http"
 )
 
 type AdminHandler struct {
-	*Handler
-	adminService service.AdminService
+	*handler.Handler
+	adminService admin.AdminService
 }
 
 func NewAdminHandler(
-	handler *Handler,
-	adminService service.AdminService,
+	handler *handler.Handler,
+	adminService admin.AdminService,
 ) *AdminHandler {
 	return &AdminHandler{
 		Handler:      handler,
@@ -60,7 +61,7 @@ func (h *AdminHandler) Login(ctx *gin.Context) {
 // @Success 200 {object} v1.GetMenuResponse
 // @Router /v1/menus [get]
 func (h *AdminHandler) GetMenus(ctx *gin.Context) {
-	data, err := h.adminService.GetMenus(ctx, GetUserIdFromCtx(ctx))
+	data, err := h.adminService.GetMenus(ctx, handler.GetUserIdFromCtx(ctx))
 	if err != nil {
 		v1.HandleError(ctx, http.StatusBadRequest, v1.ErrBadRequest, nil)
 		return
@@ -100,7 +101,7 @@ func (h *AdminHandler) GetAdminMenus(ctx *gin.Context) {
 // @Success 200 {object} v1.GetUserPermissionsData
 // @Router /v1/admin/user/permissions [get]
 func (h *AdminHandler) GetUserPermissions(ctx *gin.Context) {
-	data, err := h.adminService.GetUserPermissions(ctx, GetUserIdFromCtx(ctx))
+	data, err := h.adminService.GetUserPermissions(ctx, handler.GetUserIdFromCtx(ctx))
 	if err != nil {
 		v1.HandleError(ctx, http.StatusBadRequest, v1.ErrBadRequest, nil)
 		return
@@ -551,7 +552,7 @@ func (h *AdminHandler) GetAdminUsers(ctx *gin.Context) {
 // @Success 200 {object} v1.GetAdminUserResponse
 // @Router /v1/admin/user [get]
 func (h *AdminHandler) GetAdminUser(ctx *gin.Context) {
-	data, err := h.adminService.GetAdminUser(ctx, GetUserIdFromCtx(ctx))
+	data, err := h.adminService.GetAdminUser(ctx, handler.GetUserIdFromCtx(ctx))
 	if err != nil {
 		v1.HandleError(ctx, http.StatusInternalServerError, v1.ErrInternalServerError, nil)
 		return

+ 26 - 0
internal/handler/admin/user.go

@@ -0,0 +1,26 @@
+package admin
+
+import (
+	"github.com/gin-gonic/gin"
+	"github.com/go-nunu/nunu-layout-advanced/internal/handler"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/admin"
+)
+
+type UserHandler struct {
+	*handler.Handler
+	userService admin.UserService
+}
+
+func NewUserHandler(
+	handler *handler.Handler,
+	userService admin.UserService,
+) *UserHandler {
+	return &UserHandler{
+		Handler:     handler,
+		userService: userService,
+	}
+}
+
+func (h *UserHandler) GetUsers(ctx *gin.Context) {
+
+}

+ 0 - 25
internal/handler/user.go

@@ -1,25 +0,0 @@
-package handler
-
-import (
-	"github.com/gin-gonic/gin"
-	"github.com/go-nunu/nunu-layout-advanced/internal/service"
-)
-
-type UserHandler struct {
-	*Handler
-	userService service.UserService
-}
-
-func NewUserHandler(
-	handler *Handler,
-	userService service.UserService,
-) *UserHandler {
-	return &UserHandler{
-		Handler:     handler,
-		userService: userService,
-	}
-}
-
-func (h *UserHandler) GetUsers(ctx *gin.Context) {
-
-}

+ 3 - 3
internal/job/user.go

@@ -3,7 +3,7 @@ package job
 import (
 	"context"
 	"fmt"
-	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
 	"go.uber.org/zap"
 )
 
@@ -14,7 +14,7 @@ type UserJob interface {
 
 func NewUserJob(
 	job *Job,
-	userRepo repository.UserRepository,
+	userRepo admin.UserRepository,
 ) UserJob {
 	return &userJob{
 		userRepo: userRepo,
@@ -23,7 +23,7 @@ func NewUserJob(
 }
 
 type userJob struct {
-	userRepo repository.UserRepository
+	userRepo admin.UserRepository
 	*Job
 }
 

+ 17 - 16
internal/repository/admin.go → internal/repository/admin/admin.go

@@ -1,4 +1,4 @@
-package repository
+package admin
 
 import (
 	"context"
@@ -6,6 +6,7 @@ import (
 	"github.com/duke-git/lancet/v2/convertor"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 	"go.uber.org/zap"
 	"strings"
 )
@@ -46,7 +47,7 @@ type AdminRepository interface {
 }
 
 func NewAdminRepository(
-	repository *Repository,
+	repository *repository.Repository,
 ) AdminRepository {
 	return &adminRepository{
 		Repository: repository,
@@ -54,11 +55,11 @@ func NewAdminRepository(
 }
 
 type adminRepository struct {
-	*Repository
+	*repository.Repository
 }
 
 func (r *adminRepository) CasbinRoleDelete(ctx context.Context, role string) error {
-	_, err := r.e.DeleteRole(role)
+	_, err := r.E.DeleteRole(role)
 	return err
 }
 
@@ -72,15 +73,15 @@ func (r *adminRepository) GetRoleBySid(ctx context.Context, sid string) (model.R
 }
 
 func (r *adminRepository) DeleteUserRoles(ctx context.Context, uid uint) error {
-	_, err := r.e.DeleteRolesForUser(convertor.ToString(uid))
+	_, err := r.E.DeleteRolesForUser(convertor.ToString(uid))
 	return err
 }
 func (r *adminRepository) UpdateUserRoles(ctx context.Context, uid uint, roles []string) error {
 	if len(roles) == 0 {
-		_, err := r.e.DeleteRolesForUser(convertor.ToString(uid))
+		_, err := r.E.DeleteRolesForUser(convertor.ToString(uid))
 		return err
 	}
-	old, err := r.e.GetRolesForUser(convertor.ToString(uid))
+	old, err := r.E.GetRolesForUser(convertor.ToString(uid))
 	if err != nil {
 		return err
 	}
@@ -109,13 +110,13 @@ func (r *adminRepository) UpdateUserRoles(ctx context.Context, uid uint, roles [
 		return nil
 	}
 	for _, role := range delRoles {
-		if _, err := r.e.DeleteRoleForUser(convertor.ToString(uid), role); err != nil {
-			r.logger.WithContext(ctx).Error("DeleteRoleForUser error", zap.Error(err))
+		if _, err := r.E.DeleteRoleForUser(convertor.ToString(uid), role); err != nil {
+			r.Logger.WithContext(ctx).Error("DeleteRoleForUser error", zap.Error(err))
 			return err
 		}
 	}
 
-	_, err = r.e.AddRolesForUser(convertor.ToString(uid), addRoles)
+	_, err = r.E.AddRolesForUser(convertor.ToString(uid), addRoles)
 	return err
 }
 
@@ -171,7 +172,7 @@ func (r *adminRepository) UpdateRolePermission(ctx context.Context, role string,
 		return nil
 	}
 	// 获取当前角色的所有权限
-	oldPermissions, err := r.e.GetPermissionsForUser(role)
+	oldPermissions, err := r.E.GetPermissionsForUser(role)
 	if err != nil {
 		return err
 	}
@@ -203,7 +204,7 @@ func (r *adminRepository) UpdateRolePermission(ctx context.Context, role string,
 
 	// 先移除多余的权限(使用 DeletePermissionForUser 逐条删除)
 	for _, perm := range removePermissions {
-		_, err := r.e.DeletePermissionForUser(role, perm...)
+		_, err := r.E.DeletePermissionForUser(role, perm...)
 		if err != nil {
 			return fmt.Errorf("移除权限失败: %v", err)
 		}
@@ -211,7 +212,7 @@ func (r *adminRepository) UpdateRolePermission(ctx context.Context, role string,
 
 	// 再添加新的权限
 	if len(addPermissions) > 0 {
-		_, err = r.e.AddPermissionsForUser(role, addPermissions...)
+		_, err = r.E.AddPermissionsForUser(role, addPermissions...)
 		if err != nil {
 			return fmt.Errorf("添加新权限失败: %v", err)
 		}
@@ -266,14 +267,14 @@ func (r *adminRepository) ApiDelete(ctx context.Context, id uint) error {
 }
 
 func (r *adminRepository) GetUserPermissions(ctx context.Context, uid uint) ([][]string, error) {
-	return r.e.GetImplicitPermissionsForUser(convertor.ToString(uid))
+	return r.E.GetImplicitPermissionsForUser(convertor.ToString(uid))
 
 }
 func (r *adminRepository) GetRolePermissions(ctx context.Context, role string) ([][]string, error) {
-	return r.e.GetPermissionsForUser(role)
+	return r.E.GetPermissionsForUser(role)
 }
 func (r *adminRepository) GetUserRoles(ctx context.Context, uid uint) ([]string, error) {
-	return r.e.GetRolesForUser(convertor.ToString(uid))
+	return r.E.GetRolesForUser(convertor.ToString(uid))
 }
 func (r *adminRepository) MenuUpdate(ctx context.Context, m *model.Menu) error {
 	return r.DBWithName(ctx,"admin").Where("id = ?", m.ID).Save(m).Error

+ 4 - 3
internal/repository/user.go → internal/repository/admin/user.go

@@ -1,8 +1,9 @@
-package repository
+package admin
 
 import (
 	"context"
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
 )
 
 type UserRepository interface {
@@ -10,7 +11,7 @@ type UserRepository interface {
 }
 
 func NewUserRepository(
-	repository *Repository,
+	repository *repository.Repository,
 ) UserRepository {
 	return &userRepository{
 		Repository: repository,
@@ -18,7 +19,7 @@ func NewUserRepository(
 }
 
 type userRepository struct {
-	*Repository
+	*repository.Repository
 }
 
 func (r *userRepository) GetUser(ctx context.Context, id int64) (*model.User, error) {

+ 5 - 5
internal/repository/repository.go

@@ -28,9 +28,9 @@ type Repository struct {
 	rdb *redis.Client
 	mongoClient *qmgo.Client
 	MongoDB     *qmgo.Database
-	mq          *rabbitmq.RabbitMQ
-	logger      *log.Logger
-	e           *casbin.SyncedEnforcer
+	mq     *rabbitmq.RabbitMQ
+	Logger *log.Logger
+	E      *casbin.SyncedEnforcer
 }
 
 func NewRepository(
@@ -48,8 +48,8 @@ func NewRepository(
 		mongoClient: mongoClient,
 		MongoDB:     mongoDB,
 		mq:          mq,
-		logger:      logger,
-		e:           e,
+		Logger:      logger,
+		E:           e,
 	}
 }
 

+ 3 - 2
internal/server/http.go

@@ -6,6 +6,7 @@ import (
 	apiV1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	"github.com/go-nunu/nunu-layout-advanced/docs"
 	"github.com/go-nunu/nunu-layout-advanced/internal/handler"
+	"github.com/go-nunu/nunu-layout-advanced/internal/handler/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/handler/api/waf"
 	"github.com/go-nunu/nunu-layout-advanced/internal/middleware"
 	"github.com/go-nunu/nunu-layout-advanced/internal/service"
@@ -25,14 +26,14 @@ func NewHTTPServer(
 	e *casbin.SyncedEnforcer,
 	limiterInstance *limiter.Limiter,
 	rateLimitMiddleware gin.HandlerFunc,
-	userHandler *handler.UserHandler,
+	userHandler *admin.UserHandler,
 	gameShieldHandler *handler.GameShieldHandler,
 	gameShieldBackendHandler *handler.GameShieldBackendHandler,
 	webForwardingHandler *waf.WebForwardingHandler,
 	tcpForwardingHandler *waf.TcpforwardingHandler,
 	udpForwardingHandler *waf.UdpForWardingHandler,
 	globalLimitHandler *waf.GlobalLimitHandler,
-	adminHandler *handler.AdminHandler,
+	adminHandler *admin.AdminHandler,
 	gatewayHandler *handler.GatewayGroupHandler,
 	gatewayIpHandler *handler.GateWayGroupIpHandler,
 	allowAnddenyHandler *waf.AllowAndDenyIpHandler,

+ 8 - 7
internal/service/admin.go → internal/service/admin/admin.go

@@ -1,4 +1,4 @@
-package service
+package admin
 
 import (
 	"context"
@@ -6,7 +6,8 @@ import (
 	"github.com/duke-git/lancet/v2/convertor"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
-	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service"
 	"go.uber.org/zap"
 	"golang.org/x/crypto/bcrypt"
 	"gorm.io/gorm"
@@ -46,8 +47,8 @@ type AdminService interface {
 }
 
 func NewAdminService(
-	service *Service,
-	adminRepository repository.AdminRepository,
+	service *service.Service,
+	adminRepository admin.AdminRepository,
 ) AdminService {
 	return &adminService{
 		Service:         service,
@@ -56,8 +57,8 @@ func NewAdminService(
 }
 
 type adminService struct {
-	*Service
-	adminRepository repository.AdminRepository
+	*service.Service
+	adminRepository admin.AdminRepository
 }
 
 func (s *adminService) GetAdminUser(ctx context.Context, uid uint) (*v1.GetAdminUserResponseData, error) {
@@ -92,7 +93,7 @@ func (s *adminService) Login(ctx context.Context, req *v1.LoginRequest) (string,
 	if err != nil {
 		return "", err
 	}
-	token, err := s.jwt.GenToken(user.ID, time.Now().Add(time.Hour*24*90))
+	token, err := s.Jwt.GenToken(user.ID, time.Now().Add(time.Hour*24*90))
 	if err != nil {
 		return "", err
 	}

+ 7 - 6
internal/service/user.go → internal/service/admin/user.go

@@ -1,9 +1,10 @@
-package service
+package admin
 
 import (
 	"context"
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
-	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service"
 )
 
 type UserService interface {
@@ -11,8 +12,8 @@ type UserService interface {
 }
 
 func NewUserService(
-	service *Service,
-	userRepository repository.UserRepository,
+	service *service.Service,
+	userRepository admin.UserRepository,
 ) UserService {
 	return &userService{
 		Service:        service,
@@ -21,8 +22,8 @@ func NewUserService(
 }
 
 type userService struct {
-	*Service
-	userRepository repository.UserRepository
+	*service.Service
+	userRepository admin.UserRepository
 }
 
 func (s *userService) GetUser(ctx context.Context, id int64) (*model.User, error) {

+ 4 - 4
internal/service/service.go

@@ -9,9 +9,9 @@ import (
 
 type Service struct {
 	Logger *log.Logger
-	sid    *sid.Sid
-	jwt    *jwt.JWT
-	tm     repository.Transaction
+	sid *sid.Sid
+	Jwt *jwt.JWT
+	tm  repository.Transaction
 }
 
 func NewService(
@@ -23,7 +23,7 @@ func NewService(
 	return &Service{
 		Logger: logger,
 		sid:    sid,
-		jwt:    jwt,
+		Jwt:    jwt,
 		tm:     tm,
 	}
 }

+ 3 - 3
internal/task/user.go

@@ -2,7 +2,7 @@ package task
 
 import (
 	"context"
-	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
 )
 
 type UserTask interface {
@@ -11,7 +11,7 @@ type UserTask interface {
 
 func NewUserTask(
 	task *Task,
-	userRepo repository.UserRepository,
+	userRepo admin.UserRepository,
 ) UserTask {
 	return &userTask{
 		userRepo: userRepo,
@@ -20,7 +20,7 @@ func NewUserTask(
 }
 
 type userTask struct {
-	userRepo repository.UserRepository
+	userRepo admin.UserRepository
 	*Task
 }
 

+ 5 - 5
test/server/handler/user_test.go

@@ -2,7 +2,7 @@ package handler
 
 import (
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
-	"github.com/go-nunu/nunu-layout-advanced/internal/handler"
+	"github.com/go-nunu/nunu-layout-advanced/internal/handler/admin"
 	"github.com/go-nunu/nunu-layout-advanced/internal/middleware"
 	"github.com/go-nunu/nunu-layout-advanced/test/mocks/service"
 	"net/http"
@@ -23,7 +23,7 @@ func TestUserHandler_Register(t *testing.T) {
 	mockUserService := mock_service.NewMockUserService(ctrl)
 	mockUserService.EXPECT().Register(gomock.Any(), &params).Return(nil)
 
-	userHandler := handler.NewUserHandler(hdl, mockUserService)
+	userHandler := admin.NewUserHandler(hdl, mockUserService)
 	router.POST("/register", userHandler.Register)
 
 	e := newHttpExcept(t, router)
@@ -51,7 +51,7 @@ func TestUserHandler_Login(t *testing.T) {
 	mockUserService := mock_service.NewMockUserService(ctrl)
 	mockUserService.EXPECT().Login(gomock.Any(), &params).Return(tk, nil)
 
-	userHandler := handler.NewUserHandler(hdl, mockUserService)
+	userHandler := admin.NewUserHandler(hdl, mockUserService)
 	router.POST("/login", userHandler.Login)
 
 	obj := newHttpExcept(t, router).POST("/login").
@@ -77,7 +77,7 @@ func TestUserHandler_GetProfile(t *testing.T) {
 		Nickname: nickname,
 	}, nil)
 
-	userHandler := handler.NewUserHandler(hdl, mockUserService)
+	userHandler := admin.NewUserHandler(hdl, mockUserService)
 	router.Use(middleware.NoStrictAuth(jwt, logger))
 	router.GET("/user", userHandler.GetProfile)
 
@@ -106,7 +106,7 @@ func TestUserHandler_UpdateProfile(t *testing.T) {
 	mockUserService := mock_service.NewMockUserService(ctrl)
 	mockUserService.EXPECT().UpdateProfile(gomock.Any(), userId, &params).Return(nil)
 
-	userHandler := handler.NewUserHandler(hdl, mockUserService)
+	userHandler := admin.NewUserHandler(hdl, mockUserService)
 	router.Use(middleware.StrictAuth(jwt, logger))
 	router.PUT("/user", userHandler.UpdateProfile)
 

+ 3 - 2
test/server/repository/user_test.go

@@ -2,6 +2,7 @@ package repository
 
 import (
 	"context"
+	"github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/log"
 	"testing"
 	"time"
@@ -16,7 +17,7 @@ import (
 
 var logger *log.Logger
 
-func setupRepository(t *testing.T) (repository.UserRepository, sqlmock.Sqlmock) {
+func setupRepository(t *testing.T) (admin.UserRepository, sqlmock.Sqlmock) {
 	mockDB, mock, err := sqlmock.New()
 	if err != nil {
 		t.Fatalf("failed to create sqlmock: %v", err)
@@ -33,7 +34,7 @@ func setupRepository(t *testing.T) (repository.UserRepository, sqlmock.Sqlmock)
 	//rdb, _ := redismock.NewClientMock()
 
 	repo := repository.NewRepository(logger, db)
-	userRepo := repository.NewUserRepository(repo)
+	userRepo := admin.NewUserRepository(repo)
 
 	return userRepo, mock
 }

+ 8 - 7
test/server/service/user_test.go

@@ -6,6 +6,7 @@ import (
 	"flag"
 	"fmt"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
+	"github.com/go-nunu/nunu-layout-advanced/internal/service/admin"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/jwt"
 	"github.com/go-nunu/nunu-layout-advanced/test/mocks/repository"
 	"os"
@@ -57,7 +58,7 @@ func TestUserService_Register(t *testing.T) {
 	mockTm := mock_repository.NewMockTransaction(ctrl)
 	srv := service.NewService(mockTm, logger, sf, j)
 
-	userService := service.NewUserService(srv, mockUserRepo)
+	userService := admin.NewUserService(srv, mockUserRepo)
 
 	ctx := context.Background()
 	req := &v1.RegisterRequest{
@@ -80,7 +81,7 @@ func TestUserService_Register_UsernameExists(t *testing.T) {
 	mockUserRepo := mock_repository.NewMockUserRepository(ctrl)
 	mockTm := mock_repository.NewMockTransaction(ctrl)
 	srv := service.NewService(mockTm, logger, sf, j)
-	userService := service.NewUserService(srv, mockUserRepo)
+	userService := admin.NewUserService(srv, mockUserRepo)
 
 	ctx := context.Background()
 	req := &v1.RegisterRequest{
@@ -102,7 +103,7 @@ func TestUserService_Login(t *testing.T) {
 	mockUserRepo := mock_repository.NewMockUserRepository(ctrl)
 	mockTm := mock_repository.NewMockTransaction(ctrl)
 	srv := service.NewService(mockTm, logger, sf, j)
-	userService := service.NewUserService(srv, mockUserRepo)
+	userService := admin.NewUserService(srv, mockUserRepo)
 
 	ctx := context.Background()
 	req := &v1.LoginRequest{
@@ -131,7 +132,7 @@ func TestUserService_Login_UserNotFound(t *testing.T) {
 	mockUserRepo := mock_repository.NewMockUserRepository(ctrl)
 	mockTm := mock_repository.NewMockTransaction(ctrl)
 	srv := service.NewService(mockTm, logger, sf, j)
-	userService := service.NewUserService(srv, mockUserRepo)
+	userService := admin.NewUserService(srv, mockUserRepo)
 
 	ctx := context.Background()
 	req := &v1.LoginRequest{
@@ -153,7 +154,7 @@ func TestUserService_GetProfile(t *testing.T) {
 	mockUserRepo := mock_repository.NewMockUserRepository(ctrl)
 	mockTm := mock_repository.NewMockTransaction(ctrl)
 	srv := service.NewService(mockTm, logger, sf, j)
-	userService := service.NewUserService(srv, mockUserRepo)
+	userService := admin.NewUserService(srv, mockUserRepo)
 
 	ctx := context.Background()
 	userId := "123"
@@ -176,7 +177,7 @@ func TestUserService_UpdateProfile(t *testing.T) {
 	mockUserRepo := mock_repository.NewMockUserRepository(ctrl)
 	mockTm := mock_repository.NewMockTransaction(ctrl)
 	srv := service.NewService(mockTm, logger, sf, j)
-	userService := service.NewUserService(srv, mockUserRepo)
+	userService := admin.NewUserService(srv, mockUserRepo)
 
 	ctx := context.Background()
 	userId := "123"
@@ -203,7 +204,7 @@ func TestUserService_UpdateProfile_UserNotFound(t *testing.T) {
 	mockUserRepo := mock_repository.NewMockUserRepository(ctrl)
 	mockTm := mock_repository.NewMockTransaction(ctrl)
 	srv := service.NewService(mockTm, logger, sf, j)
-	userService := service.NewUserService(srv, mockUserRepo)
+	userService := admin.NewUserService(srv, mockUserRepo)
 
 	ctx := context.Background()
 	userId := "123"