Skip to content

Instantly share code, notes, and snippets.

@Cromeshnic
Created March 2, 2020 03:56
Show Gist options
  • Save Cromeshnic/0252d17b08279edf89199380aea692ef to your computer and use it in GitHub Desktop.
Save Cromeshnic/0252d17b08279edf89199380aea692ef to your computer and use it in GitHub Desktop.
import bitel.billing.server.util.*;
import java.sql.*;
import java.util.*;
import bitel.billing.server.tariff.*;
import bitel.billing.server.contract.bean.*;
public void CopyNode(node_id,new_node_id,mtree_id,new_mtree_id,con)
{
query = "SELECT id, type, data, pos FROM mtree_node WHERE parent_node='"+node_id+"' and mtree_id='"+mtree_id+"'";
ps = con.prepareStatement(query);
rs = ps.executeQuery();
while (rs.next())
{
node_id_ = rs.getInt(1);
type = rs.getString(2);
data = rs.getString(3);
pos = rs.getInt(4);
new_node_ps = con.prepareStatement( "INSERT INTO mtree_node (parent_node,mtree_id,type,data,pos) VALUES (?, ?, ?, ?, ?)" );
new_node_ps.setInt( 1, new_node_id );
new_node_ps.setInt( 2, new_mtree_id );
new_node_ps.setString( 3, type );
new_node_ps.setString( 4, data );
new_node_ps.setInt( 5, pos );
new_node_ps.executeUpdate();
new_node_rs = con.prepareStatement( "SELECT LAST_INSERT_ID()" ).executeQuery();
new_node_rs.next();
new_node_id_ = new_node_rs.getInt(1);
CopyNode(node_id_,new_node_id_,mtree_id,new_mtree_id,con);
}
}
public void CopyMTree(tree_id,new_tree_id,con)
{
// сгенерировать lm
lm = new Date().getTime();
query = "SELECT module_tariff_tree.id, module_tariff_tree.mid, mtree_node.id "+
"FROM module_tariff_tree "+
" INNER JOIN mtree_node "+
" ON (module_tariff_tree.id=mtree_node.mtree_id) "+
"WHERE module_tariff_tree.tree_id='"+tree_id+"' AND mtree_node.type='root'";
ps = con.prepareStatement(query);
rs = ps.executeQuery();
while (rs.next())
{
mtree_id = rs.getInt(1);
mid = rs.getInt(2);
node_id = rs.getInt(3);
print(node_id);
new_mtree_ps = con.prepareStatement( "INSERT INTO module_tariff_tree (mid, tree_id, lm) VALUES (?, ?, ?)" );
new_mtree_ps.setInt( 1, mid );
new_mtree_ps.setInt( 2, new_tree_id );
new_mtree_ps.setLong( 3, lm );
new_mtree_ps.executeUpdate();
new_mtree_rs = con.prepareStatement( "SELECT LAST_INSERT_ID()" ).executeQuery();
new_mtree_rs.next();
new_mtree_id = new_mtree_rs.getInt(1);
max_pos_ps = con.prepareStatement( "SELECT MAX(pos) FROM mtree_node" );
max_pos_rs = max_pos_ps.executeQuery();
max_pos_rs.next();
new_pos = max_pos_rs.getInt(1) + 1;
new_node_ps = con.prepareStatement( "INSERT INTO mtree_node (parent_node,mtree_id,type,pos) VALUES ('0', ?, 'root', ?)" );
new_node_ps.setInt( 1, new_mtree_id );
new_node_ps.setInt( 2, new_pos );
new_node_ps.executeUpdate();
new_node_rs = con.prepareStatement( "SELECT LAST_INSERT_ID()" ).executeQuery();
new_node_rs.next();
new_node_id = new_node_rs.getInt(1);
CopyNode(node_id,new_node_id,mtree_id,new_mtree_id,con);
};
}
public void CopyTarif(tpid, new_tpid, con)
{
/* query = "SELECT tariff_tree_link.tree_id, tariff_plan.title "+
"FROM tariff_tree_link "+
" INNER JOIN tariff_plan "+
" ON (tariff_tree_link.tpid=tariff_plan.id) "+
"WHERE tariff_tree_link.tpid='"+tpid+"'";*/
query = "select tree_id, title from tariff_plan where id="+tpid;
ps = con.prepareStatement(query);
rs = ps.executeQuery();
if ( !rs.next() )
{
print("Не найдено tariff_tree старого тарифного плана");
return;
}
tree_id = rs.getInt(1);
tarif_title = rs.getString(2);
/* query = "SELECT tariff_tree_link.tree_id, tariff_plan.title "+
"FROM tariff_tree_link "+
" INNER JOIN tariff_plan "+
" ON (tariff_tree_link.tpid=tariff_plan.id) "+
"WHERE tariff_tree_link.tpid='"+new_tpid+"'";*/
query = "select tree_id, title from tariff_plan where id="+new_tpid;
ps = con.prepareStatement(query);
rs = ps.executeQuery();
if ( !rs.next() )
{
print("Не найдено tariff_tree нового тарифного плана");
return;
}
new_tree_id = rs.getInt(1);
// // создать ПТ
// personal_tariff_manager = new PersonalTariffManager( con );
// personal_tariff = new PersonalTariff();
// personal_tariff.setContractId(cid);
// personal_tariff.setTitle(tarif_title);
// personal_tariff_manager.updatePersonalTariff(personal_tariff);
// // получить treeID
// tid = personal_tariff.getId();
// personal_tariff = personal_tariff_manager.getPersonalTariff(tid);
// new_tree_id = personal_tariff.getTreeId();
CopyMTree(tree_id,new_tree_id,con);
}
public void main( setup, con, conSlave )
{
//Идентификатор глобального тарифного плана
From_TPID = 1931;
New_TPID = 2011;
CopyTarif(From_TPID,New_TPID, con);
// CopyMTree(9575, 9969, con);
//(node_id,new_node_id,mtree_id,new_mtree_id,con)
//CopyNode(224356,236473,22414,24583,con);
// CopyNode(258425,260195,1157,22370,con);
// CopyNode(255071,260537,22370,7328,con);
// CopyNode(260833,260835,7328,20972,con);
// CopyNode(259937,261201,1157,22370,con);
// CopyNode(259937,261467,1157,7328,con);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment