From 74b73cf64d5c7a6715f8308b41f553cce2cd1766 Mon Sep 17 00:00:00 2001 From: shy Date: Mon, 16 Dec 2024 15:17:17 +0800 Subject: [PATCH] add some --- src/gonganxitong/model/model.go | 10 +++++---- src/gonganxitong/portal.go | 37 ++++++++++++++++++++++++--------- src/gonganxitong/setting.go | 6 ------ 3 files changed, 33 insertions(+), 20 deletions(-) diff --git a/src/gonganxitong/model/model.go b/src/gonganxitong/model/model.go index 5965089..ff075c0 100644 --- a/src/gonganxitong/model/model.go +++ b/src/gonganxitong/model/model.go @@ -200,24 +200,26 @@ type Paymentlist struct { type Meeting struct { db.ModelWithUID PlaceUID string `gorm:"type:char(32);index"` - UserUID string `gorm:"type:char(32);index"` + UserUID string `gorm:"type:char(32)"` Vendor string `gorm:"type:varchar(128)"` UserID string `gorm:"type:varchar(32)"` } type Document struct { db.ModelWithUID PlaceUID string `gorm:"type:char(32);index"` - UserUID string `gorm:"type:char(32);index"` + UserUID string `gorm:"type:char(32)"` FolderID string `gorm:"type:varchar(128)"` Vendor string `gorm:"type:varchar(128)"` } type Contract struct { db.ModelWithUID + PlaceUID string `gorm:"type:char(32);index"` + UserUID string `gorm:"type:char(32)"` } type Photo struct { db.ModelWithUID PlaceUID string `gorm:"type:char(32);index"` - UserUID string `gorm:"type:char(32);index"` + UserUID string `gorm:"type:char(32)"` SpaceID string `gorm:"type:varchar(128)"` AccessToken string `gorm:"type:varchar(512)"` Vendor string `gorm:"type:varchar(128)"` @@ -242,9 +244,9 @@ type Apply struct { } type Allow struct { db.ModelWithUID - ApplyUID string `gorm:"type:char(32)"` PlaceUID string `gorm:"type:char(32);index:idx_place"` UserUID string `gorm:"type:char(32);index:idx_place"` + ApplyUID string `gorm:"type:char(32)"` Status uint8 `gorm:"default:0"` } type Event struct { diff --git a/src/gonganxitong/portal.go b/src/gonganxitong/portal.go index 664199e..68060df 100644 --- a/src/gonganxitong/portal.go +++ b/src/gonganxitong/portal.go @@ -200,6 +200,9 @@ func (s Portal) PlaceRemove(m *ice.Message, arg ...string) { m.Cmdy(s.UserPlace, s.Delete, m.OptionSimple(model.USER_UID, model.UID)) } func (s Portal) PlaceCheck(m *ice.Message, arg ...string) { + if m.PrefixKey() == api.RENZHENGSHOUQUAN_PORTAL { + return + } s.Tables(m, kit.Format("LEFT JOIN %s ON %s = %s and %s IS NULL", s.TableNames(s.UserPlace), s.Key(s.UserPlace, s.Keys(s.Place, model.UID)), @@ -212,30 +215,42 @@ func (s Portal) PlaceCheck(m *ice.Message, arg ...string) { s.Key(s.Place, model.AUTH_UID), ) m.Cmdy(s.Place, s.Table.Select, kit.Format("%s IS NULL", model.USER_UID)) - m.PushAction(s.PlaceTrash) + m.Table(func(value ice.Maps) { m.Push(model.INDEX, m.PrefixKey()) }).DisplayTable() } func (s Portal) PlaceTrash(m *ice.Message, arg ...string) { + m.Cmd(s.PrefixPortal(m), s.AfterPlaceTrash) + defer m.Cmd(s.PrefixPortal(m), s.BeforePlaceTrash) + m.Option("__place_uid", s.Keys(s.Place, model.UID)) for key, _ := range m.Target().Commands { if strings.HasPrefix(key, "_") { continue } - if key == m.CommandKey() { + if kit.IsIn(key, "cleanup", "portal", "service") { continue } - if key == "portal" { + if s.Key(s.UserPlace, model.UID) == kit.Keys(s.TableName(key), model.UID) { continue } - m.Cmd(key, s.PlaceTrash) + if s.Key(s.Place, model.UID) == kit.Keys(s.TableName(key), model.UID) { + continue + } + m.Cmdy(m.Prefix(key), s.PlaceTrash) } + if m.Cmd(s.Place, s.Delete); m.PrefixKey() == api.RENZHENGSHOUQUAN_PORTAL { + m.Cmd(s.UserPlace, s.RemoveBy, model.AUTH_UID, m.Option(model.UID)) + } + m.DisplayTable() } func (s Table) PlaceTrash(m *ice.Message, arg ...string) { - m.Push("key", m.PrefixKey()) - if s.Place == nil { - m.Push("table", "") - m.Push("place_uid", "") + if m.Configv("db") == nil { + return + } + if m.Push("key", m.PrefixKey()); s.Place == nil { + s.RemoveBy(m, kit.Format("%s = ?", m.Option("__place_uid")), m.Option(model.UID)) + m.Push("table", s.TableName(m.CommandKey())).Push(model.PLACE_UID, m.Option("__place_uid")) } else { - m.Push("table", s.TableNames(s.Place)) - m.Push("place_uid", s.Keys(s.Place, model.UID)) + s.RemoveBy(m, "place_uid = ?", m.Option(model.UID)) + m.Push("table", s.TableNames(s.Place)).Push(model.PLACE_UID, "place_uid") } } func (s Portal) PlaceList(m *ice.Message, arg ...string) *ice.Message { @@ -310,6 +325,8 @@ func (s Portal) BeforePlaceCreate(m *ice.Message, arg ...string) {} func (s Portal) AfterPlaceCreate(m *ice.Message, arg ...string) {} func (s Portal) BeforePlaceRemove(m *ice.Message, arg ...string) {} func (s Portal) AfterPlaceRemove(m *ice.Message, arg ...string) {} +func (s Portal) BeforePlaceTrash(m *ice.Message, arg ...string) {} +func (s Portal) AfterPlaceTrash(m *ice.Message, arg ...string) {} func (s Portal) BeforePlaceAuth(m *ice.Message, arg ...string) {} func (s Portal) AfterPlaceAuth(m *ice.Message, arg ...string) {} diff --git a/src/gonganxitong/setting.go b/src/gonganxitong/setting.go index 7e926e1..f0565ae 100644 --- a/src/gonganxitong/setting.go +++ b/src/gonganxitong/setting.go @@ -42,17 +42,11 @@ func (s setting) List(m *ice.Message, arg ...string) { msg := s.Select(m.Spawn(), model.PLACE_UID, arg[0], model.USER_UID, m.Option(model.USER_UID)) msg.Table(func(value ice.Maps) { data[value[model.NAME]] = value[model.VALUE] }) s.Hash.List(m).Table(func(value ice.Maps) { m.Push(model.VALUE, data[value[model.NAME]]) }).Action() - m.Action(s.PlaceTrash) } else if len(arg) == 2 { s.SelectDetail(m, model.PLACE_UID, arg[0], model.USER_UID, m.Option(model.USER_UID), model.NAME, arg[1]) } s.DisplayBase(m, "").DisplayCSS("") } -func (s setting) PlaceTrash(m *ice.Message, arg ...string) { - // m.Cmdy(s.UserPlace, s.Select, model.PLACE_UID, m.Option(model.PLACE_UID)) - m.Cmdy(s.Place, s.Select, model.UID, m.Option(model.PLACE_UID)) - m.DisplayTable() -} func init() { ice.TeamCtxCmd(setting{Table: newTable()}) }