|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package db
-
- import (
- jcstypes "gitlink.org.cn/cloudream/jcs-pub/common/types"
- "gorm.io/gorm/clause"
- )
-
- type UserSpaceDB struct {
- *DB
- }
-
- func (db *DB) UserSpace() *UserSpaceDB {
- return &UserSpaceDB{DB: db}
- }
-
- func (db *UserSpaceDB) GetByID(ctx SQLContext, spaceID jcstypes.UserSpaceID) (jcstypes.UserSpace, error) {
- var stg jcstypes.UserSpace
- err := ctx.Table("UserSpace").First(&stg, spaceID).Error
- return stg, err
- }
-
- func (UserSpaceDB) GetAllIDs(ctx SQLContext) ([]jcstypes.UserSpaceID, error) {
- var stgs []jcstypes.UserSpaceID
- err := ctx.Table("UserSpace").Select("UserSpaceID").Find(&stgs).Error
- return stgs, err
- }
-
- func (db *UserSpaceDB) BatchGetByID(ctx SQLContext, spaceIDs []jcstypes.UserSpaceID) ([]jcstypes.UserSpace, error) {
- var stgs []jcstypes.UserSpace
- err := ctx.Table("UserSpace").Find(&stgs, "UserSpaceID IN (?)", spaceIDs).Error
- return stgs, err
- }
-
- func (db *UserSpaceDB) GetAll(ctx SQLContext) ([]jcstypes.UserSpace, error) {
- var stgs []jcstypes.UserSpace
- err := ctx.Table("UserSpace").Find(&stgs).Error
- return stgs, err
- }
-
- func (db *UserSpaceDB) BatchGetAllSpaceIDs(ctx SQLContext, start int, count int) ([]jcstypes.UserSpaceID, error) {
- var ret []jcstypes.UserSpaceID
- err := ctx.Table("UserSpace").Select("UserSpaceID").Find(&ret).Limit(count).Offset(start).Error
- return ret, err
- }
-
- func (db *UserSpaceDB) GetByName(ctx SQLContext, name string) (jcstypes.UserSpace, error) {
- var stg jcstypes.UserSpace
- err := ctx.Table("UserSpace").Where("Name = ?", name).First(&stg).Error
- return stg, err
- }
-
- func (*UserSpaceDB) Create(ctx SQLContext, space *jcstypes.UserSpace) error {
- return ctx.Table("UserSpace").Create(space).Error
- }
-
- func (*UserSpaceDB) UpdateColumns(ctx SQLContext, space jcstypes.UserSpace, columns ...string) error {
- return ctx.Clauses(clause.OnConflict{
- Columns: []clause.Column{{Name: "UserSpaceID"}},
- DoUpdates: clause.AssignmentColumns(columns),
- }).Create(space).Error
- }
-
- func (*UserSpaceDB) DeleteByID(ctx SQLContext, spaceID jcstypes.UserSpaceID) error {
- return ctx.Table("UserSpace").Delete(jcstypes.UserSpace{}, "UserSpaceID = ?", spaceID).Error
- }
-
- func (*UserSpaceDB) GetByPubShardsID(ctx SQLContext, pubShardsID jcstypes.PubShardsID) (jcstypes.UserSpace, error) {
- var us jcstypes.UserSpace
- err := ctx.Table("UserSpace").Where("Storage->'$.type' = 'PubShards' and Storage->'$.pubShardsID' = ?", pubShardsID).First(&us).Error
- return us, err
- }
-
- func (*UserSpaceDB) GetAllPubShards(ctx SQLContext) ([]jcstypes.UserSpace, error) {
- var stgs []jcstypes.UserSpace
- err := ctx.Table("UserSpace").Where("Storage->'$.type' = 'PubShards'").Find(&stgs).Error
- return stgs, err
- }
|