387 lines
13 KiB
Go
387 lines
13 KiB
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
|
|
"next-terminal/server/common"
|
|
"next-terminal/server/model"
|
|
)
|
|
|
|
var AuthorisedAssetRepository = new(authorisedAssetRepository)
|
|
|
|
type authorisedAssetRepository struct {
|
|
baseRepository
|
|
}
|
|
|
|
func (r authorisedAssetRepository) Find(c context.Context, pageIndex, pageSize int, userId, departmentId, assetGroupId, assetId string) (o []model.AuthorisedAsset, total int64, err error) {
|
|
db := r.GetDB(c).Model(&model.AuthorisedAsset{})
|
|
|
|
if userId != "" {
|
|
db = db.Where("user_id = ?", userId)
|
|
}
|
|
if departmentId != "" {
|
|
db = db.Where("department_id = ?", departmentId)
|
|
}
|
|
if assetGroupId != "" {
|
|
db = db.Where("asset_group_id = ?", assetGroupId)
|
|
}
|
|
if assetId != "" {
|
|
db = db.Where("asset_id = ?", assetId)
|
|
}
|
|
|
|
err = db.Count(&total).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
err = db.Order("created desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error
|
|
return
|
|
}
|
|
|
|
func (r authorisedAssetRepository) FindById(c context.Context, id string) (o model.AuthorisedAsset, err error) {
|
|
err = r.GetDB(c).Where("id = ?", id).First(&o).Error
|
|
return
|
|
}
|
|
|
|
func (r authorisedAssetRepository) Create(c context.Context, o *model.AuthorisedAsset) error {
|
|
o.Created = common.NowJsonTime()
|
|
return r.GetDB(c).Create(o).Error
|
|
}
|
|
|
|
func (r authorisedAssetRepository) CreateInBatches(c context.Context, items []model.AuthorisedAsset) error {
|
|
for i := range items {
|
|
items[i].Created = common.NowJsonTime()
|
|
}
|
|
return r.GetDB(c).CreateInBatches(items, 100).Error
|
|
}
|
|
|
|
func (r authorisedAssetRepository) UpdateById(c context.Context, o *model.AuthorisedAsset) error {
|
|
return r.GetDB(c).Updates(o).Error
|
|
}
|
|
|
|
func (r authorisedAssetRepository) DeleteById(c context.Context, id string) error {
|
|
return r.GetDB(c).Where("id = ?", id).Delete(&model.AuthorisedAsset{}).Error
|
|
}
|
|
|
|
func (r authorisedAssetRepository) Selected(c context.Context, expect, userId, departmentId, assetId string) (result []string, err error) {
|
|
var items []model.AuthorisedAsset
|
|
db := r.GetDB(c)
|
|
switch expect {
|
|
case "userId":
|
|
db = db.Select("user_id")
|
|
case "departmentId":
|
|
db = db.Select("department_id")
|
|
case "assetId":
|
|
db = db.Select("asset_id")
|
|
case "assetGroupId":
|
|
db = db.Select("asset_group_id")
|
|
}
|
|
|
|
if userId != "" {
|
|
db = db.Where("user_id = ?", userId)
|
|
}
|
|
if departmentId != "" {
|
|
db = db.Where("department_id = ?", departmentId)
|
|
}
|
|
if assetId != "" {
|
|
db = db.Where("asset_id = ?", assetId)
|
|
}
|
|
|
|
err = db.Find(&items).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
for _, item := range items {
|
|
switch expect {
|
|
case "userId":
|
|
if item.UserId != "" {
|
|
result = append(result, item.UserId)
|
|
}
|
|
case "departmentId":
|
|
if item.DepartmentId != "" {
|
|
result = append(result, item.DepartmentId)
|
|
}
|
|
case "assetId":
|
|
if item.AssetId != "" {
|
|
result = append(result, item.AssetId)
|
|
}
|
|
case "assetGroupId":
|
|
if item.AssetGroupId != "" {
|
|
result = append(result, item.AssetGroupId)
|
|
}
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
func (r authorisedAssetRepository) FindWithDetails(c context.Context, pageIndex, pageSize int, userId, departmentId, assetGroupId, assetId string) (o []map[string]interface{}, total int64, err error) {
|
|
db := r.GetDB(c).Table("authorised_assets").
|
|
Select(`authorised_assets.id,
|
|
strftime('%s', authorised_assets.created) * 1000 as "createdAt",
|
|
authorised_assets.expired_at as "expiredAt",
|
|
authorised_assets.user_id as "userId", users.nickname as "userName",
|
|
authorised_assets.department_id as "departmentId", departments.name as "departmentName",
|
|
authorised_assets.asset_id as "assetId", assets.name as "assetName",
|
|
authorised_assets.asset_group_id as "assetGroupId", asset_groups.name as "assetGroupName",
|
|
authorised_assets.strategy_id as "strategyId", strategies.name as "strategyName"`).
|
|
Joins("left join users on users.id = authorised_assets.user_id").
|
|
Joins("left join departments on departments.id = authorised_assets.department_id").
|
|
Joins("left join assets on assets.id = authorised_assets.asset_id").
|
|
Joins("left join asset_groups on asset_groups.id = authorised_assets.asset_group_id").
|
|
Joins("left join strategies on strategies.id = authorised_assets.strategy_id")
|
|
|
|
dbCounter := r.GetDB(c).Model(&model.AuthorisedAsset{})
|
|
|
|
if userId != "" {
|
|
db = db.Where("authorised_assets.user_id = ?", userId)
|
|
dbCounter = dbCounter.Where("user_id = ?", userId)
|
|
}
|
|
if departmentId != "" {
|
|
db = db.Where("authorised_assets.department_id = ?", departmentId)
|
|
dbCounter = dbCounter.Where("department_id = ?", departmentId)
|
|
}
|
|
if assetGroupId != "" {
|
|
db = db.Where("authorised_assets.asset_group_id = ?", assetGroupId)
|
|
dbCounter = dbCounter.Where("asset_group_id = ?", assetGroupId)
|
|
}
|
|
if assetId != "" {
|
|
db = db.Where("authorised_assets.asset_id = ?", assetId)
|
|
dbCounter = dbCounter.Where("asset_id = ?", assetId)
|
|
}
|
|
|
|
err = dbCounter.Count(&total).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
err = db.Order("authorised_assets.created desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error
|
|
return
|
|
}
|
|
|
|
var AuthorisedDatabaseAssetRepository = new(authorisedDatabaseAssetRepository)
|
|
|
|
type authorisedDatabaseAssetRepository struct {
|
|
baseRepository
|
|
}
|
|
|
|
func (r authorisedDatabaseAssetRepository) Find(c context.Context, pageIndex, pageSize int, userId, departmentId, databaseAssetId string) (o []model.AuthorisedDatabaseAsset, total int64, err error) {
|
|
db := r.GetDB(c).Model(&model.AuthorisedDatabaseAsset{})
|
|
|
|
if userId != "" {
|
|
db = db.Where("user_id = ?", userId)
|
|
}
|
|
if departmentId != "" {
|
|
db = db.Where("department_id = ?", departmentId)
|
|
}
|
|
if databaseAssetId != "" {
|
|
db = db.Where("database_asset_id = ?", databaseAssetId)
|
|
}
|
|
|
|
err = db.Count(&total).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
err = db.Order("created desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error
|
|
return
|
|
}
|
|
|
|
func (r authorisedDatabaseAssetRepository) FindById(c context.Context, id string) (o model.AuthorisedDatabaseAsset, err error) {
|
|
err = r.GetDB(c).Where("id = ?", id).First(&o).Error
|
|
return
|
|
}
|
|
|
|
func (r authorisedDatabaseAssetRepository) Create(c context.Context, o *model.AuthorisedDatabaseAsset) error {
|
|
o.Created = common.NowJsonTime()
|
|
return r.GetDB(c).Create(o).Error
|
|
}
|
|
|
|
func (r authorisedDatabaseAssetRepository) CreateInBatches(c context.Context, items []model.AuthorisedDatabaseAsset) error {
|
|
for i := range items {
|
|
items[i].Created = common.NowJsonTime()
|
|
}
|
|
return r.GetDB(c).CreateInBatches(items, 100).Error
|
|
}
|
|
|
|
func (r authorisedDatabaseAssetRepository) UpdateById(c context.Context, o *model.AuthorisedDatabaseAsset) error {
|
|
return r.GetDB(c).Updates(o).Error
|
|
}
|
|
|
|
func (r authorisedDatabaseAssetRepository) DeleteById(c context.Context, id string) error {
|
|
return r.GetDB(c).Where("id = ?", id).Delete(&model.AuthorisedDatabaseAsset{}).Error
|
|
}
|
|
|
|
func (r authorisedDatabaseAssetRepository) Selected(c context.Context, expect, userId, departmentId, databaseAssetId string) (result []string, err error) {
|
|
var items []model.AuthorisedDatabaseAsset
|
|
db := r.GetDB(c)
|
|
switch expect {
|
|
case "userId":
|
|
db = db.Select("user_id")
|
|
case "departmentId":
|
|
db = db.Select("department_id")
|
|
case "databaseAssetId":
|
|
db = db.Select("database_asset_id")
|
|
}
|
|
|
|
if userId != "" {
|
|
db = db.Where("user_id = ?", userId)
|
|
}
|
|
if departmentId != "" {
|
|
db = db.Where("department_id = ?", departmentId)
|
|
}
|
|
if databaseAssetId != "" {
|
|
db = db.Where("database_asset_id = ?", databaseAssetId)
|
|
}
|
|
|
|
err = db.Find(&items).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
for _, item := range items {
|
|
switch expect {
|
|
case "userId":
|
|
if item.UserId != "" {
|
|
result = append(result, item.UserId)
|
|
}
|
|
case "departmentId":
|
|
if item.DepartmentId != "" {
|
|
result = append(result, item.DepartmentId)
|
|
}
|
|
case "databaseAssetId":
|
|
if item.DatabaseAssetId != "" {
|
|
result = append(result, item.DatabaseAssetId)
|
|
}
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
func (r authorisedDatabaseAssetRepository) FindWithDetails(c context.Context, pageIndex, pageSize int, userId, departmentId, databaseAssetId string) (o []map[string]interface{}, total int64, err error) {
|
|
db := r.GetDB(c).Table("authorised_database_assets").
|
|
Select(`authorised_database_assets.id,
|
|
strftime('%s', authorised_database_assets.created) * 1000 as "createdAt",
|
|
authorised_database_assets.expired_at as "expiredAt",
|
|
authorised_database_assets.user_id as "userId", users.nickname as "userName",
|
|
authorised_database_assets.department_id as "departmentId", departments.name as "departmentName",
|
|
authorised_database_assets.database_asset_id as "databaseAssetId", database_assets.name as "databaseAssetName",
|
|
authorised_database_assets.strategy_id as "strategyId", strategies.name as "strategyName"`).
|
|
Joins("left join users on users.id = authorised_database_assets.user_id").
|
|
Joins("left join departments on departments.id = authorised_database_assets.department_id").
|
|
Joins("left join database_assets on database_assets.id = authorised_database_assets.database_asset_id").
|
|
Joins("left join strategies on strategies.id = authorised_database_assets.strategy_id")
|
|
|
|
dbCounter := r.GetDB(c).Model(&model.AuthorisedDatabaseAsset{})
|
|
|
|
if userId != "" {
|
|
db = db.Where("authorised_database_assets.user_id = ?", userId)
|
|
dbCounter = dbCounter.Where("user_id = ?", userId)
|
|
}
|
|
if departmentId != "" {
|
|
db = db.Where("authorised_database_assets.department_id = ?", departmentId)
|
|
dbCounter = dbCounter.Where("department_id = ?", departmentId)
|
|
}
|
|
if databaseAssetId != "" {
|
|
db = db.Where("authorised_database_assets.database_asset_id = ?", databaseAssetId)
|
|
dbCounter = dbCounter.Where("database_asset_id = ?", databaseAssetId)
|
|
}
|
|
|
|
err = dbCounter.Count(&total).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
err = db.Order("authorised_database_assets.created desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error
|
|
return
|
|
}
|
|
|
|
var AuthorisedWebsiteRepository = new(authorisedWebsiteRepository)
|
|
|
|
type authorisedWebsiteRepository struct {
|
|
baseRepository
|
|
}
|
|
|
|
func (r authorisedWebsiteRepository) Find(c context.Context, pageIndex, pageSize int, userId, departmentId, websiteId string) (o []model.AuthorisedWebsite, total int64, err error) {
|
|
db := r.GetDB(c).Model(&model.AuthorisedWebsite{})
|
|
|
|
if userId != "" {
|
|
db = db.Where("user_id = ?", userId)
|
|
}
|
|
if departmentId != "" {
|
|
db = db.Where("department_id = ?", departmentId)
|
|
}
|
|
if websiteId != "" {
|
|
db = db.Where("website_id = ?", websiteId)
|
|
}
|
|
|
|
err = db.Count(&total).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
err = db.Order("created desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error
|
|
return
|
|
}
|
|
|
|
func (r authorisedWebsiteRepository) FindById(c context.Context, id string) (o model.AuthorisedWebsite, err error) {
|
|
err = r.GetDB(c).Where("id = ?", id).First(&o).Error
|
|
return
|
|
}
|
|
|
|
func (r authorisedWebsiteRepository) Create(c context.Context, o *model.AuthorisedWebsite) error {
|
|
o.Created = common.NowJsonTime()
|
|
return r.GetDB(c).Create(o).Error
|
|
}
|
|
|
|
func (r authorisedWebsiteRepository) CreateInBatches(c context.Context, items []model.AuthorisedWebsite) error {
|
|
for i := range items {
|
|
items[i].Created = common.NowJsonTime()
|
|
}
|
|
return r.GetDB(c).CreateInBatches(items, 100).Error
|
|
}
|
|
|
|
func (r authorisedWebsiteRepository) DeleteById(c context.Context, id string) error {
|
|
return r.GetDB(c).Where("id = ?", id).Delete(&model.AuthorisedWebsite{}).Error
|
|
}
|
|
|
|
func (r authorisedWebsiteRepository) FindWithDetails(c context.Context, pageIndex, pageSize int, userId, departmentId, websiteId string) (o []map[string]interface{}, total int64, err error) {
|
|
db := r.GetDB(c).Table("authorised_websites").
|
|
Select(`authorised_websites.id,
|
|
strftime('%s', authorised_websites.created) * 1000 as "createdAt",
|
|
authorised_websites.expired_at as "expiredAt",
|
|
authorised_websites.user_id as "userId", users.nickname as "userName",
|
|
authorised_websites.department_id as "departmentId", departments.name as "departmentName",
|
|
authorised_websites.website_id as "websiteId", websites.name as "websiteName",
|
|
authorised_websites.strategy_id as "strategyId", strategies.name as "strategyName"`).
|
|
Joins("left join users on users.id = authorised_websites.user_id").
|
|
Joins("left join departments on departments.id = authorised_websites.department_id").
|
|
Joins("left join websites on websites.id = authorised_websites.website_id").
|
|
Joins("left join strategies on strategies.id = authorised_websites.strategy_id")
|
|
|
|
dbCounter := r.GetDB(c).Model(&model.AuthorisedWebsite{})
|
|
|
|
if userId != "" {
|
|
db = db.Where("authorised_websites.user_id = ?", userId)
|
|
dbCounter = dbCounter.Where("user_id = ?", userId)
|
|
}
|
|
if departmentId != "" {
|
|
db = db.Where("authorised_websites.department_id = ?", departmentId)
|
|
dbCounter = dbCounter.Where("department_id = ?", departmentId)
|
|
}
|
|
if websiteId != "" {
|
|
db = db.Where("authorised_websites.website_id = ?", websiteId)
|
|
dbCounter = dbCounter.Where("website_id = ?", websiteId)
|
|
}
|
|
|
|
err = dbCounter.Count(&total).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
err = db.Order("authorised_websites.created desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error
|
|
return
|
|
}
|
|
|
|
|