@@ -14,19 +14,21 @@ public class DataMigrationUtil extends Thread {
Map map ;
int i ;
Connection fzdsconn ;
public DataMigrationUtil ( Map map , int i ) {
public DataMigrationUtil ( Map map , int i , Connection fzdsconn ){
this . map = map ;
this . i = i ;
this . fzdsconn = fzdsconn ;
}
public static void main ( String [ ] args ) {
catalogue( ) ;
// catalogue() ;
// courseCatalogue();
// courseCatalogueChapter();
// courseCatalogueChapterVideo();
// user(); //用的都是copy表里的数据
user( ) ; //用的都是copy表里的数据
}
@@ -36,7 +38,7 @@ public class DataMigrationUtil extends Thread {
Connection yljkconn = DriverManager . getConnection (
" jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth? " ,
" yljkmaster " , " Wu751019!@ " ) ;
PreparedStatement statement = yljkconn . prepareStatement ( " select * from t_curriculum_catalogue where valid = 1 and poid in (select oid from t_curriculum_catalogue where valid = 1 and poid is null) and courseFee like '%,%' " ) ;
PreparedStatement statement = yljkconn . prepareStatement ( " select * from t_curriculum_catalogue where valid = 1 and poid in (select oid from t_curriculum_catalogue where valid = 1 and poid is null) and ( courseFee like '%,%' or courseFee = '0' or poid = '00000000000000000000000000000070' ) " ) ;
ResultSet resultSet = statement . executeQuery ( ) ;
List < Map > list = new ArrayList ( ) ;
while ( resultSet . next ( ) ) {
@@ -117,33 +119,43 @@ public class DataMigrationUtil extends Thread {
System . out . println ( " ===== 开始插入数据 ===== " ) ;
int res = 0 ;
PreparedStatement preparedStatement = connection . prepareStatement (
" INSERT ignore INTO course_catalogue (course_id,title,half_fee,fee,create_time) VALUES (?,?,?,?,?) " ) ;
" INSERT ignore INTO course_catalogue (type, course_id,title,half_fee,fee,create_time) VALUES (?,?,?,?,?,? ) " ) ;
for ( int q = 1 ; q < = fzdslist . size ( ) ; q + + ) {
String selectSql = " select * from t_curriculum_catalogue where valid = 1 and poid = ' " + fzdslist . get ( q - 1 ) . get ( " uid " ) + " ' " ;
String selectSql = " select ccp.poid ppoid,cc. * from t_curriculum_catalogue cc left join t_curriculum_catalogue ccp on cc.poid = ccp.oid where ccp. valid = 1 and cc.valid = 1 and cc. poid = ' " + fzdslist . get ( q - 1 ) . get ( " uid " ) + " ' " ;
PreparedStatement statement = yljkconn . prepareStatement ( selectSql ) ;
ResultSet resultSet = statement . executeQuery ( ) ;
Map map = new HashMap ( ) ;
while ( resultSet . next ( ) ) {
map . put ( " title " , resultSet . getString ( " title " ) ) ;
map . put ( " halfFee " , resultSet . getString ( " courseFee " ) . split ( " , " ) [ 0 ] ) ;
map . put ( " fee " , resultSet . getString ( " courseFee " ) . split ( " , " ) [ 1 ] ) ;
map . put ( " createDate " , resultSet . getString ( " createDat e " ) ) ;
if ( map . size ( ) > 0 ) {
p reparedStatemen t. s etString( 1 , fzdslist . get ( q - 1 ) . get ( " id " ) . toString ( ) ) ;
preparedStatement . setString ( 2 , map . get ( " title " ) . toString ( ) ) ;
preparedStatement . setString ( 3 , map . get ( " halfFee " ) . toString ( ) ) ;
preparedStatement . setString ( 4 , map . get ( " fee " ) . toString ( ) ) ;
preparedStatemen t . s etString( 5 , map . get ( " createDate " ) . toString ( ) ) ;
// 添加到批处理中
preparedStatement . addBatch ( ) ;
res + + ;
if ( res % 5000 = = 0 ) {
long startTime1 = System . currentTimeMillis ( ) ;
preparedStatement . executeBatch ( ) ;
connection . commit ( ) ;
long spendTime1 = System . currentTimeMillis ( ) - startTime1 ;
System . out . println ( " 成功插入第 " + res + " 条数据,耗时: " + spendTime1 + " 毫秒 " ) ;
}
String halfFee = " " ;
String fee = " " ;
if ( resultSet . getString ( " courseFee " ) ! = null & & resultSet . getString ( " courseFee " ) . contains ( " , " ) ) {
halfFee = resultSet . getString ( " courseFe e " ) . split ( " , " ) [ 0 ] ;
fee = resultSet . getString ( " courseFee " ) . split ( " , " ) [ 1 ] ;
} else if ( resultSe t . g etString( " courseFee " ) ! = null & & " 0 " . equals ( resultSet . getString ( " courseFee " ) ) ) {
halfFee = " 0 " ;
fee = " 0 " ;
}
if ( " 0 " . equals ( resultSe t . g etString( " courseFee " ) ) ) {
preparedStatement . setInt ( 1 , 0 ) ;
} else if ( " 00000000000000000000000000000070 " . equals ( resultSet . getString ( " ppoid " ) ) ) {
p reparedStatement . setInt ( 1 , 2 ) ;
} else {
preparedStatement . setInt ( 1 , 1 ) ;
}
preparedStatement . setString ( 2 , fzdslist . get ( q - 1 ) . get ( " id " ) . toString ( ) ) ;
preparedStatement . setString ( 3 , resultSet . getString ( " title " ) ) ;
preparedStatement . setString ( 4 , halfFee ) ;
preparedStatement . setString ( 5 , fee ) ;
preparedStatement . setString ( 6 , resultSet . getString ( " createDate " ) ) ;
// 添加到批处理中
preparedStatement . addBatch ( ) ;
res + + ;
if ( res % 5000 = = 0 ) {
long startTime1 = System . currentTimeMillis ( ) ;
preparedStatement . executeBatch ( ) ;
connection . commit ( ) ;
long spendTime1 = System . currentTimeMillis ( ) - startTime1 ;
System . out . println ( " 成功插入第 " + res + " 条数据,耗时: " + spendTime1 + " 毫秒 " ) ;
}
}
resultSet . close ( ) ;
@@ -315,6 +327,7 @@ public class DataMigrationUtil extends Thread {
public static void user ( ) {
try {
long startTime = System . currentTimeMillis ( ) ;
Connection yljkconn = DriverManager . getConnection (
" jdbc:mysql://goldorchid.mysql.rds.aliyuncs.com:3309/everhealth? " ,
" yljkmaster " , " Wu751019!@ " ) ;
@@ -339,12 +352,16 @@ public class DataMigrationUtil extends Thread {
resultSet . close ( ) ;
statement . close ( ) ;
yljkconn . close ( ) ;
Connection fzdsconn = DriverManager . getConnection (
" jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true " ,
" nuttyreading " , " Wu751019! " ) ;
// 1、创建服务, 创建线程池
ExecutorService service = Executors . newFixedThreadPool ( 50 ) ;
for ( int i = 1 ; i < = list . size ( ) ; i + + ) {
DataMigrationUtil d1 = new DataMigrationUtil ( list . get ( i ) , i ) ;
for ( int i = 0 ; i < list . size ( ) ; i + + ) {
DataMigrationUtil d1 = new DataMigrationUtil ( list . get ( i ) , i + 1 , fzdsconn ) ;
service . execute ( d1 ) ;
}
System . out . println ( " ---开始 " ) ;
} catch ( SQLException e ) {
System . out . println ( " Error: " + e . getMessage ( ) ) ;
}
@@ -354,15 +371,15 @@ public class DataMigrationUtil extends Thread {
public void run ( ) {
try {
if ( i % 1000 = = 0 ) {
System . out . println ( " ---已插入数据 " + i ) ;
System . out . println ( " ---已插入数据 " + i + " -- " + DateUtil . format ( new Date ( ) , " YYYY-MM-dd HH:mm:ss " ) ) ;
}
String userId = " " ;
BigDecimal userBalance = new BigDecimal ( 0 ) ;
Connection fzdsconn = DriverManager . getConnection (
" jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true " ,
" nuttyreading " , " Wu751019! " ) ;
BigDecimal userBalanceCoin = new BigDecimal ( 0 ) ;
BigDecimal userBalanceJf = new BigDecimal ( 0 ) ;
PreparedStatement oidStatements = fzdsconn . prepareStatement ( " select * from user_copy1 where del_flag = 0 and yljk_oid = ' " + map . get ( " oid " ) + " ' " ) ;
ResultSet oidResultSet = oidStatements . executeQuery ( ) ;
userBalanceCoin = oidResultSet . getBigDecimal ( " peanut_coin " ) . add ( new BigDecimal ( map . get ( " point " ) . toString ( ) ) ) ;
userBalanceJf = oidResultSet . getBigDecimal ( " jf " ) . add ( new BigDecimal ( map . get ( " pointByJF " ) . toString ( ) ) ) ;
//已绑定过id
if ( oidResultSet . next ( ) ) {
String sql = " update user_copy1 set " +
@@ -371,7 +388,6 @@ public class DataMigrationUtil extends Thread {
" vip= " + map . get ( " payStatus " ) + " ,peanut_coin = peanut_coin + " + map . get ( " point " ) + " , jf = jf + " + map . get ( " pointByJF " ) + " where id = " + oidResultSet . getString ( " id " ) + " " ;
PreparedStatement oidUpdateStatement = fzdsconn . prepareStatement ( sql ) ;
userId = oidResultSet . getString ( " id " ) ;
userBalance = oidResultSet . getBigDecimal ( " peanut_coin " ) . add ( new BigDecimal ( map . get ( " point " ) . toString ( ) ) ) ;
oidUpdateStatement . execute ( ) ;
oidUpdateStatement . close ( ) ;
} else {
@@ -387,7 +403,6 @@ public class DataMigrationUtil extends Thread {
" vip= " + map . get ( " payStatus " ) + " ,peanut_coin = peanut_coin + " + map . get ( " point " ) + " , jf = jf + " + map . get ( " pointByJF " ) + " where tel = ' " + map . get ( " cellPhone " ) + " ' " ;
PreparedStatement telUpdateStatement = fzdsconn . prepareStatement ( sql ) ;
userId = telResultSet . getString ( " id " ) ;
userBalance = oidResultSet . getBigDecimal ( " peanut_coin " ) . add ( new BigDecimal ( map . get ( " point " ) . toString ( ) ) ) ;
telUpdateStatement . execute ( ) ;
telUpdateStatement . close ( ) ;
}
@@ -411,13 +426,14 @@ public class DataMigrationUtil extends Thread {
userId = id . toString ( ) ;
}
telInsertStatement . close ( ) ;
userBalance = new BigDecimal ( map . get ( " point " ) . toString ( ) ) ;
userBalanceCoin = new BigDecimal ( map . get ( " point " ) . toString ( ) ) ;
userBalanceJf = new BigDecimal ( map . get ( " pointByJF " ) . toString ( ) ) ;
}
}
//添加超v
PreparedStatement userVipStatement = fzdsconn . prepareStatement (
" INSERT ignore INTO user_vip_copy1 (user_id,type,start_time,end_time,state) VALUES (?, ?, ?, ?, ?) " ) ;
if ( map . get ( " paydate " ) ! = null & & map . get ( " payValidDate " ) ! = null ) {
PreparedStatement userVipStatement = fzdsconn . prepareStatement (
" INSERT ignore INTO user_vip_copy1 (user_id,type,start_time,end_time,state) VALUES (?, ?, ?, ?, ?) " ) ;
userVipStatement . setString ( 1 , userId ) ;
userVipStatement . setString ( 2 , map . get ( " payStatus " ) . toString ( ) ) ;
userVipStatement . setString ( 3 , map . get ( " paydate " ) . toString ( ) ) ;
@@ -430,22 +446,34 @@ public class DataMigrationUtil extends Thread {
userVipStatement . execute ( ) ;
userVipStatement . close ( ) ;
}
//添加灵兰币记录
PreparedStatement transactionDetailStatement = fzdsconn . prepareStatement (
" INSERT ignore INTO transaction_details_copy1 (user_id,order_type,change_amount,remark,user_balance, " +
" user_name,tel) VALUES (?, ?, ?, ?, ?, ?, ?) " ) ;
if ( map . get ( " point " ) ! = null & & ! " 0 " . equals ( map . get ( " point " ) . toString ( ) ) ) {
//添加虚拟币记录
PreparedStatement transactionDetailStatement = fzdsconn . prepareStatement (
" INSERT ignore INTO transaction_details_copy1 (user_id,order_type,change_amount,remark,user_balance, " +
" user_name,tel) VALUES (?, ?, ?, ?, ?, ?, ?) " ) ;
transactionDetailStatement . setString ( 1 , userId ) ;
transactionDetailStatement . setString ( 2 , " 系统合并结算 " ) ;
transactionDetailStatement . setString ( 3 , map . get ( " point " ) . toString ( ) ) ;
transactionDetailStatement . setString ( 4 , " 合并 " ) ;
transactionDetailStatement . setBigDecimal ( 5 , userBalance ) ;
transactionDetailStatement . setBigDecimal ( 5 , userBalanceCoin ) ;
transactionDetailStatement . setString ( 6 , map . get ( " nameCN " ) = = null ? " " : map . get ( " nameCN " ) . toString ( ) ) ;
transactionDetailStatement . setString ( 7 , map . get ( " cellPhone " ) . toString ( ) ) ;
transactionDetailStatement . execute ( ) ;
transactionDetailStatement . close ( ) ;
}
fzdsconn . close ( ) ;
if ( map . get ( " pointByJF " ) ! = null & & ! " 0 " . equals ( map . get ( " pointByJF " ) . toString ( ) ) ) {
//添加积分记录
PreparedStatement jfTransactionDetailStatement = fzdsconn . prepareStatement (
" INSERT ignore INTO jf_transaction_details_copy1 (user_id,act_type,change_amount,user_balance,remark) " +
" VALUES (?, ?, ?, ?, ?) " ) ;
jfTransactionDetailStatement . setString ( 1 , userId ) ;
jfTransactionDetailStatement . setString ( 2 , " 0 " ) ;
jfTransactionDetailStatement . setString ( 3 , map . get ( " pointByJF " ) . toString ( ) ) ;
jfTransactionDetailStatement . setBigDecimal ( 4 , userBalanceJf ) ;
jfTransactionDetailStatement . setString ( 5 , " 系统合并结算 " ) ;
jfTransactionDetailStatement . execute ( ) ;
jfTransactionDetailStatement . close ( ) ;
}
} catch ( Exception ee ) {
}