mainwindow.cpp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <QtSql>
  4. MainWindow::MainWindow(QWidget *parent) :
  5. QMainWindow(parent),
  6. ui(new Ui::MainWindow)
  7. {
  8. ui->setupUi(this);
  9. }
  10. MainWindow::~MainWindow()
  11. {
  12. delete ui;
  13. }
  14. void MainWindow::on_createSegPB_clicked()
  15. {
  16. /*QFileDialog::Options options;
  17. //options |= QFileDialog::DontUseNativeDialog;
  18. QString selectedFilter;
  19. QString fileName = QFileDialog::getOpenFileName(this,
  20. tr("Select"),"",
  21. tr("CSV Files (*.csv)"),
  22. &selectedFilter,
  23. options);
  24. if (fileName.isEmpty())
  25. return ;
  26. QFile file(fileName);
  27. file.open(QIODevice::ReadOnly);
  28. QTextStream in(&file);
  29. QVariantList seg,province,city,corp,areacode;
  30. while(!in.atEnd())
  31. {
  32. QString line=in.readLine();
  33. QStringList fields = line.split(",");
  34. seg << fields.at(0);
  35. province << fields.at(1);
  36. city << fields.at(2);
  37. //corp << fields.at(3);
  38. //areacode << fields.at(4);
  39. }*/
  40. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  41. db.setPassword("123*asdf");
  42. QFile::remove("mseg.db");
  43. db.setDatabaseName("mseg.db");
  44. if (!db.open()) {
  45. return ;
  46. }
  47. QSqlDatabase::database().transaction();
  48. QSqlQuery query;
  49. //query.exec("CREATE TABLE MSEG (seg char(7) primary key,province varchar(20),city varchar(50),corp varchar(4),areacode varchar(4))");
  50. //query.prepare("INSERT INTO MSEG values(?,?,?,?,?)");
  51. query.exec("create table CONFIG (NAME varchar(100),VALUE varchar(1000))");
  52. query.exec("insert into CONFIG values ('seg_version','201201')");
  53. query.exec("CREATE TABLE MSEG (seg char(7) primary key,province varchar(20),city varchar(20),areacode varchar(4))");
  54. //query.prepare("INSERT INTO MSEG values(?,?,?)");
  55. //query.addBindValue(seg);
  56. //query.addBindValue(province);
  57. //query.addBindValue(city);
  58. //query.addBindValue(corp);
  59. //query.addBindValue(areacode);
  60. //query.execBatch();
  61. query.exec("CREATE TABLE CITY as select province,city,areacode,count(*) as total from mseg group by province,city,areacode");
  62. //query.exec("CREATE TABLE SEG_DYNAMIC_UPDATE_LOG (areacode VARCHAR(4),LAST_CHECK_DATE VARCHAR(20))");
  63. //query.exec("CREATE TABLE SEG_DYNAMIC (seg char(7) primary key,S1 numberic,S2 numberic,S3 numberic,S4 numberic,sample_index numberic,recommend_index numberic)");
  64. //query.exec("insert into SEG_DYNAMIC VALUES('1300281',100,10,20,30,40,50,60,70,80)");
  65. //query.exec("insert into SEG_DYNAMIC VALUES('1303770',200,20,20,60,40,50,60,70,80)");
  66. QSqlDatabase::database().commit();
  67. db.close();
  68. QMessageBox::information(this,"","finished",QMessageBox::Ok);
  69. }
  70. void MainWindow::on_createSysPB_clicked()
  71. {
  72. QFile::remove("sys.db");
  73. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  74. db.setPassword("123*asdf");
  75. db.setDatabaseName("sys.db");
  76. if (!db.open()) {
  77. return ;
  78. }
  79. QSqlDatabase::database().transaction();
  80. QSqlQuery query;
  81. query.exec("create table srv_param(srv_id varchar(100),srv_param_name varchar(100),srv_param_value varchar(100)) ");
  82. query.exec("create table AD(ADURL varchar(100),ADTEXT varchar(100)) ");
  83. query.exec("insert into AD values ('www.kh8.cc','瞬时二代空号检测,八种状态智能检测')");
  84. query.exec("insert into AD values ('www.smsjc.com','名远智能空号检测,实时检测八种状态')");
  85. query.exec("create table page_ad(AD_ID VARCHAR(100),AD_URL varchar(1000)) ");
  86. query.exec("insert into page_ad values ('ad_app2_index_up','http://www.iyoogo.com:86/app2/adup/index.htm')");
  87. query.exec("insert into page_ad values ('ad_app2_index_bottom','http://www.iyoogo.com:86/app2/adbottom/index.htm')");
  88. query.exec("insert into page_ad values ('ad_app2_help','http://www.iyoogo.com:86/app2/bang/index.htm')");
  89. query.exec("insert into page_ad values ('ad_app2_riddle','http://www.iyoogo.com:86/app2/unlog_shkj/index.htm')");
  90. query.exec("create table CONFIG (NAME varchar(100),VALUE varchar(1000))");
  91. query.exec("insert into CONFIG values ('appupdate_name','sncupdate.exe')");
  92. query.exec("insert into CONFIG values ('splashtext_color','#ffffff')");
  93. query.exec("insert into CONFIG values ('app_name','极速号码魔方')");
  94. query.exec("insert into CONFIG values ('splashimage_name',':/splash.jpg')");
  95. query.exec("insert into CONFIG values ('resource_name','res/default.rcc')");
  96. query.exec("insert into CONFIG values ('qss_name',':/main.qss')");
  97. query.exec("insert into CONFIG values ('authcode_seg','*hope*2012!')");
  98. query.exec("insert into CONFIG values ('authcode_syspara','*LUck*2013!')");
  99. query.exec("insert into CONFIG values ('authcode_url','mf_*LUck%1_*2013!')");
  100. query.exec("insert into CONFIG values ('authcode_encrypt','Encrypt*LUck*2013!')");
  101. query.exec("insert into CONFIG values ('authcode_srvtime','*LUck*2013!')");
  102. //query.exec("insert into CONFIG values ('seg_version','201201')");
  103. //query.exec("insert into CONFIG values ('config_url','http://jshmmf.9966.org:9696/mofang/config.xml')");
  104. //query.exec("insert into CONFIG values ('config_url','http://61.156.8.201:9696/mofang/config.xml')");
  105. query.exec("insert into CONFIG values ('banner_ad','http://www.iyoogo.com:86/ad/ad.html')");
  106. query.exec("insert into CONFIG values ('appconfig_url','http://app.iyoogo.com:86/product/app.xml')");
  107. query.exec("insert into CONFIG values ('dataconfig_url','http://app.iyoogo.com:86/product/data.xml')");
  108. query.exec("insert into CONFIG values ('helpme_url','http://www.iyoogo.com:86/app/bang/index.htm')");
  109. query.exec("insert into CONFIG values ('website_title','IYOOGO官方网站')");
  110. query.exec("insert into CONFIG values ('website_url','http://www.iyoogo.com')");
  111. query.exec("create table client_config(id varchar(100) primary key,name varchar(100),notice_url varchar(1000),host varchar(1000),port varchar(10)) ");
  112. query.exec("insert into client_config values ('default','default','','ws1.iyoogo.com','86')");
  113. query.exec("insert into client_config values ('sskh','瞬时空号检测','http://www.iyoogo.com:86/app/post/index.htm','ws1.iyoogo.com','86')");
  114. query.exec("insert into client_config values ('mykh','名远空号检测','http://www.iyoogo.com:86/app/post2/index.htm','ws2.iyoogo.com','86')");
  115. QVariant cmcc = "'134','135','136','137','138','139','147','150','151','152','154','157','158','159','182','183','187','188'";
  116. QVariant cutc = "'130','131','132','145','155','156','185','186'";
  117. QVariant ctcc = "'133','153','180','189'";
  118. QVariantList corps,segs;
  119. corps<<"CMCC"<<"CUTC"<<"CTCC";
  120. segs<<cmcc<<cutc<<ctcc;
  121. query.exec("create table corp_prefix(corp varchar(100),prefix varchar(200)) ");
  122. query.prepare("insert into corp_prefix values (?,?)");
  123. query.addBindValue(corps);
  124. query.addBindValue(segs);
  125. query.execBatch();
  126. query.finish();
  127. query.exec("CREATE TABLE NUMBER_RULES(RULE_ID INTEGER PRIMARY KEY ,NAME VARCHAR(100),REGEX VARCHAR(500))");
  128. query.exec("CREATE TABLE NUMBER_RULES_SYSTEM(SLN_ID INTEGER PRIMARY KEY,NAME VARCHAR(100))");
  129. query.exec("CREATE TABLE NUMBER_RULES_SYSTEM_MAP(SLN_ID INTEGER,RULE_ID INTEGER)");
  130. query.exec("insert into NUMBER_RULES_SYSTEM(name) values('系统内置号码方案1')");
  131. query.exec("insert into NUMBER_RULES_SYSTEM(name) values('系统内置号码方案2')");
  132. query.exec("insert into NUMBER_RULES_SYSTEM(name) values('系统内置号码方案3')");
  133. query.exec("insert into NUMBER_RULES(name,REGEX) values('末尾四位AAAA ','(\\d)\\1\\1\\1')");
  134. query.exec("insert into NUMBER_RULES(name,REGEX) values('末尾四位AABB ','(\\d)\\1(\\d)\\2')");
  135. query.exec("insert into NUMBER_RULES(name,REGEX) values('末尾四位ABAB ','(\\d\\d)\\1')");
  136. query.exec("insert into NUMBER_RULES(name,REGEX) values('末尾四位ABCD ','([0][1][2][3]|[1][2][3][4]|[3][4][5]6|[4][5][6][7]|[5][6][7][8]|[6][7][8][9])')");
  137. //query.exec("insert into NUMBER_RULES(name,REGEX) values('号码不含4 ','1[3|5|8][0-35-9]{9}')");
  138. //query.exec("insert into NUMBER_RULES(name,REGEX) values('号码包含4 ','1[3|4|5|8][0-9]*[4]+[0-9]*')");
  139. query.exec("insert into NUMBER_RULES(name,REGEX) values('末尾四位不含4 ','[0-35-9]{4}')");
  140. query.exec("insert into NUMBER_RULES(name,REGEX) values('末尾四位包含4 ','[0-9]*[4]+[0-9]*')");
  141. //query.exec("insert into NUMBER_RULES(name,REGEX) values('末尾四位不包含6、7、8、9、0','1[3|4|5|8][0-9]{5}[1-5]{4}')");
  142. //query.exec("insert into NUMBER_RULES(name,REGEX) values('末尾四位包含6、7、8、9、0','1[3|4|5|8][0-9]{5}[0-9]*[06-9]+[0-9]*')");
  143. query.exec("insert into NUMBER_RULES(name,REGEX) values('末尾四位2连号 ','[0-9]*([0-9])\\1[0-9]*')");
  144. query.exec("insert into NUMBER_RULES(name,REGEX) values('末尾四位3连号 ','[0-9]*([0-9])\\1\\1[0-9]*')");
  145. query.exec("insert into NUMBER_RULES(name,REGEX) values('末尾四位包含7 ','[0-9]*[7]+[0-9]*')");
  146. query.exec("insert into NUMBER_RULES_SYSTEM_MAP(SLN_ID,RULE_ID) values(1,1)");
  147. query.exec("insert into NUMBER_RULES_SYSTEM_MAP(SLN_ID,RULE_ID) values(1,2)");
  148. query.exec("insert into NUMBER_RULES_SYSTEM_MAP(SLN_ID,RULE_ID) values(2,2)");
  149. query.exec("insert into NUMBER_RULES_SYSTEM_MAP(SLN_ID,RULE_ID) values(2,3)");
  150. query.exec("insert into NUMBER_RULES_SYSTEM_MAP(SLN_ID,RULE_ID) values(3,3)");
  151. query.exec("insert into NUMBER_RULES_SYSTEM_MAP(SLN_ID,RULE_ID) values(3,4)");
  152. QSqlDatabase::database().commit();
  153. db.close();
  154. QMessageBox::information(this,"","finished",QMessageBox::Ok);
  155. }
  156. void MainWindow::on_pushButton_clicked()
  157. {
  158. QFile::remove("../data/user.db");
  159. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  160. db.setPassword("123*asdf");
  161. db.setDatabaseName("../data/user.db");
  162. if (!db.open()) {
  163. return ;
  164. }
  165. QSqlDatabase::database().transaction();
  166. QSqlQuery query;
  167. query.exec("CREATE TABLE NUMBER_RULES_USER(SLN_ID INTEGER PRIMARY KEY,NAME VARCHAR(100))");
  168. query.exec("CREATE TABLE NUMBER_RULES_USER_MAP(SLN_ID INTEGER,RULE_ID INTEGER)");
  169. query.exec("CREATE TABLE NUMBER_BUILD_HISTORY(BUILD_ID INTEGER PRIMARY KEY,BUILD_DATE TEXT,REGION VARCHAR(100),TOTAL NUMERIC,SEGMENTS TEXT,RULE_IDS TEXT)");
  170. query.exec("CREATE TABLE FILE_UPLOAD(\
  171. FILE_ID INTEGER PRIMARY KEY,FILE_NAME VARCHAR(100),FILE_PATH VARCHAR(500),\
  172. FILE_MEMO VARCHAR(100),FILE_TYPE CHAR(1),TASK_TYPE CHAR(1),\
  173. MODULE_ID VARCHAR(100),CLIENT_ID VARCHAR(100),USER_CODE VARCHAR(100),\
  174. UPLOAD_STATE INTEGER,SERVER_FID VARCHAR(100),SERVER_RTIME VARCHAR(100),\
  175. ISVERIFY,OPT_STATUS CHAR(1),TF_TIME VARCHAR(100),PERCENT NUMERIC,\
  176. RTN_MSG VARCHAR(1000),RTN_DETAIL TEXT\
  177. )");
  178. query.exec("CREATE TABLE SHKJ_CHECK(\
  179. USER_CODE VARCHAR(100),LTF_ID VARCHAR(100) PRIMARY KEY,QUERY_CODE VARCHAR(100),DETAIL VARCHAR(500),\
  180. HMZS INTEGER,LTF_TJ VARCHAR(100),LTF_LIST VARCHAR(100),FORCAST_TJ VARCHAR(500),\
  181. FORCAST_LIST VARCHAR(100),INSERT_TIME VARCHAR(100),FINISH_TIME VARCHAR(100),\
  182. DEAL_STATUS CHAR(1),CACHE_LOCAL_PATH VARCHAR(1000)\
  183. )");
  184. query.exec("CREATE TABLE USER_LOGON(\
  185. ID INTEGER PRIMARY KEY,USER_CODE VARCHAR(100),PASSWORD VARCHAR(100),\
  186. ISAUTO CHAR(1),ISREMEMBER CHAR(1),LAST_LOGIN_TIME VARCHAR(100)\
  187. )");
  188. query.exec("CREATE TABLE BZJC_CHECK_DEALING(\
  189. BATCH_ID VARCHAR(100) PRIMARY KEY,BATCH_TYPE CHAR(1),CLIENT_ID VARCHAR(100),USER_CODE VARCHAR(100),\
  190. DETAIL VARHCAR(500),RESULT_TJ VARHCAR(500),SUBMIT_TIME VARCHAR(100),TF_TIME VARCHAR(100),\
  191. VF_TIME VARCHAR(100),ISVERIFY CHAR(1),SETTLE_FEE NUMERIC,GIFT_FEE NUMERIC ,\
  192. NUM_COUNT INTEGER,DOWNLOAD_COUNT INTEGER,FINISH_COUNT INTEGER, OPT_STATUS CHAR(1)\
  193. )");
  194. query.exec("CREATE TABLE BZJC_CHECK_FINISHED(\
  195. BATCH_ID VARCHAR(100) PRIMARY KEY,BATCH_TYPE CHAR(1),CLIENT_ID VARCHAR(100),USER_CODE VARCHAR(100),\
  196. DETAIL VARHCAR(500),RESULT_TJ VARHCAR(500),SUBMIT_TIME VARCHAR(100),FINISH_TIME VARCHAR(100),\
  197. SETTLE_FEE NUMERIC,GIFT_FEE NUMERIC ,\
  198. NUM_COUNT INTEGER,DOWNLOAD_COUNT INTEGER,FINISH_COUNT INTEGER, OPT_STATUS CHAR(1),\
  199. ISPASS CHAR(1),ISDELIVER CHAR(1),DELIVER_TIME VARCHAR(100),CACHE_LOCAL_PATH VARCHAR(1000)\
  200. )");
  201. /*query.exec("insert into NUMBER_RULES_USER(name) values('用户号码方案1')");
  202. query.exec("insert into NUMBER_RULES_USER(name) values('用户内置号码方案2')");
  203. query.exec("insert into NUMBER_RULES_USER(name) values('用户内置号码方案3')");
  204. query.exec("insert into NUMBER_RULES_USER_MAP(SLN_ID,RULE_ID) values(1,1)");
  205. query.exec("insert into NUMBER_RULES_USER_MAP(SLN_ID,RULE_ID) values(1,2)");
  206. query.exec("insert into NUMBER_RULES_USER_MAP(SLN_ID,RULE_ID) values(2,2)");
  207. query.exec("insert into NUMBER_RULES_USER_MAP(SLN_ID,RULE_ID) values(2,3)");
  208. query.exec("insert into NUMBER_RULES_USER_MAP(SLN_ID,RULE_ID) values(3,3)");
  209. query.exec("insert into NUMBER_RULES_USER_MAP(SLN_ID,RULE_ID) values(3,4)");
  210. query.exec("INSERT INTO NUMBER_BUILD_HISTORY(BUILD_DATE,REGION,TOTAL,SEGMENTS,RULE_IDS) VALUES('2012-3-7','济南等',100000,'1301234,1311334,1334567','1,2')");
  211. query.exec("INSERT INTO NUMBER_BUILD_HISTORY(BUILD_DATE,REGION,TOTAL,SEGMENTS,RULE_IDS) VALUES('2012-3-8','青岛等',200000,'1341234,1351334,1364567','2,3')");
  212. query.exec("INSERT INTO NUMBER_BUILD_HISTORY(BUILD_DATE,REGION,TOTAL,SEGMENTS,RULE_IDS) VALUES('2012-3-8','上海等',300000,'1371234,1381334,1394567','3,4')");*/
  213. QSqlDatabase::database().commit();
  214. db.close();
  215. QMessageBox::information(this,"","finished",QMessageBox::Ok);
  216. }
  217. void MainWindow::loadDict()
  218. {
  219. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  220. db.setDatabaseName(":memory:");
  221. db.setPassword("123*asdf");
  222. if (!db.open()) {
  223. return ;
  224. }
  225. QSqlQuery query;
  226. query.exec("ATTACH DATABASE 'mseg.db' AS mseg");
  227. query.exec("ATTACH DATABASE 'sys.db' AS sys");
  228. query.exec("ATTACH DATABASE '../data/user.db' AS user");
  229. QStandardItemModel *model = new QStandardItemModel() ;
  230. QStandardItem *sys = new QStandardItem("sys");
  231. query.exec("select name from sys.sqlite_master where type='table'");
  232. while(query.next())
  233. {
  234. QStandardItem *item = new QStandardItem(query.value(0).toString());
  235. sys->appendRow(item);
  236. }
  237. model->appendRow(sys);
  238. QStandardItem *mseg = new QStandardItem("mseg");
  239. query.exec("select name from mseg.sqlite_master where type='table'");
  240. while(query.next())
  241. {
  242. QStandardItem *item = new QStandardItem(query.value(0).toString());
  243. mseg->appendRow(item);
  244. }
  245. model->appendRow(mseg);
  246. QStandardItem *user = new QStandardItem("user");
  247. query.exec("select name from user.sqlite_master where type='table'");
  248. while(query.next())
  249. {
  250. QStandardItem *item = new QStandardItem(query.value(0).toString());
  251. user->appendRow(item);
  252. }
  253. model->appendRow(user);
  254. this->ui->treeView->setModel(model);
  255. }
  256. void MainWindow::on_queryPB_clicked()
  257. {
  258. loadDict();
  259. }
  260. void MainWindow::on_treeView_clicked(const QModelIndex &index)
  261. {
  262. if(index.parent().isValid())
  263. {
  264. QString db = index.parent().data().toString();
  265. QString table = index.data().toString();
  266. QSqlTableModel *model = new QSqlTableModel();
  267. model->setTable(db+"."+table);
  268. model->setEditStrategy(QSqlTableModel::OnManualSubmit);
  269. model->setSort(0,Qt::AscendingOrder);
  270. model->select(); //选取整个表的所有行
  271. // model->removeColumn(1); //不显示name属性列,如果这时添加记录,则该属性的值添加不上
  272. ui->tableView->setModel(model);
  273. QSqlQueryModel *model2 = new QSqlQueryModel();
  274. model2->setQuery("select count(*) as total from "+table);
  275. this->ui->tableView_2->setModel(model2);
  276. }
  277. }
  278. void MainWindow::on_pushButtonBuildNumber_clicked()
  279. {
  280. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  281. db.setPassword("123*asdf");
  282. db.setDatabaseName("mseg.db");
  283. if (!db.open()) {
  284. return ;
  285. }
  286. QSqlDatabase::database().transaction();
  287. QSqlQuery query;
  288. query.exec("select seg from mseg");
  289. QFile file("data.txt");
  290. int count=0;
  291. if(file.open(QIODevice::WriteOnly))
  292. {
  293. QTextStream out(&file);
  294. while(query.next())
  295. {
  296. QString seg = query.value(0).toString();
  297. QString num;
  298. for(int i=0;i<40;i++){
  299. num += seg+"0000\r\n";
  300. count++;
  301. }
  302. if(count>1000*10000)
  303. break;
  304. out<<num;
  305. }
  306. file.close();
  307. }
  308. }