🎨 Update database

This commit is contained in:
Daniel 2023-10-16 23:57:09 +08:00
parent dc6fb939fd
commit 7bff544a12
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 15 additions and 2 deletions

View file

@ -554,7 +554,7 @@ func ParseAttributeView(avID string) (ret *AttributeView, err error) {
}
func SaveAttributeView(av *AttributeView) (err error) {
// 做一些数据兼容处理
// 做一些数据兼容和订正处理
now := util.CurrentTimeMillis()
for _, kv := range av.KeyValues {
if KeyTypeBlock == kv.Key.Type {
@ -584,6 +584,13 @@ func SaveAttributeView(av *AttributeView) (err error) {
}
}
// 数据订正 - 行去重
for _, view := range av.Views {
if nil != view.Table {
view.Table.RowIDs = gulu.Str.RemoveDuplicatedElem(view.Table.RowIDs)
}
}
data, err := gulu.JSON.MarshalIndentJSON(av, "", "\t") // TODO: single-line for production
if nil != err {
logging.LogErrorf("marshal attribute view [%s] failed: %s", av.ID, err)

View file

@ -183,7 +183,7 @@ func RenderAttributeView(avID string) (viewable av.Viewable, attrView *av.Attrib
view = attrView.Views[0]
}
// 做一些数据兼容处理,保存的时候也会做 av.SaveAttributeView()
// 做一些数据兼容和订正处理,保存的时候也会做 av.SaveAttributeView()
currentTimeMillis := util.CurrentTimeMillis()
for _, kv := range attrView.KeyValues {
switch kv.Key.Type {
@ -1234,6 +1234,12 @@ func replaceAttributeViewBlock(operation *Operation, tx *Transaction) (err error
for _, v := range attrView.Views {
switch v.LayoutType {
case av.LayoutTypeTable:
for _, rowID := range v.Table.RowIDs {
if rowID == operation.NextID {
return
}
}
for i, rowID := range v.Table.RowIDs {
if rowID == operation.PreviousID {
v.Table.RowIDs[i] = operation.NextID