From aceac5d8ebec1376138b2276161943c9863c95c1 Mon Sep 17 00:00:00 2001 From: yanghao05 Date: Thu, 9 Feb 2023 14:57:32 +0800 Subject: [PATCH] remove interfaces --- config.toml | 11 +++++----- modules/auth/controller/permission.go | 12 ++++------- modules/auth/controller/role.go | 24 +++++++-------------- modules/auth/controller/user.go | 12 ++++------- modules/auth/dao/role.go | 30 +++++++++------------------ modules/auth/dao/role_test.go | 2 +- modules/auth/dao/user.go | 14 +++++-------- modules/auth/dao/user_role.go | 21 +++++++------------ modules/auth/dao/user_role_test.go | 2 +- modules/auth/dao/user_test.go | 2 +- modules/auth/service/role.go | 26 ++++++++--------------- modules/auth/service/user.go | 20 +++++++----------- modules/system/controller/captcha.go | 12 ++++------- modules/system/dao/dao.go | 12 ++++------- modules/system/dao/dao_test.go | 2 +- modules/system/service/service.go | 9 +++----- 16 files changed, 74 insertions(+), 137 deletions(-) diff --git a/config.toml b/config.toml index 30cec60..b709ace 100644 --- a/config.toml +++ b/config.toml @@ -88,12 +88,12 @@ ShowLine = true LogInConsole = true [Database] -Driver = "sqlite" +Driver = "mysql" [Database.MySQL] -Host = "localhost" +Host = "10.47.119.226" Port = 3306 -Database = "demos11" +Database = "atom" Username = "root" Password = "root" Prefix = "" @@ -106,8 +106,7 @@ Engine = "InnoDB" File = "sqlite.db" [Database.Redis] -Host = "localhost" -Port = 3306 +Host = "10.47.119.226" +Port = 6379 Database = 0 -Username = "" Password = "" diff --git a/modules/auth/controller/permission.go b/modules/auth/controller/permission.go index 61542c6..336865a 100755 --- a/modules/auth/controller/permission.go +++ b/modules/auth/controller/permission.go @@ -10,11 +10,7 @@ import ( "github.com/rogeecn/gen" ) -type PermissionController interface { - Get(ctx *gin.Context) (string, error) -} - -type permissionControllerImpl struct { +type PermissionController struct { jwt *jwt.JWT rbac rbac.IRbac } @@ -22,11 +18,11 @@ type permissionControllerImpl struct { func NewPermissionController( jwt *jwt.JWT, rbac rbac.IRbac, -) PermissionController { - return &permissionControllerImpl{rbac: rbac, jwt: jwt} +) *PermissionController { + return &PermissionController{rbac: rbac, jwt: jwt} } -func (c *permissionControllerImpl) Get(ctx *gin.Context) (string, error) { +func (c *PermissionController) Get(ctx *gin.Context) (string, error) { claimsCtx, exists := ctx.Get(jwt.CtxKey) if !exists { return "", gen.NewBusError(http.StatusBadRequest, http.StatusBadRequest, "Token 获取失败") diff --git a/modules/auth/controller/role.go b/modules/auth/controller/role.go index d4b298b..1c96b79 100755 --- a/modules/auth/controller/role.go +++ b/modules/auth/controller/role.go @@ -10,45 +10,37 @@ import ( "github.com/gin-gonic/gin" ) -type RoleController interface { - GetByFilter(*gin.Context, dto.RoleRequestFilter, request.PageFilter) (*response.PageResponse[*models.SysRole], error) - Tree(*gin.Context) ([]*dto.RoleTree, error) - Create(*gin.Context, dto.RoleRequestForm) error - Delete(*gin.Context, int) error - UpdateByID(*gin.Context, int, dto.RoleRequestForm) error -} - -type roleControllerImpl struct { +type RoleController struct { roleSvc service.RoleService } func NewRoleController( roleSvc service.RoleService, -) RoleController { - return &roleControllerImpl{ +) *RoleController { + return &RoleController{ roleSvc: roleSvc, } } -func (c *roleControllerImpl) GetByFilter( +func (c *RoleController) GetByFilter( ctx *gin.Context, filter dto.RoleRequestFilter, page request.PageFilter, ) (*response.PageResponse[*models.SysRole], error) { return c.roleSvc.GetByFilter(ctx, filter, page) } -func (c *roleControllerImpl) Tree(ctx *gin.Context) ([]*dto.RoleTree, error) { +func (c *RoleController) Tree(ctx *gin.Context) ([]*dto.RoleTree, error) { return c.roleSvc.Tree(ctx) } -func (c *roleControllerImpl) Create(ctx *gin.Context, req dto.RoleRequestForm) error { +func (c *RoleController) Create(ctx *gin.Context, req dto.RoleRequestForm) error { _, err := c.roleSvc.Create(ctx, req) return err } -func (c *roleControllerImpl) UpdateByID(ctx *gin.Context, id int, req dto.RoleRequestForm) error { +func (c *RoleController) UpdateByID(ctx *gin.Context, id int, req dto.RoleRequestForm) error { _, err := c.roleSvc.UpdateByID(ctx, uint64(id), req) return err } -func (c *roleControllerImpl) Delete(ctx *gin.Context, id int) error { +func (c *RoleController) Delete(ctx *gin.Context, id int) error { return c.roleSvc.DeleteByID(ctx, uint64(id)) } diff --git a/modules/auth/controller/user.go b/modules/auth/controller/user.go index cd4f741..acbcc2d 100755 --- a/modules/auth/controller/user.go +++ b/modules/auth/controller/user.go @@ -9,11 +9,7 @@ import ( "github.com/gin-gonic/gin" ) -type UserController interface { - Login(*gin.Context, dto.LoginRequestForm) (*dto.LoginResponse, error) -} - -type userControllerImpl struct { +type UserController struct { conf *config.Config user service.UserService jwt *jwt.JWT @@ -23,15 +19,15 @@ func NewUserController( conf *config.Config, user service.UserService, jwt *jwt.JWT, -) UserController { - return &userControllerImpl{ +) *UserController { + return &UserController{ conf: conf, user: user, jwt: jwt, } } -func (c *userControllerImpl) Login(ctx *gin.Context, req dto.LoginRequestForm) (*dto.LoginResponse, error) { +func (c *UserController) Login(ctx *gin.Context, req dto.LoginRequestForm) (*dto.LoginResponse, error) { user, err := c.user.AuthMatchPassword(ctx, &req) if err != nil { return nil, err diff --git a/modules/auth/dao/role.go b/modules/auth/dao/role.go index 80d74fe..8ba27b2 100755 --- a/modules/auth/dao/role.go +++ b/modules/auth/dao/role.go @@ -8,25 +8,15 @@ import ( "context" ) -type RoleDao interface { - GetByFilter(context.Context, dto.RoleRequestFilter, request.PageFilter) ([]*models.SysRole, uint64, error) - FindByID(context.Context, uint64) (*models.SysRole, error) - Create(context.Context, *models.SysRole) (*models.SysRole, error) - UpdateByID(context.Context, *models.SysRole) (*models.SysRole, error) - DeleteByID(context.Context, uint64) error - DeletePermanentlyByID(context.Context, uint64) error - All(context.Context) ([]*models.SysRole, error) -} - -type roleDaoImpl struct { +type RoleDao struct { query *query.Query } -func NewRoleDao(query *query.Query) RoleDao { - return &roleDaoImpl{query: query} +func NewRoleDao(query *query.Query) *RoleDao { + return &RoleDao{query: query} } -func (dao *roleDaoImpl) GetByFilter(ctx context.Context, filter dto.RoleRequestFilter, page request.PageFilter) ([]*models.SysRole, uint64, error) { +func (dao *RoleDao) GetByFilter(ctx context.Context, filter dto.RoleRequestFilter, page request.PageFilter) ([]*models.SysRole, uint64, error) { role := dao.query.SysRole query := role.WithContext(ctx) @@ -55,17 +45,17 @@ func (dao *roleDaoImpl) GetByFilter(ctx context.Context, filter dto.RoleRequestF return items, uint64(total), nil } -func (dao *roleDaoImpl) All(ctx context.Context) ([]*models.SysRole, error) { +func (dao *RoleDao) All(ctx context.Context) ([]*models.SysRole, error) { role := dao.query.SysRole return role.WithContext(ctx).Find() } -func (dao *roleDaoImpl) FindByID(ctx context.Context, id uint64) (*models.SysRole, error) { +func (dao *RoleDao) FindByID(ctx context.Context, id uint64) (*models.SysRole, error) { role := dao.query.SysRole return role.WithContext(ctx).Where(role.ID.Eq(id)).First() } -func (dao *roleDaoImpl) Create(ctx context.Context, model *models.SysRole) (*models.SysRole, error) { +func (dao *RoleDao) Create(ctx context.Context, model *models.SysRole) (*models.SysRole, error) { role := dao.query.SysRole if err := role.WithContext(ctx).Create(model); err != nil { return nil, err @@ -73,7 +63,7 @@ func (dao *roleDaoImpl) Create(ctx context.Context, model *models.SysRole) (*mod return model, nil } -func (dao *roleDaoImpl) UpdateByID(ctx context.Context, model *models.SysRole) (*models.SysRole, error) { +func (dao *RoleDao) UpdateByID(ctx context.Context, model *models.SysRole) (*models.SysRole, error) { role := dao.query.SysRole _, err := role.WithContext(ctx).Where(role.ID.Eq(model.ID)).Updates(model) if err != nil { @@ -82,13 +72,13 @@ func (dao *roleDaoImpl) UpdateByID(ctx context.Context, model *models.SysRole) ( return model, nil } -func (dao *roleDaoImpl) DeleteByID(ctx context.Context, id uint64) error { +func (dao *RoleDao) DeleteByID(ctx context.Context, id uint64) error { role := dao.query.SysRole _, err := role.WithContext(ctx).Where(role.ID.Eq(id)).Delete() return err } -func (dao *roleDaoImpl) DeletePermanentlyByID(ctx context.Context, id uint64) error { +func (dao *RoleDao) DeletePermanentlyByID(ctx context.Context, id uint64) error { role := dao.query.SysRole _, err := role.WithContext(ctx).Unscoped().Where(role.ID.Eq(id)).Delete() return err diff --git a/modules/auth/dao/role_test.go b/modules/auth/dao/role_test.go index 1ec536f..77c177b 100755 --- a/modules/auth/dao/role_test.go +++ b/modules/auth/dao/role_test.go @@ -23,7 +23,7 @@ import ( type RoleInjectParams struct { dig.In DB *gorm.DB - Dao RoleDao + Dao *RoleDao Query *query.Query Faker *gofakeit.Faker } diff --git a/modules/auth/dao/user.go b/modules/auth/dao/user.go index 33d5e66..5cd5bb8 100755 --- a/modules/auth/dao/user.go +++ b/modules/auth/dao/user.go @@ -6,24 +6,20 @@ import ( "context" ) -type UserDao interface { - Create(context.Context, *models.User) (*models.User, error) -} - -type userDaoImpl struct { +type UserDao struct { query *query.Query } -func NewUserDao(query *query.Query) UserDao { - return &userDaoImpl{query: query} +func NewUserDao(query *query.Query) *UserDao { + return &UserDao{query: query} } -func (dao *userDaoImpl) FindByID(ctx context.Context, id uint64) (*models.User, error) { +func (dao *UserDao) FindByID(ctx context.Context, id uint64) (*models.User, error) { user := dao.query.User return user.WithContext(ctx).Where(user.ID.Eq(id)).First() } -func (dao *userDaoImpl) Create(ctx context.Context, model *models.User) (*models.User, error) { +func (dao *UserDao) Create(ctx context.Context, model *models.User) (*models.User, error) { user := dao.query.User if err := user.WithContext(ctx).Create(model); err != nil { return nil, err diff --git a/modules/auth/dao/user_role.go b/modules/auth/dao/user_role.go index 2a75347..d0f58d2 100755 --- a/modules/auth/dao/user_role.go +++ b/modules/auth/dao/user_role.go @@ -6,28 +6,21 @@ import ( "context" ) -type UserRoleDao interface { - Exists(context.Context, int) bool - Create(context.Context, int, int) error - Update(context.Context, int, int) error - Delete(context.Context, int, int) error -} - -type userRoleDaoImpl struct { +type UserRoleDao struct { query *query.Query } -func NewUserRoleDao(query *query.Query) UserRoleDao { - return &userRoleDaoImpl{query: query} +func NewUserRoleDao(query *query.Query) *UserRoleDao { + return &UserRoleDao{query: query} } -func (dao *userRoleDaoImpl) Exists(ctx context.Context, userID int) bool { +func (dao *UserRoleDao) Exists(ctx context.Context, userID int) bool { userRole := dao.query.UserRole count, _ := userRole.WithContext(ctx).Where(userRole.UserID.Eq(uint64(userID))).Count() return count > 0 } -func (dao *userRoleDaoImpl) Create(ctx context.Context, userID, roleID int) error { +func (dao *UserRoleDao) Create(ctx context.Context, userID, roleID int) error { userRole := dao.query.UserRole return userRole.WithContext(ctx).Create(&models.UserRole{ UserID: uint64(userID), @@ -35,13 +28,13 @@ func (dao *userRoleDaoImpl) Create(ctx context.Context, userID, roleID int) erro }) } -func (dao *userRoleDaoImpl) Update(ctx context.Context, userID, roleID int) error { +func (dao *UserRoleDao) Update(ctx context.Context, userID, roleID int) error { userRole := dao.query.UserRole _, err := userRole.WithContext(ctx).Where(userRole.UserID.Eq(uint64(userID))).Update(userRole.RoleID, roleID) return err } -func (dao *userRoleDaoImpl) Delete(ctx context.Context, userID, roleID int) error { +func (dao *UserRoleDao) Delete(ctx context.Context, userID, roleID int) error { userRole := dao.query.UserRole _, err := userRole.WithContext(ctx). Where(userRole.UserID.Eq(uint64(userID))). diff --git a/modules/auth/dao/user_role_test.go b/modules/auth/dao/user_role_test.go index 27b9a54..d47a3d0 100755 --- a/modules/auth/dao/user_role_test.go +++ b/modules/auth/dao/user_role_test.go @@ -24,7 +24,7 @@ type UserRoleInjectParams struct { dig.In DB *gorm.DB - Dao UserRoleDao + Dao *UserRoleDao Query *query.Query Faker *gofakeit.Faker } diff --git a/modules/auth/dao/user_test.go b/modules/auth/dao/user_test.go index 38be891..bb3d58d 100755 --- a/modules/auth/dao/user_test.go +++ b/modules/auth/dao/user_test.go @@ -24,7 +24,7 @@ type UserInjectParams struct { dig.In DB *gorm.DB - Dao UserDao + Dao *UserDao Query *query.Query Faker *gofakeit.Faker } diff --git a/modules/auth/service/role.go b/modules/auth/service/role.go index fa55b36..78d1935 100755 --- a/modules/auth/service/role.go +++ b/modules/auth/service/role.go @@ -10,15 +10,7 @@ import ( "context" ) -type RoleService interface { - GetByFilter(context.Context, dto.RoleRequestFilter, request.PageFilter) (*response.PageResponse[*models.SysRole], error) - Create(context.Context, dto.RoleRequestForm) (*models.SysRole, error) - Tree(context.Context) ([]*dto.RoleTree, error) - UpdateByID(context.Context, uint64, dto.RoleRequestForm) (*models.SysRole, error) - DeleteByID(context.Context, uint64) error -} - -type roleService struct { +type RoleService struct { dao dao.RoleDao uuid *uuid.Generator } @@ -26,14 +18,14 @@ type roleService struct { func NewRoleService( dao dao.RoleDao, uuid *uuid.Generator, -) RoleService { - return &roleService{ +) *RoleService { + return &RoleService{ dao: dao, uuid: uuid, } } -func (svc *roleService) GetByFilter( +func (svc *RoleService) GetByFilter( ctx context.Context, filter dto.RoleRequestFilter, page request.PageFilter, @@ -49,7 +41,7 @@ func (svc *roleService) GetByFilter( }, nil } -func (svc *roleService) treeMaker(ctx context.Context, models []*models.SysRole, pid uint64) []*dto.RoleTree { +func (svc *RoleService) treeMaker(ctx context.Context, models []*models.SysRole, pid uint64) []*dto.RoleTree { items := []*dto.RoleTree{} for _, model := range models { if model.ParentID == pid { @@ -66,7 +58,7 @@ func (svc *roleService) treeMaker(ctx context.Context, models []*models.SysRole, return items } -func (svc *roleService) Tree(ctx context.Context) ([]*dto.RoleTree, error) { +func (svc *RoleService) Tree(ctx context.Context) ([]*dto.RoleTree, error) { models, err := svc.dao.All(ctx) if err != nil { return nil, err @@ -75,7 +67,7 @@ func (svc *roleService) Tree(ctx context.Context) ([]*dto.RoleTree, error) { return svc.treeMaker(ctx, models, 0), nil } -func (svc *roleService) Create(ctx context.Context, req dto.RoleRequestForm) (*models.SysRole, error) { +func (svc *RoleService) Create(ctx context.Context, req dto.RoleRequestForm) (*models.SysRole, error) { model := models.SysRole{ UUID: svc.uuid.MustGenerate(), Name: req.Name, @@ -84,7 +76,7 @@ func (svc *roleService) Create(ctx context.Context, req dto.RoleRequestForm) (*m } return svc.dao.Create(ctx, &model) } -func (svc *roleService) UpdateByID(ctx context.Context, id uint64, req dto.RoleRequestForm) (*models.SysRole, error) { +func (svc *RoleService) UpdateByID(ctx context.Context, id uint64, req dto.RoleRequestForm) (*models.SysRole, error) { model, err := svc.dao.FindByID(ctx, id) if err != nil { return nil, err @@ -97,6 +89,6 @@ func (svc *roleService) UpdateByID(ctx context.Context, id uint64, req dto.RoleR return svc.dao.UpdateByID(ctx, model) } -func (svc *roleService) DeleteByID(ctx context.Context, id uint64) error { +func (svc *RoleService) DeleteByID(ctx context.Context, id uint64) error { return svc.dao.DeleteByID(ctx, id) } diff --git a/modules/auth/service/user.go b/modules/auth/service/user.go index 7c3907c..8f0d816 100755 --- a/modules/auth/service/user.go +++ b/modules/auth/service/user.go @@ -8,13 +8,7 @@ import ( "context" ) -type UserService interface { - AttachRole(context.Context, int, int) error - AuthMatchPassword(context.Context, *dto.LoginRequestForm) (*models.User, error) - GenerateJWTTokenFromUser(context.Context, *models.User) (string, error) -} - -type userService struct { +type UserService struct { userRoleDao dao.UserRoleDao userDao dao.UserDao jwt *jwt.JWT @@ -24,28 +18,28 @@ func NewUserService( userRoleDao dao.UserRoleDao, userDao dao.UserDao, jwt *jwt.JWT, -) UserService { - return &userService{ +) *UserService { + return &UserService{ userRoleDao: userRoleDao, userDao: userDao, jwt: jwt, } } -func (svc *userService) AttachRole(ctx context.Context, userID, roleID int) error { +func (svc *UserService) AttachRole(ctx context.Context, userID, roleID int) error { if svc.userRoleDao.Exists(ctx, userID) { return svc.userRoleDao.Update(ctx, userID, roleID) } return svc.userRoleDao.Create(ctx, userID, roleID) } -func (svc *userService) DetachRole(ctx context.Context, userID, roleID int) error { +func (svc *UserService) DetachRole(ctx context.Context, userID, roleID int) error { if !svc.userRoleDao.Exists(ctx, userID) { return nil } return svc.userRoleDao.Delete(ctx, userID, roleID) } -func (svc *userService) AuthMatchPassword(ctx context.Context, req *dto.LoginRequestForm) (*models.User, error) { +func (svc *UserService) AuthMatchPassword(ctx context.Context, req *dto.LoginRequestForm) (*models.User, error) { return &models.User{ ID: 10, UUID: "1", @@ -57,7 +51,7 @@ func (svc *userService) AuthMatchPassword(ctx context.Context, req *dto.LoginReq }, nil } -func (svc *userService) GenerateJWTTokenFromUser(ctx context.Context, user *models.User) (string, error) { +func (svc *UserService) GenerateJWTTokenFromUser(ctx context.Context, user *models.User) (string, error) { return svc.jwt.CreateToken(svc.jwt.CreateClaims(jwt.BaseClaims{ UID: user.ID, Role: user.RoleID, diff --git a/modules/system/controller/captcha.go b/modules/system/controller/captcha.go index 9f8c616..c4d8691 100755 --- a/modules/system/controller/captcha.go +++ b/modules/system/controller/captcha.go @@ -7,11 +7,7 @@ import ( "github.com/gin-gonic/gin" ) -type CaptchaController interface { - Show(*gin.Context) (*captcha.CaptchaResponse, error) -} - -type captchaControllerImpl struct { +type CaptchaController struct { conf *config.Config captcha *captcha.Captcha } @@ -19,13 +15,13 @@ type captchaControllerImpl struct { func NewCaptchaController( conf *config.Config, captcha *captcha.Captcha, -) CaptchaController { - return &captchaControllerImpl{ +) *CaptchaController { + return &CaptchaController{ conf: conf, captcha: captcha, } } -func (c *captchaControllerImpl) Show(ctx *gin.Context) (*captcha.CaptchaResponse, error) { +func (c *CaptchaController) Show(ctx *gin.Context) (*captcha.CaptchaResponse, error) { return c.captcha.Generate() } diff --git a/modules/system/dao/dao.go b/modules/system/dao/dao.go index 45e4dca..11a75c0 100644 --- a/modules/system/dao/dao.go +++ b/modules/system/dao/dao.go @@ -8,20 +8,16 @@ import ( "gorm.io/gorm" ) -type Dao interface { - Release(context.Context, int, string) error -} - -type DaoImpl struct { +type Dao struct { Conf *config.Config DB *gorm.DB } -func NewDao(DB *gorm.DB) Dao { - return &DaoImpl{DB: DB} +func NewDao(DB *gorm.DB) *Dao { + return &Dao{DB: DB} } -func (c *DaoImpl) Release(ctx context.Context, a int, b string) error { +func (c *Dao) Release(ctx context.Context, a int, b string) error { if a == 20 { return errors.New("A cant't be 20 ") } diff --git a/modules/system/dao/dao_test.go b/modules/system/dao/dao_test.go index e52861d..677b4a3 100644 --- a/modules/system/dao/dao_test.go +++ b/modules/system/dao/dao_test.go @@ -48,7 +48,7 @@ func TestDaoImpl_Release(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - c := &DaoImpl{ + c := &Dao{ Conf: tt.fields.Conf, DB: tt.fields.DB, } diff --git a/modules/system/service/service.go b/modules/system/service/service.go index 9bbc477..bb1bd63 100644 --- a/modules/system/service/service.go +++ b/modules/system/service/service.go @@ -4,13 +4,10 @@ import ( "atom/modules/system/dao" ) -type SystemService interface { -} - -type systemService struct { +type SystemService struct { dao dao.Dao } -func NewSystemService(dao dao.Dao) SystemService { - return &systemService{dao: dao} +func NewSystemService(dao dao.Dao) *SystemService { + return &SystemService{dao: dao} }