Browse Source

Optimization

Vova Tkach 6 years ago
parent
commit
8806ffb35a
1 changed files with 5 additions and 31 deletions
  1. 5 31
      modules/module_blog_categories.go

+ 5 - 31
modules/module_blog_categories.go

@@ -149,33 +149,8 @@ func (this *Modules) blog_ActionCategoryUpdate(wrap *wrapper.Wrapper, pf_id, pf_
 		return err
 	} else {
 		// Parent is changed, move category to new parent
-		// Load target category data
-		data := utils.MySql_blog_category{
-			A_id:   0,
-			A_user: 0,
-		}
-		err := wrap.DB.QueryRow(`
-			SELECT
-				id,
-				user
-			FROM
-				blog_cats
-			WHERE
-				id > 1 AND
-				id = ?
-			LIMIT 1;`,
-			utils.StrToInt(pf_id),
-		).Scan(
-			&data.A_id,
-			&data.A_user,
-		)
-		if err != nil {
-			return err
-		}
-
-		///////////////////////////////////////////////////////////////////////
 		// Start transaction with table lock
-		_, err = wrap.DB.Exec("LOCK TABLE blog_cats WRITE;")
+		_, err := wrap.DB.Exec("LOCK TABLE blog_cats WRITE;")
 		if err != nil {
 			return err
 		}
@@ -184,12 +159,12 @@ func (this *Modules) blog_ActionCategoryUpdate(wrap *wrapper.Wrapper, pf_id, pf_
 			return err
 		}
 
-		// Delete
+		// Shift
 		if _, err = tx.Exec("SELECT @ml := lft, @mr := rgt FROM blog_cats WHERE id = ?;", pf_id); err != nil {
 			tx.Rollback()
 			return err
 		}
-		if _, err = tx.Exec("DELETE FROM blog_cats WHERE id = ?;", pf_id); err != nil {
+		if _, err = tx.Exec("UPDATE blog_cats SET lft = 0, rgt = 0 WHERE id = ?;", pf_id); err != nil {
 			tx.Rollback()
 			return err
 		}
@@ -206,7 +181,7 @@ func (this *Modules) blog_ActionCategoryUpdate(wrap *wrapper.Wrapper, pf_id, pf_
 			return err
 		}
 
-		// Insert
+		// Update
 		if _, err = tx.Exec("SELECT @mr := rgt FROM blog_cats WHERE id = ?;", pf_parent); err != nil {
 			tx.Rollback()
 			return err
@@ -223,7 +198,7 @@ func (this *Modules) blog_ActionCategoryUpdate(wrap *wrapper.Wrapper, pf_id, pf_
 			tx.Rollback()
 			return err
 		}
-		if _, err = tx.Exec("INSERT INTO blog_cats (id, user, name, alias, lft, rgt) VALUES (?, ?, ?, ?, @mr, @mr + 1);", data.A_id, data.A_user, pf_name, pf_alias); err != nil {
+		if _, err = tx.Exec("UPDATE blog_cats SET name = ?, alias = ?, lft = @mr, rgt = @mr + 1 WHERE id = ?;", pf_name, pf_alias, pf_id); err != nil {
 			tx.Rollback()
 			return err
 		}
@@ -237,7 +212,6 @@ func (this *Modules) blog_ActionCategoryUpdate(wrap *wrapper.Wrapper, pf_id, pf_
 		if err != nil {
 			return err
 		}
-		///////////////////////////////////////////////////////////////////////
 	}
 
 	return nil