Replace coordinate with postgis geometry

This commit is contained in:
WQY\qiong
2023-04-29 10:09:12 +08:00
parent 089a12e137
commit 0ac4a88295
4 changed files with 39 additions and 28 deletions

View File

@@ -38,7 +38,6 @@ class Reservoir(object):
self.f_type = f"'{self.type}'"
self.f_id = f"'{self.id}'"
self.f_coord = f"'({self.x}, {self.y})'"
self.f_head = self.head
self.f_pattern = f"'{self.pattern}'" if self.pattern != None else 'null'
@@ -61,9 +60,9 @@ def set_reservoir_cmd(name: str, cs: ChangeSet) -> DbChangeSet:
new = Reservoir(raw_new)
redo_sql = f"update reservoirs set head = {new.f_head}, pattern = {new.f_pattern} where id = {new.f_id};"
redo_sql += f"\nupdate coordinates set coord = {new.f_coord} where node = {new.f_id};"
redo_sql += f"\n{sql_update_coord(new.id, new.x, new.y)}"
undo_sql = f"update coordinates set coord = {old.f_coord} where node = {old.f_id};"
undo_sql = sql_update_coord(old.id, old.x, old.y)
undo_sql += f"\nupdate reservoirs set head = {old.f_head}, pattern = {old.f_pattern} where id = {old.f_id};"
redo_cs = g_update_prefix | new.as_dict()
@@ -85,9 +84,9 @@ def add_reservoir_cmd(name: str, cs: ChangeSet) -> DbChangeSet:
redo_sql = f"insert into _node (id, type) values ({new.f_id}, {new.f_type});"
redo_sql += f"\ninsert into reservoirs (id, head, pattern) values ({new.f_id}, {new.f_head}, {new.f_pattern});"
redo_sql += f"\ninsert into coordinates (node, coord) values ({new.f_id}, {new.f_coord});"
redo_sql += f"\n{sql_insert_coord(new.id, new.x, new.y)}"
undo_sql = f"delete from coordinates where node = {new.f_id};"
undo_sql = sql_delete_coord(new.id)
undo_sql += f"\ndelete from reservoirs where id = {new.f_id};"
undo_sql += f"\ndelete from _node where id = {new.f_id};"
@@ -108,13 +107,13 @@ def add_reservoir(name: str, cs: ChangeSet) -> ChangeSet:
def delete_reservoir_cmd(name: str, cs: ChangeSet) -> DbChangeSet:
old = Reservoir(get_reservoir(name, cs.operations[0]['id']))
redo_sql = f"delete from coordinates where node = {old.f_id};"
redo_sql = sql_delete_coord(old.id)
redo_sql += f"\ndelete from reservoirs where id = {old.f_id};"
redo_sql += f"\ndelete from _node where id = {old.f_id};"
undo_sql = f"insert into _node (id, type) values ({old.f_id}, {old.f_type});"
undo_sql += f"\ninsert into reservoirs (id, head, pattern) values ({old.f_id}, {old.f_head}, {old.f_pattern});"
undo_sql += f"\ninsert into coordinates (node, coord) values ({old.f_id}, {old.f_coord});"
undo_sql += f"\n{sql_insert_coord(old.id, old.x, old.y)}"
redo_cs = g_delete_prefix | old.as_id_dict()
undo_cs = g_add_prefix | old.as_dict()