From 9868e9a3a8374d8142c6be19e19f24d2c17242bb Mon Sep 17 00:00:00 2001 From: guosl Date: Sat, 6 Jul 2024 16:02:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=A6=81=E7=94=A8=E5=90=AF?= =?UTF-8?q?=E7=94=A8=E7=BB=84=E7=BB=87=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/models/organization/request.go | 8 ++++++++ internal/repo/organization.go | 7 ++++++- internal/service/organization/organization.go | 10 +++++----- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/internal/models/organization/request.go b/internal/models/organization/request.go index 8560eca..8620fab 100644 --- a/internal/models/organization/request.go +++ b/internal/models/organization/request.go @@ -25,3 +25,11 @@ type SaveOrgReq struct { ParentId uint `json:"parent_id" binding:"required"` Sort int `json:"sort" binding:"required"` } + +type DisableOrgReq struct { + Id uint `json:"id" binding:"required"` +} + +type EnableOrgReq struct { + Id uint `json:"id" binding:"required"` +} diff --git a/internal/repo/organization.go b/internal/repo/organization.go index 9a9dc91..802b301 100644 --- a/internal/repo/organization.go +++ b/internal/repo/organization.go @@ -17,7 +17,7 @@ type OrganizationStatus int const( OrganizationDisableStatus OrganizationStatus = 0 - OrganizationAbleStatus OrganizationStatus = 1 + OrganizationEnableStatus OrganizationStatus = 1 ) // 组织表 @@ -45,6 +45,7 @@ type OrganizationRepo interface{ DelById(ctx context.Context,id uint)(err error) GetOrgs(ctx context.Context)(org []Organization,err error) ExistOrgId(ctx context.Context,id uint)(bool,error) + SetStatus(ctx context.Context,id uint,status OrganizationStatus)error } type orginizationRepo struct{ @@ -89,4 +90,8 @@ func (o *orginizationRepo)ExistOrgId(ctx context.Context,id uint)(bool,error){ } return true,err +} + +func (o *orginizationRepo)SetStatus(ctx context.Context,id uint,status OrganizationStatus)error{ + return o.db.Where("id = ?",id).Update("status",status).Error } \ No newline at end of file diff --git a/internal/service/organization/organization.go b/internal/service/organization/organization.go index f46cdfd..f884772 100644 --- a/internal/service/organization/organization.go +++ b/internal/service/organization/organization.go @@ -47,7 +47,7 @@ func (o *organizationService) CreateOrganization(ctx context.Context, info *orgM Name: info.Name, ParentID: info.ParentId, Sort: uint(info.Sort), - Status: int(repo.OrganizationAbleStatus), + Status: int(repo.OrganizationEnableStatus), } _, err := o.orgRepo.Create(ctx, dbOrg) @@ -130,13 +130,13 @@ func (o *organizationService) OrganizationTree(ctx context.Context) (orgModel.Or return tree, nil } -func (o *organizationService) DisableOrganization(ctx context.Context) error { +func (o *organizationService) DisableOrganization(ctx context.Context, info orgModel.DisableOrgReq) error { // todo 判断有没有权限 // 判断是否成员 - return nil + return o.orgRepo.SetStatus(ctx, info.Id, repo.OrganizationDisableStatus) } -func (o *organizationService) EnableOrganization(ctx context.Context) error { +func (o *organizationService) EnableOrganization(ctx context.Context, info orgModel.EnableOrgReq) error { // todo 判断有没有权限 - return nil + return o.orgRepo.SetStatus(ctx, info.Id, repo.OrganizationEnableStatus) }