Ticket #160: checkdelete.groovy

File checkdelete.groovy, 3.2 KB (added by jiangyichao, 12 years ago)

检查删除脚本

Line 
1import groovy.sql.*
2import java.io.RandomAccessFile;
3
4//МšÊýŸÝ¶ÔÏó
5def dburl = "jdbc:mysql://192.168.74.5:3310/bbs7_it_app";
6def ussername = "root";
7def password = "rootbbsmysql";
8def Driver = "com.mysql.jdbc.Driver";
9
10def Db = Sql.newInstance(dburl,ussername,password,Driver);
11
12//¶šÒå²ÎÊý
13def all_topics = 0;
14def old_topics = 0;
15def new_topics = 0;
16
17
18def fids = [768144,769973,768653,768553,769839,768439,768483,768137,768136,678295,681594,681617,681618,741947,
19677237,301876,301505,302186,301885,300318,300775,300345,302196,303863,301456,301866,301762,302985,301167,304216,
20301175,301504,304955,303438,302007,667015,769843,762407,770085,762373,762426,301713,301027,301026,765284,587044,
21592975,587845,27,28,755965,587828,675704,675836,675567,587830,587831,587832,587833,768233,768235,586978,769324,
22680926,680927,729311,768223,768224,767854,768784,717089];
23
24
25def checkAndGetAllTopics(List fids, def Db){
26    def index = 0;
27    def all_topics = 0;
28    (0..(fids.size() - 1)).each{i ->
29        Db.eachRow(" SELECT (CASE WHEN COUNT(*) = 0 THEN 0 ELSE TABLEINDEX END) AS TABLEINDEX FROM BBS7_FORUM_INDEX WHERE FID = " + fids.get(i) ){
30            index = it.tableindex;
31        };
32
33        Db.eachRow(" SELECT COUNT(*) AS NUM FROM BBS7_TOPIC" + (index == 0 ? "" : "_" + index) + "_BAK WHERE FID = " + fids.get(i) + " OR SUBFORUMID = " + fids.get(i)){
34            old_topics = it.num;
35        };
36        Db.eachRow(" SELECT COUNT(*) AS NUM FROM BBS7_TOPIC" + (index == 0 ? "" : "_" + index) + " WHERE FID = " + fids.get(i) + " OR SUBFORUMID = " + fids.get(i)){
37            new_topics = it.num;
38        };
39        if(new_topics != 0){
40            println "Forum " + fids.get(i) + " has topics " + new_topics + " is error...";   
41        }else{
42            println "Forum " + fids.get(i) + " has topics " + new_topics + " is Ok !";   
43        }
44        all_topics += old_topics;
45    }
46   
47    return all_topics;
48
49
50}
51
52def tempArray1 = [];
53def tempArray2 = [];
54def arrayCount = 0;
55
56(0..(fids.size() - 1)).each{i ->
57   
58    //µÚÒ»²ã×Ó°æ
59    Db.eachRow(" SELECT FID FROM BBS7_FORUM_BAK WHERE PARENTID = " + fids.get(i)){row ->
60        tempArray1.add(row.fid);
61    };
62
63}
64//µÚ¶þ²ã×Ó°æ
65   
66if( tempArray1.size() != 0){
67    (0..(tempArray1.size() - 1)).each{j ->
68        Db.eachRow(" SELECT FID FROM BBS7_FORUM_BAK WHERE PARENTID = " + tempArray1.get(j)){ row ->
69            tempArray2.add(row.fid);
70        };
71    };
72}
73if( tempArray1.size() != 0){
74    all_topics += checkAndGetAllTopics(tempArray1,Db);
75   
76}
77if( tempArray2.size() != 0){
78    all_topics += checkAndGetAllTopics(tempArray2,Db);
79
80}
81all_topics += checkAndGetAllTopics(fids, Db);
82
83def oldTopic1Num = 0;
84def newTopic1Num = 0;
85Db.eachRow("SELECT COUNT(A.TID) AS NUM FROM BBS7_TOPIC_1 A"){
86    newTopic1Num = it.num;
87};
88Db.eachRow("SELECT COUNT(A.TID) AS NUM FROM BBS7_TOPIC_1_BAK A"){
89    oldTopic1Num = it.num;
90};
91
92if( all_topics == (newTopic1Num - oldTopic1Num )){
93    println "Deleted topics : "+ all_topics +"; Added topics : "+ (newTopic1Num - oldTopic1Num ) +"; Table bbs7_topic_1 is OK!"
94}else{
95    println "Deleted topics : "+ all_topics +"; Added topics : "+ (newTopic1Num - oldTopic1Num ) +"; Table bbs7_topic_1 is error..."
96}