-
Notifications
You must be signed in to change notification settings - Fork 66
/
project-perm.go
36 lines (32 loc) · 1.14 KB
/
project-perm.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package repo
import (
"fmt"
"github.com/aaronchen2k/deeptest/internal/pkg/consts"
"github.com/aaronchen2k/deeptest/internal/server/modules/model"
logUtils "github.com/aaronchen2k/deeptest/pkg/lib/log"
"gorm.io/gorm"
)
type ProjectPermRepo struct {
*BaseRepo `inject:""`
DB *gorm.DB `inject:""`
}
func (r *ProjectPermRepo) GetRecordByNameAndAction(tenantId consts.TenantId, name, action string) (projectPerm model.ProjectPerm, err error) {
err = r.GetDB(tenantId).Model(&model.ProjectPerm{}).
Where("name = ?", name).
Where("act = ?", action).
First(&projectPerm).Error
return
}
func (r *ProjectPermRepo) CreateIfNotExist(tenantId consts.TenantId, perms []model.ProjectPerm) (successCount int, failItems []string) {
_ = r.GetDB(tenantId).Delete(&model.ProjectPerm{}, "id > 0").Error
for _, perm := range perms {
err := r.GetDB(tenantId).Model(&model.ProjectPerm{}).Create(&perm).Error
if err != nil {
logUtils.Errorf("添加权限%s失败,错误%s。", perm.Name, err.Error())
failItems = append(failItems, fmt.Sprintf("添加权限%s失败,错误%s", perm.Name, err.Error()))
} else {
successCount++
}
}
return
}