sncdatabase.cpp 92 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841
  1. #include "sncdatabase.h"
  2. #include <QtSql>
  3. SNCDataBase::SNCDataBase()
  4. {
  5. }
  6. bool SNCDataBase::createConnection(QString password, QString path)
  7. {
  8. if(!QFile::exists("sys.db") || !QFile::exists("mseg.db") || !QFile::exists(path + "/user.db") )
  9. {
  10. qDebug()<<"Cannot Find Db File";
  11. return false;
  12. }
  13. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  14. db.setDatabaseName(":memory:");
  15. db.setPassword(password);
  16. if (!db.open()) {
  17. qDebug()<<"DB Open Error;"<<db.lastError();
  18. return false;
  19. }
  20. QSqlQuery query;
  21. query.exec(QString("ATTACH DATABASE 'mseg.db' AS num"));
  22. query.exec(QString("ATTACH DATABASE 'sys.db' AS sys"));
  23. query.exec(QString("ATTACH DATABASE '%1/user.db' AS user").arg(path));
  24. query.exec("create table tmp_number (seg char(7))");
  25. query.exec("CREATE TABLE SEG_DYNAMIC_UPDATE_LOG (areacode VARCHAR(4),LAST_CHECK_DATE VARCHAR(20))");
  26. 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,check_day numberic)");
  27. query.exec("select name from sys.sqlite_master where type='table' and name='CONFIG'");
  28. if(!query.next())
  29. {
  30. return false;
  31. }
  32. query.exec("select name from num.sqlite_master where type='table' and name='MSEG'");
  33. if(!query.next())
  34. {
  35. return false;
  36. }
  37. query.exec("select name from user.sqlite_master where type='table' and name='NUMBER_RULES_USER'");
  38. if(!query.next())
  39. {
  40. return false;
  41. }
  42. query.exec("select name from user.sqlite_master where type='table' and name='FILE_UPLOAD'");
  43. if(!query.next())
  44. {
  45. query.exec("CREATE TABLE USER.FILE_UPLOAD(\
  46. FILE_ID INTEGER PRIMARY KEY,FILE_NAME VARCHAR(100),FILE_PATH VARCHAR(500),\
  47. FILE_MEMO VARCHAR(100),FILE_TYPE CHAR(1),TASK_TYPE CHAR(1),\
  48. MODULE_ID VARCHAR(100),CLIENT_ID VARCHAR(100),USER_CODE VARCHAR(100),\
  49. UPLOAD_STATE INTEGER,SERVER_FID VARCHAR(100),SERVER_RTIME VARCHAR(100),\
  50. ISVERIFY,OPT_STATUS CHAR(1),TF_TIME VARCHAR(100),PERCENT NUMERIC,\
  51. RTN_MSG VARCHAR(1000),RTN_DETAIL TEXT\
  52. )");
  53. }
  54. query.exec("select name from user.sqlite_master where type='table' and name='SHKJ_CHECK'");
  55. if(!query.next())
  56. {
  57. query.exec("CREATE TABLE USER.SHKJ_CHECK(\
  58. USER_CODE VARCHAR(100),LTF_ID VARCHAR(100) PRIMARY KEY,QUERY_CODE VARCHAR(100),DETAIL VARCHAR(500),\
  59. HMZS INTEGER,LTF_TJ VARCHAR(100),LTF_LIST VARCHAR(100),FORCAST_TJ VARCHAR(500),\
  60. FORCAST_LIST VARCHAR(100),INSERT_TIME VARCHAR(100),FINISH_TIME VARCHAR(100),\
  61. DEAL_STATUS CHAR(1),CACHE_LOCAL_PATH VARCHAR(1000)\
  62. )");
  63. }
  64. //query.exec("drop table USER.SHXZ_SHKJ");
  65. query.exec("select name from user.sqlite_master where type='table' and name='SHXZ_SHKJ'");
  66. if(!query.next())
  67. {
  68. query.exec("CREATE TABLE USER.SHXZ_SHKJ(\
  69. USER_CODE VARCHAR(100),LTF_ID VARCHAR(100) PRIMARY KEY,QUERY_CODE VARCHAR(100),DETAIL VARCHAR(500),\
  70. HMZS INTEGER,LTF_TJ VARCHAR(100),LTF_LIST VARCHAR(100),FORCAST_TJ VARCHAR(500),\
  71. FORCAST_LIST VARCHAR(100),INSERT_TIME VARCHAR(100),FINISH_TIME VARCHAR(100),\
  72. DEAL_STATUS CHAR(1),CACHE_LOCAL_PATH VARCHAR(1000),MEMO VARCHAR(1000),ISDEL CHAR(1)\
  73. )");
  74. }
  75. query.exec("select name from user.sqlite_master where type='table' and name='USER_LOGON'");
  76. if(!query.next())
  77. {
  78. query.exec("CREATE TABLE USER.USER_LOGON(\
  79. ID INTEGER PRIMARY KEY,USER_CODE VARCHAR(100),PASSWORD VARCHAR(100),\
  80. ISAUTO CHAR(1),ISREMEMBER CHAR(1),LAST_LOGIN_TIME VARCHAR(100)\
  81. )");
  82. }
  83. query.exec("select name from user.sqlite_master where type='table' and name='BZJC_CHECK_DEALING'");
  84. if(!query.next())
  85. {
  86. query.exec("CREATE TABLE USER.BZJC_CHECK_DEALING(\
  87. BATCH_ID VARCHAR(100) PRIMARY KEY,BATCH_TYPE CHAR(1),CLIENT_ID VARCHAR(100),USER_CODE VARCHAR(100),\
  88. DETAIL VARHCAR(500),RESULT_TJ VARHCAR(500),SUBMIT_TIME VARCHAR(100),TF_TIME VARCHAR(100),\
  89. VF_TIME VARCHAR(100),ISVERIFY CHAR(1),SETTLE_FEE NUMERIC,GIFT_FEE NUMERIC ,\
  90. NUM_COUNT INTEGER,DOWNLOAD_COUNT INTEGER,FINISH_COUNT INTEGER, OPT_STATUS CHAR(1)\
  91. )");
  92. }
  93. query.exec("select name from user.sqlite_master where type='table' and name='BZJC_CHECK_FINISHED'");
  94. if(!query.next())
  95. {
  96. query.exec("CREATE TABLE USER.BZJC_CHECK_FINISHED(\
  97. BATCH_ID VARCHAR(100) PRIMARY KEY,BATCH_TYPE CHAR(1),CLIENT_ID VARCHAR(100),USER_CODE VARCHAR(100),\
  98. DETAIL VARHCAR(500),RESULT_TJ VARHCAR(500),SUBMIT_TIME VARCHAR(100),FINISH_TIME VARCHAR(100),\
  99. SETTLE_FEE NUMERIC,GIFT_FEE NUMERIC ,\
  100. NUM_COUNT INTEGER,DOWNLOAD_COUNT INTEGER,FINISH_COUNT INTEGER, OPT_STATUS CHAR(1),\
  101. ISPASS CHAR(1),ISDELIVER CHAR(1),DELIVER_TIME VARCHAR(100),CACHE_LOCAL_PATH VARCHAR(1000)\
  102. )");
  103. }
  104. //add by xxw on 2014-10-30 for shkj-zxsh-task
  105. //query.exec("drop table USER.SHKJ_ZXSH_TASK");
  106. query.exec("select name from user.sqlite_master where type='table' and name='SHKJ_ZXSH_TASK'");
  107. if(!query.next())
  108. {
  109. query.exec("CREATE TABLE USER.SHKJ_ZXSH_TASK(\
  110. TASKID INTEGER PRIMARY KEY,\
  111. SSID VARCHAR(100),\
  112. INSERTTIME VARCHAR(100),\
  113. FINISHTIME VARCHAR(100),\
  114. PROVINCE VARCHAR(100),\
  115. CITY VARCHAR(100),\
  116. USERCODE VARCHAR(100),\
  117. UPDATEDAYS NUMERIC,\
  118. ISP CHAR(1),\
  119. SLTTYPE CHAR(1),\
  120. PACKNOLIST TEXT,\
  121. SEG TEXT,\
  122. NEEDNUM NUMERIC,\
  123. RPNUM NUMERIC,\
  124. DEALSTATUS CHAR(1),\
  125. ISDEL CHAR(1))");
  126. }
  127. //query.exec("drop table USER.SHKJ_ZXSH_TASK_PACKNO");
  128. query.exec("select name from user.sqlite_master where type='table' and name='SHKJ_ZXSH_TASK_PACKNO'");
  129. if(!query.next())
  130. {
  131. query.exec("CREATE TABLE USER.SHKJ_ZXSH_TASK_PACKNO(\
  132. TASKID INTEGER PRIMARY KEY,\
  133. province VARCHAR(100),\
  134. city VARCHAR(100),\
  135. PACKNO VARCHAR(100),\
  136. INSERTTIME VARCHAR(100),\
  137. USERCODE VARCHAR(100))");
  138. }
  139. // query.exec("select name from user.sqlite_master where type='table' and name='SHKJ_ZXSH_TASK_SERVER'");
  140. // if(!query.next())
  141. // {
  142. // query.exec("CREATE TABLE USER.SHKJ_ZXSH_TASK_SERVER(\
  143. // TASK_ID INTEGER PRIMARY KEY,SSID VARCHAR(100),INSERTTIME VARCHAR(100),FINISHTIME VARCHAR(100),\
  144. // PROVINCE VARCHAR(100),CITY VARCHAR(100),USER_CODE VARCHAR(100),\
  145. // UPDATEDAYS NUMERIC,ISP CHAR(1),SEG TEXT,NEED_NUM NUMERIC,REAL_NUM NUMERIC,DEAL_STATUS CHAR(1))");
  146. // }
  147. // query.exec("insert into user.shkj_zxsh_task (ssid,optime,uptime,user_code,province,city,isp,dlnum,deal_status,isdel)\
  148. // values('ssid','2014-12-21 13:13:13',7,'xxw','山东','济南','1',130,'1','N')");
  149. return true;
  150. }
  151. QString SNCDataBase::getProductName()
  152. {
  153. return "极速号码魔方2019";
  154. }
  155. QString SNCDataBase::getAppName()
  156. {
  157. QSqlQuery query;
  158. query.exec("select value from sys.config where name='app_name' ");
  159. QString value="";
  160. if(query.next())
  161. {
  162. value = query.value(0).toString();
  163. }
  164. return value;
  165. }
  166. QString SNCDataBase::getLocalBannerAd()
  167. {
  168. QSqlQuery query;
  169. query.exec("select value from sys.config where name='banner_ad' ");
  170. QString value="";
  171. if(query.next())
  172. {
  173. value = query.value(0).toString();
  174. }
  175. return value;
  176. }
  177. QString SNCDataBase::getLocalBannerTopAd()
  178. {
  179. QSqlQuery query;
  180. query.exec("select value from sys.config where name='banner_topad' ");
  181. QString value="";
  182. if(query.next())
  183. {
  184. value = query.value(0).toString();
  185. }
  186. return value;
  187. }
  188. QString SNCDataBase::getLocalBannerBottomAd()
  189. {
  190. QSqlQuery query;
  191. query.exec("select value from sys.config where name='banner_bottomad' ");
  192. QString value="";
  193. if(query.next())
  194. {
  195. value = query.value(0).toString();
  196. }
  197. return value;
  198. }
  199. QString SNCDataBase::getLocalCachePath()
  200. {
  201. QSqlQuery query;
  202. query.exec("select value from sys.config where name='cache_path' ");
  203. QString value="";
  204. if(query.next())
  205. {
  206. value = query.value(0).toString();
  207. }
  208. return value;
  209. }
  210. QString SNCDataBase::getClientDefaultHost()
  211. {
  212. QSqlQuery query;
  213. query.exec("select host from sys.client_config where id='default' ");
  214. QString value="";
  215. if(query.next())
  216. {
  217. value = query.value(0).toString();
  218. }
  219. return value;
  220. }
  221. QString SNCDataBase::getClientDefaultPort()
  222. {
  223. QSqlQuery query;
  224. query.exec("select port from sys.client_config where id='default' ");
  225. QString value="";
  226. if(query.next())
  227. {
  228. value = query.value(0).toString();
  229. }
  230. return value;
  231. }
  232. QString SNCDataBase::getSplashTextColor()
  233. {
  234. QSqlQuery query;
  235. query.exec("select value from sys.config where name='splashtext_color' ");
  236. QString value="";
  237. if(query.next())
  238. {
  239. value = query.value(0).toString();
  240. }
  241. return value;
  242. }
  243. QString SNCDataBase::getUpdateAppName()
  244. {
  245. QSqlQuery query;
  246. query.exec("select value from sys.config where name='appupdate_name' ");
  247. QString value="";
  248. if(query.next())
  249. {
  250. value = query.value(0).toString();
  251. }
  252. return value;
  253. }
  254. QString SNCDataBase::getResourceName()
  255. {
  256. QSqlQuery query;
  257. query.exec("select value from sys.config where name='resource_name' ");
  258. QString value="";
  259. if(query.next())
  260. {
  261. value = query.value(0).toString();
  262. }
  263. return value;
  264. }
  265. QString SNCDataBase::getSplashImageName()
  266. {
  267. QSqlQuery query;
  268. query.exec("select value from sys.config where name='splashimage_name' ");
  269. QString value="";
  270. if(query.next())
  271. {
  272. value = query.value(0).toString();
  273. }
  274. return value;
  275. }
  276. QString SNCDataBase::getQssName()
  277. {
  278. QSqlQuery query;
  279. query.exec("select value from sys.config where name='qss_name' ");
  280. QString value="";
  281. if(query.next())
  282. {
  283. value = query.value(0).toString();
  284. }
  285. return value;
  286. }
  287. QString SNCDataBase::getWebsiteUrl()
  288. {
  289. QSqlQuery query;
  290. query.exec("select value from sys.config where name='website_url' ");
  291. QString value="";
  292. if(query.next())
  293. {
  294. value = query.value(0).toString();
  295. }
  296. return value;
  297. }
  298. QString SNCDataBase::getWebsiteTitle()
  299. {
  300. QSqlQuery query;
  301. query.exec("select value from sys.config where name='website_title' ");
  302. QString value="";
  303. if(query.next())
  304. {
  305. value = query.value(0).toString();
  306. }
  307. return value;
  308. }
  309. QString SNCDataBase::getHelpmeUrl()
  310. {
  311. QSqlQuery query;
  312. query.exec("select value from sys.config where name='helpme_url' ");
  313. QString value="";
  314. if(query.next())
  315. {
  316. value = query.value(0).toString();
  317. }
  318. return value;
  319. }
  320. QString SNCDataBase::getRiddleUrl()
  321. {
  322. QSqlQuery query;
  323. query.exec("select value from sys.config where name='riddle_url' ");
  324. QString value="";
  325. if(query.next())
  326. {
  327. value = query.value(0).toString();
  328. }
  329. return value;
  330. }
  331. QString SNCDataBase::getZxshUrl()
  332. {
  333. QSqlQuery query;
  334. query.exec("select value from sys.page_ad where name='ad_app2_zxsh' ");
  335. QString value="";
  336. if(query.next())
  337. {
  338. value = query.value(0).toString();
  339. }
  340. return value;
  341. }
  342. QString SNCDataBase::getAppHash()
  343. {
  344. QSqlQuery query;
  345. query.exec("select value from sys.config where name='apphash' ");
  346. QString value="";
  347. if(query.next())
  348. {
  349. value = query.value(0).toString();
  350. }
  351. return value;
  352. }
  353. QString SNCDataBase::getJSJCpnumMinSize()
  354. {
  355. QSqlQuery query;
  356. query.exec("select value from sys.config where name='JSJCpnumMinSize' ");
  357. QString value="";
  358. if(query.next())
  359. {
  360. value = query.value(0).toString();
  361. }
  362. if(!QRegExp("\\d+").exactMatch(value))
  363. return "1000";
  364. return value;
  365. }
  366. QString SNCDataBase::getJSJCpnumMaxSize()
  367. {
  368. QSqlQuery query;
  369. query.exec("select value from sys.config where name='JSJCpnumMaxSize' ");
  370. QString value="";
  371. if(query.next())
  372. {
  373. value = query.value(0).toString();
  374. }
  375. if(!QRegExp("\\d+").exactMatch(value))
  376. return "500000";
  377. return value;
  378. }
  379. QString SNCDataBase::getJSJCmonthMaxNumFree()
  380. {
  381. QSqlQuery query;
  382. query.exec("select value from sys.config where name='JSJCmonthMaxNum_free' ");
  383. QString value="";
  384. if(query.next())
  385. {
  386. value = query.value(0).toString();
  387. }
  388. if(!QRegExp("\\d+").exactMatch(value))
  389. return "100000";
  390. return value;
  391. }
  392. QString SNCDataBase::getJSJCmonthMaxNumPay()
  393. {
  394. QSqlQuery query;
  395. query.exec("select value from sys.config where name='JSJCmonthMaxNum_pay' ");
  396. QString value="";
  397. if(query.next())
  398. {
  399. value = query.value(0).toString();
  400. }
  401. if(!QRegExp("\\d+").exactMatch(value))
  402. return "10000000";
  403. return value;
  404. }
  405. QString SNCDataBase::getSSORegUrl()
  406. {
  407. QSqlQuery query;
  408. query.exec("select value from sys.config where name='sso_reg_url' ");
  409. QString value="";
  410. if(query.next())
  411. {
  412. value = query.value(0).toString();
  413. }
  414. return value;
  415. }
  416. QString SNCDataBase::getSSOAccountUrl()
  417. {
  418. QSqlQuery query;
  419. query.exec("select value from sys.config where name='sso_account_url' ");
  420. QString value="";
  421. if(query.next())
  422. {
  423. value = query.value(0).toString();
  424. }
  425. return value;
  426. }
  427. QString SNCDataBase::getSSOPayUrl()
  428. {
  429. QSqlQuery query;
  430. query.exec("select value from sys.config where name='sso_pay_url' ");
  431. QString value="";
  432. if(query.next())
  433. {
  434. value = query.value(0).toString();
  435. }
  436. return value;
  437. }
  438. QString SNCDataBase::getDefaultNumchkCorp()
  439. {
  440. QSqlQuery query;
  441. query.exec("select value from sys.config where name='default_numchk_corp' ");
  442. QString value="";
  443. if(query.next())
  444. {
  445. value = query.value(0).toString();
  446. }
  447. return value;
  448. }
  449. void SNCDataBase::updateSSORegUrl(QString url)
  450. {
  451. QSqlQuery query;
  452. QSqlDatabase::database().transaction();
  453. query.exec("delete from sys.config where name='sso_reg_url'");
  454. query.prepare("insert into sys.config values('sso_reg_url',?)");
  455. QVariant value = url;
  456. query.addBindValue(value);
  457. query.exec();
  458. QSqlDatabase::database().commit();
  459. }
  460. void SNCDataBase::updateSSOAccountUrl(QString url)
  461. {
  462. QSqlQuery query;
  463. QSqlDatabase::database().transaction();
  464. query.exec("delete from sys.config where name='sso_account_url'");
  465. query.prepare("insert into sys.config values('sso_account_url',?)");
  466. QVariant value = url;
  467. query.addBindValue(value);
  468. query.exec();
  469. QSqlDatabase::database().commit();
  470. }
  471. void SNCDataBase::updateSSOPayUrl(QString url)
  472. {
  473. QSqlQuery query;
  474. QSqlDatabase::database().transaction();
  475. query.exec("delete from sys.config where name='sso_pay_url'");
  476. query.prepare("insert into sys.config values('sso_pay_url',?)");
  477. QVariant value = url;
  478. query.addBindValue(value);
  479. query.exec();
  480. QSqlDatabase::database().commit();
  481. }
  482. void SNCDataBase::updateAppHash(QString apphash)
  483. {
  484. QSqlQuery query;
  485. QSqlDatabase::database().transaction();
  486. query.exec("delete from sys.config where name='apphash'");
  487. query.prepare("insert into sys.config values('apphash',?)");
  488. QVariant value = apphash;
  489. query.addBindValue(value);
  490. query.exec();
  491. QSqlDatabase::database().commit();
  492. }
  493. void SNCDataBase::updateDefaultNumchkCorp(QString corp)
  494. {
  495. QSqlQuery query;
  496. QSqlDatabase::database().transaction();
  497. query.exec("delete from sys.config where name='default_numchk_corp'");
  498. query.prepare("insert into sys.config values('default_numchk_corp',?)");
  499. QVariant value = corp;
  500. query.addBindValue(value);
  501. query.exec();
  502. QSqlDatabase::database().commit();
  503. }
  504. QString SNCDataBase::getExportDir()
  505. {
  506. QSqlQuery query;
  507. query.exec("select value from sys.config where name='export_dir' ");
  508. QString value="";
  509. if(query.next())
  510. {
  511. value = query.value(0).toString();
  512. }
  513. return value;
  514. }
  515. QString SNCDataBase::getAppConfigUrl()
  516. {
  517. QSqlQuery query;
  518. query.exec("select value from sys.config where name='appconfig_url' ");
  519. QString value="";
  520. if(query.next())
  521. {
  522. value = query.value(0).toString();
  523. }
  524. return value;
  525. }
  526. QString SNCDataBase::getDataConfigUrl()
  527. {
  528. QSqlQuery query;
  529. query.exec("select value from sys.config where name='dataconfig_url' ");
  530. QString value="";
  531. if(query.next())
  532. {
  533. value = query.value(0).toString();
  534. }
  535. return value;
  536. }
  537. QString SNCDataBase::getImportDir()
  538. {
  539. QSqlQuery query;
  540. query.exec("select value from sys.config where name='import_dir' ");
  541. QString value="";
  542. if(query.next())
  543. {
  544. value = query.value(0).toString();
  545. }
  546. return value;
  547. }
  548. QStringList SNCDataBase::getConfigServerUrls()
  549. {
  550. QSqlQuery query;
  551. query.exec("select value from sys.config where name='config_url' ");
  552. QStringList values;
  553. while(query.next())
  554. {
  555. values << query.value(0).toString();
  556. }
  557. return values;
  558. }
  559. QMap<QString,QString> SNCDataBase::getLocalTextAds()
  560. {
  561. QSqlQuery query;
  562. QMap<QString,QString> ads;
  563. query.exec("select adurl,adtext from sys.ad ");
  564. while(query.next())
  565. {
  566. ads.insert(query.value(0).toString(),query.value(1).toString());
  567. }
  568. return ads;
  569. }
  570. QMap<QString, QString> SNCDataBase::getLocalPageAds()
  571. {
  572. QSqlQuery query;
  573. QMap<QString,QString> ads;
  574. query.exec("select ad_id,ad_url from sys.page_ad ");
  575. while(query.next())
  576. {
  577. ads.insert(query.value(0).toString(),query.value(1).toString());
  578. }
  579. return ads;
  580. }
  581. QMap<QString,QStringList> SNCDataBase::getLocalClientConfigs()
  582. {
  583. QSqlQuery query;
  584. QMap<QString,QStringList> configs;
  585. query.exec("select id,name,notice_url,host,port from sys.client_config ");
  586. while(query.next())
  587. {
  588. QStringList list;
  589. list<<query.value(1).toString()<<query.value(2).toString()<<query.value(3).toString()<<query.value(4).toString();
  590. configs.insert(query.value(0).toString(),list);
  591. }
  592. return configs;
  593. }
  594. QString SNCDataBase::getAppVersion()
  595. {
  596. return "7.6.2";//必须是7.1.0三段
  597. }
  598. QString SNCDataBase::getAppVersion2()
  599. {
  600. return "7.6.2";
  601. }
  602. QString SNCDataBase::getSegVersion()
  603. {
  604. QSqlQuery query;
  605. query.exec("select value from num.config where name='seg_version' ");
  606. QString value="";
  607. if(query.next())
  608. {
  609. value = query.value(0).toString();
  610. }
  611. return value;
  612. }
  613. void SNCDataBase::updateConfigUrls(QStringList config_urls)
  614. {
  615. QSqlQuery query;
  616. QSqlDatabase::database().transaction();
  617. query.exec("delete from sys.config where name='config_url'");
  618. query.prepare("insert into sys.config values(?,?)");
  619. QVariantList names,values;
  620. for(int i=0;i<config_urls.size();i++)
  621. {
  622. names<<"config_url";
  623. values<<config_urls.at(i);
  624. }
  625. query.addBindValue(names);
  626. query.addBindValue(values);
  627. query.execBatch();
  628. QSqlDatabase::database().commit();
  629. }
  630. void SNCDataBase::updateTextAd(QMap<QString, QString> ads)
  631. {
  632. QSqlQuery query;
  633. QSqlDatabase::database().transaction();
  634. query.exec("delete from sys.ad");
  635. query.prepare("insert into sys.ad values(?,?)");
  636. QVariantList urls,contents;
  637. foreach(QString key,ads.keys())
  638. {
  639. urls<<key;
  640. contents<<ads.value(key);
  641. }
  642. query.addBindValue(urls);
  643. query.addBindValue(contents);
  644. query.execBatch();
  645. QSqlDatabase::database().commit();
  646. }
  647. void SNCDataBase::updatePageAd(QMap<QString, QString> ads)
  648. {
  649. QSqlQuery query;
  650. QSqlDatabase::database().transaction();
  651. query.exec("delete from sys.page_ad");
  652. query.prepare("insert into sys.page_ad values(?,?)");
  653. QVariantList ad_ids,ad_urls;
  654. foreach(QString key,ads.keys())
  655. {
  656. ad_ids<<key;
  657. ad_urls<<ads.value(key);
  658. }
  659. query.addBindValue(ad_ids);
  660. query.addBindValue(ad_urls);
  661. query.execBatch();
  662. QSqlDatabase::database().commit();
  663. }
  664. void SNCDataBase::updateCorpPrefix(QMap<QString, QString> prefixes)
  665. {
  666. //qDebug()<<prefixes;
  667. QSqlQuery query;
  668. QSqlDatabase::database().transaction();
  669. query.exec("delete from sys.corp_prefix");
  670. query.prepare("insert into sys.corp_prefix values(?,?)");
  671. QVariantList corps,contents;
  672. foreach(QString key,prefixes.keys())
  673. {
  674. corps<<key;
  675. contents<<prefixes.value(key);
  676. }
  677. query.addBindValue(corps);
  678. query.addBindValue(contents);
  679. query.execBatch();
  680. QSqlDatabase::database().commit();
  681. }
  682. void SNCDataBase::updateClientConfig(QMap<QString, QStringList> configs, QString default_host, QString default_port)
  683. {
  684. //qDebug()<<configs;
  685. QSqlQuery query;
  686. QSqlDatabase::database().transaction();
  687. query.exec("delete from sys.client_config");
  688. query.prepare("insert into sys.client_config values(?,?,?,?,?)");
  689. QVariantList ids, names,notice_urls,hosts,ports;
  690. ids<<"default";
  691. names<<"default";
  692. notice_urls<<"www.iyoogo.com";
  693. hosts<<default_host;
  694. ports<<default_port;
  695. foreach(QString key,configs.keys())
  696. {
  697. ids<<key;
  698. names<<configs.value(key).at(0);
  699. notice_urls<<configs.value(key).at(1);
  700. hosts<<configs.value(key).at(2);
  701. ports<<configs.value(key).at(3);
  702. }
  703. query.addBindValue(ids);
  704. query.addBindValue(names);
  705. query.addBindValue(notice_urls);
  706. query.addBindValue(hosts);
  707. query.addBindValue(ports);
  708. query.execBatch();
  709. QSqlDatabase::database().commit();
  710. }
  711. void SNCDataBase::updateBannerAd(QString banner_ad)
  712. {
  713. QSqlQuery query;
  714. QSqlDatabase::database().transaction();
  715. query.exec("delete from sys.config where name='banner_ad'");
  716. query.prepare("insert into sys.config values('banner_ad',?)");
  717. QVariant value = banner_ad;
  718. query.addBindValue(value);
  719. query.exec();
  720. QSqlDatabase::database().commit();
  721. }
  722. void SNCDataBase::updateBannerTopAd(QString banner_ad)
  723. {
  724. QSqlQuery query;
  725. QSqlDatabase::database().transaction();
  726. query.exec("delete from sys.config where name='banner_topad'");
  727. query.prepare("insert into sys.config values('banner_topad',?)");
  728. QVariant value = banner_ad;
  729. query.addBindValue(value);
  730. query.exec();
  731. QSqlDatabase::database().commit();
  732. }
  733. void SNCDataBase::updateBannerBottomAd(QString banner_ad)
  734. {
  735. QSqlQuery query;
  736. QSqlDatabase::database().transaction();
  737. query.exec("delete from sys.config where name='banner_bottomad'");
  738. query.prepare("insert into sys.config values('banner_bottomad',?)");
  739. QVariant value = banner_ad;
  740. query.addBindValue(value);
  741. query.exec();
  742. QSqlDatabase::database().commit();
  743. }
  744. void SNCDataBase::updateHelpmeUrl(QString helpme_url)
  745. {
  746. QSqlQuery query;
  747. QSqlDatabase::database().transaction();
  748. query.exec("delete from sys.config where name='helpme_url'");
  749. query.prepare("insert into sys.config values('helpme_url',?)");
  750. QVariant value = helpme_url;
  751. query.addBindValue(value);
  752. query.exec();
  753. QSqlDatabase::database().commit();
  754. }
  755. void SNCDataBase::updateWebsiteUrl(QString website_url)
  756. {
  757. QSqlQuery query;
  758. QSqlDatabase::database().transaction();
  759. query.exec("delete from sys.config where name='website_url'");
  760. query.prepare("insert into sys.config values('website_url',?)");
  761. QVariant value = website_url;
  762. query.addBindValue(value);
  763. query.exec();
  764. QSqlDatabase::database().commit();
  765. }
  766. void SNCDataBase::updateWebsiteTitle(QString website_title)
  767. {
  768. QSqlQuery query;
  769. QSqlDatabase::database().transaction();
  770. query.exec("delete from sys.config where name='website_title'");
  771. query.prepare("insert into sys.config values('website_title',?)");
  772. QVariant value = website_title;
  773. query.addBindValue(value);
  774. query.exec();
  775. QSqlDatabase::database().commit();
  776. }
  777. void SNCDataBase::updateRiddleUrl(QString url)
  778. {
  779. QSqlQuery query;
  780. QSqlDatabase::database().transaction();
  781. query.exec("delete from sys.config where name='riddle_url'");
  782. query.prepare("insert into sys.config values('riddle_url',?)");
  783. QVariant value = url;
  784. query.addBindValue(value);
  785. query.exec();
  786. QSqlDatabase::database().commit();
  787. }
  788. void SNCDataBase::updateExportDir(QString export_dir)
  789. {
  790. QSqlQuery query;
  791. QSqlDatabase::database().transaction();
  792. query.exec("delete from sys.config where name='export_dir'");
  793. query.prepare("insert into sys.config values('export_dir',?)");
  794. QVariant value = export_dir;
  795. query.addBindValue(value);
  796. query.exec();
  797. QSqlDatabase::database().commit();
  798. }
  799. void SNCDataBase::updateImportDir(QString dir)
  800. {
  801. QSqlQuery query;
  802. QSqlDatabase::database().transaction();
  803. query.exec("delete from sys.config where name='import_dir'");
  804. query.prepare("insert into sys.config values('import_dir',?)");
  805. QVariant value = dir;
  806. query.addBindValue(value);
  807. query.exec();
  808. QSqlDatabase::database().commit();
  809. }
  810. void SNCDataBase::updateSegInfo(QString version,QString baseSegFile,QString dynamicSegFile)
  811. {
  812. QFile::copy(QCoreApplication::applicationDirPath()+"/mseg.db",QCoreApplication::applicationDirPath()+"/mseg2.db");
  813. //QSqlQuery query(QSqlDatabase::database("mseg2"));
  814. QSqlQuery query;
  815. query.exec("ATTACH DATABASE 'mseg2.db' AS num2");
  816. QFile file(baseSegFile);
  817. file.open(QIODevice::ReadOnly);
  818. QTextStream in(&file);
  819. QVariantList seg,province,city;
  820. QSqlDatabase::database().transaction();
  821. while(!in.atEnd())
  822. {
  823. QString line=in.readLine();
  824. QStringList fields = line.split(",");
  825. int i=0;
  826. seg << fields.at(i++);
  827. province << fields.at(i++);
  828. city << fields.at(i++);
  829. }
  830. file.close();
  831. query.exec("drop table MSEG_tmp");
  832. query.exec("CREATE TABLE MSEG_tmp (seg char(7),province varchar(20),city varchar(50))");
  833. query.prepare("INSERT INTO MSEG_tmp values(?,?,?)");
  834. query.addBindValue(seg);
  835. query.addBindValue(province);
  836. query.addBindValue(city);
  837. query.execBatch();
  838. query.exec("delete from num2.mseg where seg in (select seg from MSEG_tmp )");
  839. query.exec("insert into num2.mseg select * from MSEG_tmp");
  840. query.exec("delete from num2.city");
  841. query.exec("insert into num2.CITY select province,city,count(*) as total from num2.mseg group by province,city");
  842. query.finish();
  843. QFile file2(dynamicSegFile);
  844. file2.open(QIODevice::ReadOnly);
  845. QTextStream in2(&file2);
  846. QVariantList seg2,total,s1,s2,s3,s4;
  847. while(!in2.atEnd())
  848. {
  849. QString line=in2.readLine();
  850. QStringList fields = line.split(",");
  851. int i=0;
  852. seg2 << fields.at(i++);
  853. total << fields.at(i++);
  854. s1 << fields.at(i++);
  855. s2 << fields.at(i++);
  856. s3 << fields.at(i++);
  857. s4 << fields.at(i++);
  858. }
  859. file2.close();
  860. query.exec("drop table SEG_DYNAMIC_tmp");
  861. query.exec("CREATE TABLE SEG_DYNAMIC_tmp (seg char(7),total int,S1 numberic,S2 numberic,S3 numberic,S4 numberic)");
  862. query.prepare("insert into SEG_DYNAMIC_tmp(seg,total,s1,s2,s3,s4) values(?,?,?,?,?,?)");
  863. query.addBindValue(seg2);
  864. query.addBindValue(total);
  865. query.addBindValue(s1);
  866. query.addBindValue(s2);
  867. query.addBindValue(s3);
  868. query.addBindValue(s4);
  869. query.execBatch();
  870. query.exec("delete from num2.SEG_DYNAMIC where seg in (select seg from SEG_DYNAMIC_tmp )");
  871. query.exec("insert into num2.seg_dynamic select * from SEG_DYNAMIC_tmp");
  872. query.exec("delete from num2.config where name='seg_version'");
  873. query.finish();
  874. query.prepare("insert into num2.config(name,value) values('seg_version',?)");
  875. query.addBindValue(version);
  876. query.exec();
  877. QSqlDatabase::database().commit();
  878. }
  879. void SNCDataBase::updateBaseSegInfo(QString version, QString baseSegFile)
  880. {
  881. QSqlQuery query;
  882. QFile file(baseSegFile);
  883. file.open(QIODevice::ReadOnly);
  884. QTextStream in(&file);
  885. QVariantList seg,province,city,areacode;
  886. QTime t;
  887. t.start();
  888. while(!in.atEnd())
  889. {
  890. QString line=in.readLine();
  891. QStringList fields = line.split(",");
  892. int i=0;
  893. seg << fields.at(i++);
  894. province << fields.at(i++);
  895. city << fields.at(i++);
  896. areacode << fields.at(i++);
  897. }
  898. qDebug()<<"start1 read"<<t.elapsed();
  899. t.start();
  900. file.close();
  901. QSqlDatabase::database().transaction();
  902. query.exec("delete from num.mseg");
  903. query.finish();
  904. QSqlDatabase::database().commit();
  905. qDebug()<<"start2 read"<<t.elapsed();
  906. t.start();
  907. QSqlDatabase::database().transaction();
  908. query.prepare("INSERT INTO num.mseg values(?,?,?,?)");
  909. query.addBindValue(seg);
  910. query.addBindValue(province);
  911. query.addBindValue(city);
  912. query.addBindValue(areacode);
  913. query.execBatch();
  914. query.exec("delete from num.city");
  915. query.exec("insert into num.CITY select province,city,areacode,count(*) as total from num.mseg group by province,city,areacode");
  916. query.finish();
  917. query.exec("delete from num.config where name='seg_version'");
  918. query.finish();
  919. query.prepare("insert into num.config(name,value) values('seg_version',?)");
  920. query.addBindValue(version);
  921. query.exec();
  922. QSqlDatabase::database().commit();
  923. qDebug()<<"start3 read"<<t.elapsed();
  924. }
  925. void SNCDataBase::updateDynamicSegInfo(QString checkdate,QString areacode,QString dynamicSegFile)
  926. {
  927. QSqlQuery query;
  928. QFile file2(dynamicSegFile);
  929. file2.open(QIODevice::ReadOnly);
  930. QTextStream in2(&file2);
  931. QSqlDatabase::database().transaction();
  932. QVariantList seg2,s1,s2,s3,s4,index1,index2,checkday;
  933. while(!in2.atEnd())
  934. {
  935. QString line=in2.readLine();
  936. QStringList fields = line.split(",");
  937. int i=0;
  938. seg2 << fields.at(i++);
  939. s1 << fields.at(i++);
  940. s2 << fields.at(i++);
  941. s3 << fields.at(i++);
  942. s4 << fields.at(i++);
  943. index1 << fields.at(i++);
  944. index2 << fields.at(i++);
  945. checkday << fields.at(i++);
  946. }
  947. file2.close();
  948. query.exec("drop table SEG_DYNAMIC_tmp");
  949. query.exec("CREATE TABLE SEG_DYNAMIC_tmp (seg char(7),S1 numberic,S2 numberic,S3 numberic,S4 numberic,sample_index numberic,recommend_index numberic,check_day numberic)");
  950. query.finish();
  951. query.prepare("insert into SEG_DYNAMIC_tmp(seg,s1,s2,s3,s4,sample_index,recommend_index,check_day) values(?,?,?,?,?,?,?,?)");
  952. query.addBindValue(seg2);
  953. query.addBindValue(s1);
  954. query.addBindValue(s2);
  955. query.addBindValue(s3);
  956. query.addBindValue(s4);
  957. query.addBindValue(index1);
  958. query.addBindValue(index2);
  959. query.addBindValue(checkday);
  960. query.execBatch();
  961. query.finish();
  962. query.exec("delete from SEG_DYNAMIC where seg in (select seg from SEG_DYNAMIC_tmp )");
  963. query.exec("insert into SEG_DYNAMIC select * from SEG_DYNAMIC_tmp");
  964. query.finish();
  965. query.prepare("delete from SEG_DYNAMIC_UPDATE_LOG where areacode=?");
  966. query.addBindValue(areacode);
  967. query.exec();
  968. query.finish();
  969. query.prepare("insert into SEG_DYNAMIC_UPDATE_LOG(areacode,LAST_CHECK_DATE) values(?,?)");
  970. query.addBindValue(areacode);
  971. query.addBindValue(checkdate);
  972. query.exec();
  973. QSqlDatabase::database().commit();
  974. }
  975. void SNCDataBase::updateDynamicSegInfo(QString checkdate, QStringList list)
  976. {
  977. QSqlQuery query;
  978. QVariant seg2,s1,s2,s3,s4,index1,index2,checkday;
  979. int i=0;
  980. seg2 = list.at(i++);
  981. s1 = list.at(i++);
  982. s2 = list.at(i++);
  983. s3 = list.at(i++);
  984. s4 = list.at(i++);
  985. index1 = list.at(i++);
  986. index2 = list.at(i++);
  987. checkday = list.at(i++);
  988. query.exec("drop table SEG_DYNAMIC_tmp");
  989. query.exec("CREATE TABLE SEG_DYNAMIC_tmp (seg char(7),S1 numberic,S2 numberic,S3 numberic,S4 numberic,sample_index numberic,recommend_index numberic,check_day numberic)");
  990. query.finish();
  991. query.prepare("insert into SEG_DYNAMIC_tmp(seg,s1,s2,s3,s4,sample_index,recommend_index,check_day) values(?,?,?,?,?,?,?,?)");
  992. query.addBindValue(seg2);
  993. query.addBindValue(s1);
  994. query.addBindValue(s2);
  995. query.addBindValue(s3);
  996. query.addBindValue(s4);
  997. query.addBindValue(index1);
  998. query.addBindValue(index2);
  999. query.addBindValue(checkday);
  1000. query.exec();
  1001. query.finish();
  1002. query.exec("delete from SEG_DYNAMIC where seg in (select seg from SEG_DYNAMIC_tmp )");
  1003. query.exec("insert into SEG_DYNAMIC select * from SEG_DYNAMIC_tmp");
  1004. query.finish();
  1005. QSqlDatabase::database().commit();
  1006. }
  1007. void SNCDataBase::updateSegRecInfo(QString SegFile)
  1008. {
  1009. QFile file(SegFile);
  1010. file.open(QIODevice::ReadOnly);
  1011. QTextStream in(&file);
  1012. QVariantList seg,province,city,zipcode,s1,s2,s3,s4,sample_index,rec_index,check_day;
  1013. while(!in.atEnd())
  1014. {
  1015. QString line=in.readLine();
  1016. QStringList fields = line.split(",");
  1017. int i=0;
  1018. seg << fields.at(i++);
  1019. province << fields.at(i++);
  1020. city << fields.at(i++);
  1021. zipcode << fields.at(i++);
  1022. s1 << fields.at(i++);
  1023. s2 << fields.at(i++);
  1024. s3 << fields.at(i++);
  1025. s4 << fields.at(i++);
  1026. sample_index << fields.at(i++);
  1027. rec_index << fields.at(i++);
  1028. check_day << fields.at(i++);
  1029. }
  1030. file.close();
  1031. QSqlQuery query;
  1032. QSqlDatabase::database().transaction();
  1033. query.exec("delete from SEG_rec");
  1034. query.finish();
  1035. query.prepare("insert into SEG_rec(seg,province,city,zipcode,s1,s2,s3,s4,sample_index,rec_index,check_day) values(?,?,?,?,?,?,?,?,?,?,?)");
  1036. query.addBindValue(seg);
  1037. query.addBindValue(province);
  1038. query.addBindValue(city);
  1039. query.addBindValue(zipcode);
  1040. query.addBindValue(s1);
  1041. query.addBindValue(s2);
  1042. query.addBindValue(s3);
  1043. query.addBindValue(s4);
  1044. query.addBindValue(sample_index);
  1045. query.addBindValue(rec_index);
  1046. query.addBindValue(check_day);
  1047. query.execBatch();
  1048. query.finish();
  1049. QSqlDatabase::database().commit();
  1050. }
  1051. QString SNCDataBase::getAreaCodeByCityName(QString city)
  1052. {
  1053. QSqlQuery query;
  1054. query.prepare("select areacode from num.city where city=? ");
  1055. query.addBindValue(city);
  1056. query.exec();
  1057. QString value="";
  1058. if(query.next())
  1059. {
  1060. value = query.value(0).toString();
  1061. }
  1062. return value;
  1063. }
  1064. QString SNCDataBase::getCitySegLastCheckDate(QString areacode)
  1065. {
  1066. QSqlQuery query;
  1067. query.prepare("select last_check_date from seg_dynamic_update_log where areacode = ? ");
  1068. query.addBindValue(areacode);
  1069. query.exec();
  1070. QString value="";
  1071. if(query.next())
  1072. {
  1073. value = query.value(0).toString();
  1074. }
  1075. return value;
  1076. }
  1077. QList<QStringList> SNCDataBase::getRegionInfo()
  1078. {
  1079. QSqlQuery query;
  1080. QList<QStringList> maps;
  1081. QStringList citys;
  1082. QStringList provinces;
  1083. query.exec("select province,city from num.city order by province desc ");
  1084. while(query.next())
  1085. {
  1086. QString province = query.value(0).toString();
  1087. QString city = query.value(1).toString();
  1088. citys<<city;
  1089. provinces<<province;
  1090. }
  1091. maps.append(citys);
  1092. maps.append(provinces);
  1093. return maps;
  1094. }
  1095. QStringList SNCDataBase::getSegmentByCityAndRange(QString city, QString start, QString end)
  1096. {
  1097. QString where = " where city = '" + city + "' ";
  1098. where +=" and seg>= '" +start + "' and seg <='" + end +"'";
  1099. QSqlQuery query;
  1100. QStringList list;
  1101. query.exec("select seg from num.mseg " + where + " order by seg asc");
  1102. //qDebug()<<"select seg from num.mseg " + where + " ";
  1103. while(query.next())
  1104. list<<query.value(0).toString();
  1105. return list;
  1106. }
  1107. QStringList SNCDataBase::getSegmentByCityAll(QString city)
  1108. {
  1109. QString where = " where city = '"+city+"' ";
  1110. QSqlQuery query;
  1111. query.exec("select seg from num.mseg " + where + " order by seg asc");
  1112. QStringList list;
  1113. while(query.next())
  1114. list<<query.value(0).toString();
  1115. return list;
  1116. }
  1117. QStringList SNCDataBase::getSegmentByCityAndCorp(QString city, QString corp)
  1118. {
  1119. QString where = " where city = '"+city+"' ";
  1120. QString cmcc,cutc,ctcc;
  1121. cmcc = getCMCC();
  1122. cutc = getCUTC();
  1123. ctcc = getCTCC();
  1124. if(corp=="CMCC")
  1125. where +=" and substr(seg,1,3) in ("+cmcc+")";
  1126. else if(corp=="CUTC")
  1127. where +=" and substr(seg,1,3) in ("+cutc+")";
  1128. else if(corp=="CTCC")
  1129. where +=" and substr(seg,1,3) in ("+ctcc+")";
  1130. else
  1131. where +=" and 0>1 ";
  1132. QSqlQuery query;
  1133. query.exec("select seg from num.mseg " + where + " order by seg asc ");
  1134. QStringList list;
  1135. while(query.next())
  1136. list<<query.value(0).toString();
  1137. return list;
  1138. }
  1139. QString SNCDataBase::getCMCC()
  1140. {
  1141. QSqlQuery query;
  1142. query.exec("select prefix from sys.corp_prefix where corp='CMCC' ");
  1143. QString value="";
  1144. if(query.next())
  1145. {
  1146. value = query.value(0).toString();
  1147. }
  1148. return value;
  1149. }
  1150. QString SNCDataBase::getCUTC()
  1151. {
  1152. QSqlQuery query;
  1153. query.exec("select prefix from sys.corp_prefix where corp='CUTC' ");
  1154. QString value="";
  1155. if(query.next())
  1156. {
  1157. value = query.value(0).toString();
  1158. }
  1159. return value;
  1160. }
  1161. QString SNCDataBase::getCTCC()
  1162. {
  1163. QSqlQuery query;
  1164. query.exec("select prefix from sys.corp_prefix where corp='CTCC' ");
  1165. QString value="";
  1166. if(query.next())
  1167. {
  1168. value = query.value(0).toString();
  1169. }
  1170. return value;
  1171. }
  1172. QStringList SNCDataBase::getSegmentDynamicByCityAndRange(QString city, QString start, QString end)
  1173. {
  1174. QString where = " where a.city = '" + city + "' ";
  1175. where +=" and a.seg>= '" +start + "' and a.seg <='" + end +"'";
  1176. QSqlQuery query;
  1177. QStringList list;
  1178. query.exec("select a.seg,b.s1,b.s2,b.s3,b.s4,b.sample_index,b.recommend_index,b.check_day from num.mseg a LEFT JOIN seg_dynamic b on a.seg = b.seg " + where + " ");
  1179. QSqlRecord rec = query.record();
  1180. int col = rec.count();
  1181. while(query.next())
  1182. {
  1183. QString info="";
  1184. for(int i=0;i<col;i++)
  1185. {
  1186. if(query.value(i).isNull())
  1187. {
  1188. if(i==col-1)
  1189. info += "-1,";
  1190. else
  1191. info += "0,";
  1192. }
  1193. else
  1194. {
  1195. info += query.value(i).toString()+",";
  1196. }
  1197. }
  1198. list<<info;
  1199. }
  1200. return list;
  1201. }
  1202. QStringList SNCDataBase::getSegmentDynamic(QString city, QString corp, int days)
  1203. {
  1204. QString where = " where a.city = '"+city+"' ";
  1205. QString cmcc,cutc,ctcc;
  1206. cmcc = getCMCC();
  1207. cutc = getCUTC();
  1208. ctcc = getCTCC();
  1209. if(corp=="CMCC")
  1210. where +=" and substr(a.seg,1,3) in ("+cmcc+")";
  1211. else if(corp=="CUTC")
  1212. where +=" and substr(a.seg,1,3) in ("+cutc+")";
  1213. else if(corp=="CTCC")
  1214. where +=" and substr(a.seg,1,3) in ("+ctcc+")";
  1215. else
  1216. where +=" and 1>0 ";
  1217. where += " and b.check_day<" + QString::number(days);
  1218. QSqlQuery query;
  1219. query.exec("select a.seg,b.s1,b.s2,b.s3,b.s4,b.sample_index,b.recommend_index,b.check_day from num.mseg a LEFT JOIN seg_dynamic b on a.seg = b.seg " + where + " ");
  1220. QSqlRecord rec = query.record();
  1221. int col = rec.count();
  1222. QStringList list;
  1223. while(query.next())
  1224. {
  1225. QString info="";
  1226. for(int i=0;i<col;i++)
  1227. {
  1228. if(query.value(i).isNull())
  1229. {
  1230. if(i==col-1)
  1231. info += "-1,";
  1232. else
  1233. info += "0,";
  1234. }
  1235. else
  1236. {
  1237. info += query.value(i).toString()+",";
  1238. }
  1239. }
  1240. list<<info;
  1241. }
  1242. return list;
  1243. }
  1244. QStringList SNCDataBase::getSegmentDynamicByCityAll(QString city)
  1245. {
  1246. QString where = " where city = '"+city+"' ";
  1247. QSqlQuery query;
  1248. query.exec("select a.seg,b.s1,b.s2,b.s3,b.s4,b.sample_index,b.recommend_index,b.check_day from ( select seg from num.mseg "+where +" ) a LEFT JOIN seg_dynamic b on a.seg = b.seg " );
  1249. //query.exec("select a.seg,b.total,b.s1,b.s2,b.s3,b.s4 from num.mseg a LEFT JOIN seg_dynamic b on a.seg = b.seg " + where + " ");
  1250. QStringList list;
  1251. QSqlRecord rec = query.record();
  1252. int col = rec.count();
  1253. while(query.next())
  1254. {
  1255. QString info="";
  1256. for(int i=0;i<col;i++)
  1257. {
  1258. if(query.value(i).isNull())
  1259. {
  1260. if(i==col-1)
  1261. info += "-1,";
  1262. else
  1263. info += "0,";
  1264. }
  1265. else
  1266. {
  1267. info += query.value(i).toString()+",";
  1268. }
  1269. }
  1270. list<<info;
  1271. }
  1272. return list;
  1273. }
  1274. QStringList SNCDataBase::getSegmentDynamicByCityAndCorp(QString city, QString corp)
  1275. {
  1276. QString where = " where a.city = '"+city+"' ";
  1277. QString cmcc,cutc,ctcc;
  1278. //cmcc = "'134','135','136','137','138','139','147','150','151','152','154','157','158','159','182','183','187','188'";
  1279. //cutc = "'130','131','132','145','155','156','185','186'";
  1280. //ctcc = "'133','153','180','189'";
  1281. cmcc = getCMCC();
  1282. cutc = getCUTC();
  1283. ctcc = getCTCC();
  1284. if(corp=="CMCC")
  1285. where +=" and substr(a.seg,1,3) in ("+cmcc+")";
  1286. else if(corp=="CUTC")
  1287. where +=" and substr(a.seg,1,3) in ("+cutc+")";
  1288. else if(corp=="CTCC")
  1289. where +=" and substr(a.seg,1,3) in ("+ctcc+")";
  1290. else
  1291. where +=" and 0>1 ";
  1292. QSqlQuery query;
  1293. query.exec("select a.seg,b.s1,b.s2,b.s3,b.s4,b.sample_index,b.recommend_index,b.check_day from num.mseg a LEFT JOIN seg_dynamic b on a.seg = b.seg " + where + " ");
  1294. QSqlRecord rec = query.record();
  1295. int col = rec.count();
  1296. QStringList list;
  1297. while(query.next())
  1298. {
  1299. QString info="";
  1300. for(int i=0;i<col;i++)
  1301. {
  1302. if(query.value(i).isNull())
  1303. {
  1304. if(i==col-1)
  1305. info += "-1,";
  1306. else
  1307. info += "0,";
  1308. }
  1309. else
  1310. {
  1311. info += query.value(i).toString()+",";
  1312. }
  1313. }
  1314. list<<info;
  1315. }
  1316. return list;
  1317. }
  1318. QMap<QString,QString> SNCDataBase::groupSegmentIntoCity(QStringList segments)
  1319. {
  1320. QSqlQuery query;
  1321. query.exec("truncate table tmp_number");
  1322. query.prepare("insert into tmp_number values(?)");
  1323. QVariantList varList;
  1324. for(int i=0;i<segments.size();i++)
  1325. {
  1326. varList<<segments.at(i);
  1327. }
  1328. query.addBindValue(varList);
  1329. QSqlDatabase::database().transaction();
  1330. query.execBatch();
  1331. QSqlDatabase::database().commit();
  1332. query.exec("select a.seg,b.city from tmp_number a inner join num.mseg b on a.seg =b.seg ");
  1333. QString city;
  1334. QString segment;
  1335. QMap<QString,QString> mapSegments;
  1336. while(query.next())
  1337. {
  1338. segment = query.value(0).toString();
  1339. city = query.value(1).toString();
  1340. if(city.isEmpty())
  1341. city="未知地区";
  1342. mapSegments.insert(segment,city);
  1343. }
  1344. return mapSegments;
  1345. }
  1346. QMap<QString,QString> SNCDataBase::groupSegmentIntoProvince(QStringList segments)
  1347. {
  1348. QSqlQuery query;
  1349. query.exec("truncate table tmp_number");
  1350. query.prepare("insert into tmp_number values(?)");
  1351. QVariantList varList;
  1352. for(int i=0;i<segments.size();i++)
  1353. {
  1354. varList<<segments.at(i);
  1355. }
  1356. query.addBindValue(varList);
  1357. QSqlDatabase::database().transaction();
  1358. query.execBatch();
  1359. QSqlDatabase::database().commit();
  1360. query.exec("select a.seg,b.province from tmp_number a inner join num.mseg b on a.seg =b.seg ");
  1361. QString province;
  1362. QString segment;
  1363. QMap<QString,QString> mapSegments;
  1364. while(query.next())
  1365. {
  1366. segment = query.value(0).toString();
  1367. province = query.value(1).toString();
  1368. if(province.isEmpty())
  1369. province="未知地区";
  1370. mapSegments.insert(segment,province);
  1371. }
  1372. return mapSegments;
  1373. }
  1374. QMap<int ,QString> SNCDataBase::getSysSolutions()
  1375. {
  1376. QString where = " ";
  1377. QSqlQuery query;
  1378. query.exec("select sln_id,name from sys.NUMBER_RULES_SYSTEM " + where + " ");
  1379. QMap<int,QString> map;
  1380. while(query.next())
  1381. {
  1382. map.insert(query.value(0).toInt(),query.value(1).toString());
  1383. }
  1384. return map;
  1385. }
  1386. QMap<int ,QString> SNCDataBase::getUserSolutions()
  1387. {
  1388. QString where = " ";
  1389. QSqlQuery query;
  1390. query.exec("select sln_id,name from USER.NUMBER_RULES_USER " + where + " ");
  1391. QMap<int,QString> map;
  1392. while(query.next())
  1393. {
  1394. map.insert(query.value(0).toInt(),query.value(1).toString());
  1395. }
  1396. return map;
  1397. }
  1398. QMap<int ,QString> SNCDataBase::getAllRuleNames()
  1399. {
  1400. QString where = " ";
  1401. QSqlQuery query;
  1402. query.exec("select RULE_ID,name from SYS.NUMBER_RULES " + where + " ");
  1403. QMap<int,QString> map;
  1404. while(query.next())
  1405. {
  1406. map.insert(query.value(0).toInt(),query.value(1).toString());
  1407. }
  1408. return map;
  1409. }
  1410. QList<int> SNCDataBase::getRuleIdBySysSlnID(int id)
  1411. {
  1412. QString where = " where sln_id= " + QString::number(id);
  1413. QSqlQuery query;
  1414. query.exec("select rule_id from sys.NUMBER_RULES_SYSTEM_MAP " + where + " ");
  1415. QList<int> list;
  1416. while(query.next())
  1417. {
  1418. list.append(query.value(0).toInt());
  1419. }
  1420. return list;
  1421. }
  1422. QList<int> SNCDataBase::getRuleIdByUserSlnID(int id)
  1423. {
  1424. QString where = " where sln_id= " + QString::number(id);
  1425. QSqlQuery query;
  1426. query.exec("select rule_id from user.NUMBER_RULES_USER_MAP " + where + " ");
  1427. QList<int> list;
  1428. while(query.next())
  1429. {
  1430. list.append(query.value(0).toInt());
  1431. }
  1432. return list;
  1433. }
  1434. QStringList SNCDataBase::getRulesBySysSlnID(int id)
  1435. {
  1436. QString where = " where a.sln_id = " + QString::number(id);
  1437. QSqlQuery query;
  1438. query.exec("select b.regex from SYS.NUMBER_RULES_SYSTEM_MAP a left join SYS.NUMBER_RULES b on a.RULE_id = b.RULE_id " + where + " ");
  1439. QStringList list;
  1440. while(query.next())
  1441. {
  1442. list<<query.value(0).toString();
  1443. }
  1444. return list;
  1445. }
  1446. QStringList SNCDataBase::getRulesByUserSlnID(int id)
  1447. {
  1448. QString where = " where a.sln_id = " + QString::number(id);
  1449. QSqlQuery query;
  1450. query.exec("select b.regex from USER.NUMBER_RULES_USER_MAP a left join SYS.NUMBER_RULES b on a.RULE_id = b.RULE_id " + where + " ");
  1451. QStringList list;
  1452. while(query.next())
  1453. {
  1454. list<<query.value(0).toString();
  1455. }
  1456. return list;
  1457. }
  1458. void SNCDataBase::addUserSolution(QString name, QStringList ruleids)
  1459. {
  1460. QSqlQuery query;
  1461. QSqlDatabase::database().transaction();
  1462. query.prepare("insert into user.NUMBER_RULES_USER(name) values(?)");
  1463. QVariant v = name;
  1464. query.addBindValue(v);
  1465. query.exec();
  1466. query.exec("select last_insert_rowid()");
  1467. QString sln_id;
  1468. if(query.next())
  1469. sln_id = query.value(0).toString();
  1470. query.prepare("insert into user.NUMBER_RULES_USER_MAP(sln_id,rule_id) values(?,?)");
  1471. QVariantList rule_ids,sln_ids;
  1472. for(int i=0;i<ruleids.size();i++)
  1473. {
  1474. rule_ids << ruleids.at(i);
  1475. sln_ids << sln_id;
  1476. }
  1477. query.addBindValue(sln_ids);
  1478. query.addBindValue(rule_ids);
  1479. query.execBatch();
  1480. QSqlDatabase::database().commit();
  1481. }
  1482. void SNCDataBase::delUserBuildSolution(int build_id)
  1483. {
  1484. QSqlQuery query;
  1485. QSqlDatabase::database().transaction();
  1486. query.exec("delete from user.NUMBER_BUILD_HISTORY where BUILD_ID="+QString::number(build_id));
  1487. QSqlDatabase::database().commit();
  1488. }
  1489. void SNCDataBase::delAllUserBuildSolution()
  1490. {
  1491. QSqlQuery query;
  1492. QSqlDatabase::database().transaction();
  1493. query.exec("delete from user.NUMBER_BUILD_HISTORY ");
  1494. QSqlDatabase::database().commit();
  1495. }
  1496. void SNCDataBase::delUserSolution(int sln_id)
  1497. {
  1498. QSqlQuery query;
  1499. QSqlDatabase::database().transaction();
  1500. query.exec("delete from user.NUMBER_RULES_USER_MAP WHERE SLN_ID="+QString::number(sln_id));
  1501. query.exec("delete from user.NUMBER_RULES_USER WHERE SLN_ID="+QString::number(sln_id));
  1502. QSqlDatabase::database().commit();
  1503. }
  1504. void SNCDataBase::addBuildSolution(QString build_date, QString region, int total,
  1505. QString segments, QString rule_ids)
  1506. {
  1507. QSqlQuery query;
  1508. QSqlDatabase::database().transaction();
  1509. query.exec("select count(*) as total from user.NUMBER_BUILD_HISTORY");
  1510. if(query.next())
  1511. {
  1512. int total = query.value(0).toInt();
  1513. if(total>=20)
  1514. {
  1515. query.exec("delete from user.NUMBER_BUILD_HISTORY where build_id in (select min(build_id) from user.NUMBER_BUILD_HISTORY )");
  1516. }
  1517. }
  1518. query.prepare("insert into user.NUMBER_BUILD_HISTORY(BUILD_DATE,REGION,TOTAL,SEGMENTS,RULE_IDS) values(?,?,?,?,?)");
  1519. QVariant v1,v2,v3,v4,v5;
  1520. v1 = build_date;
  1521. v2 = region;
  1522. v3 = total;
  1523. v4 = segments;
  1524. v5 = rule_ids;
  1525. query.addBindValue(v1);
  1526. query.addBindValue(v2);
  1527. query.addBindValue(v3);
  1528. query.addBindValue(v4);
  1529. query.addBindValue(v5);
  1530. query.exec();
  1531. QSqlDatabase::database().commit();
  1532. }
  1533. QList<QStringList> SNCDataBase::getAllBuildHistory()
  1534. {
  1535. QSqlQuery query;
  1536. query.exec("select build_date,region,total,build_id,segments,rule_ids from user.NUMBER_BUILD_HISTORY order by build_id desc ");
  1537. QList<QStringList> list;
  1538. while(query.next())
  1539. {
  1540. QStringList l;
  1541. l<< query.value(0).toString();
  1542. l<< query.value(1).toString();
  1543. l<< query.value(2).toString();
  1544. l<< query.value(3).toString();
  1545. l<< query.value(4).toString();
  1546. l<< query.value(5).toString();
  1547. list.append(l);
  1548. }
  1549. return list;
  1550. }
  1551. QStringList SNCDataBase::getRuleContensByRuleIDs(QStringList ids)
  1552. {
  1553. QSqlQuery query;
  1554. QString where;
  1555. for(int i=0;i<ids.size();i++)
  1556. {
  1557. where +=ids.at(i)+",";
  1558. }
  1559. where +="0";
  1560. query.exec("select regex from sys.NUMBER_RULES where RULE_ID in ("+where+")");
  1561. QStringList list;
  1562. while(query.next())
  1563. {
  1564. list.append(query.value(0).toString());
  1565. }
  1566. return list;
  1567. }
  1568. QString SNCDataBase::getSegmentsGroupCount(QVariantList vars,int len)
  1569. {
  1570. QSqlQuery query;
  1571. QSqlDatabase::database().transaction();
  1572. query.exec("drop table tmp_segs_for_count");
  1573. query.exec("create table tmp_segs_for_count (seg varchar(7))");
  1574. query.prepare("insert into tmp_segs_for_count (seg) values(?)");
  1575. query.addBindValue(vars);
  1576. query.execBatch();
  1577. QSqlDatabase::database().commit();
  1578. query.exec(QString("select substr(seg,1,%1),count(*) as total from tmp_segs_for_count group by substr(seg,1,%1)").arg(len));
  1579. QString str;
  1580. int total = 0;
  1581. while(query.next())
  1582. {
  1583. if(query.value(1).toInt()>500)
  1584. {
  1585. str += query.value(0).toString()+","+query.value(1).toString()+";";
  1586. total += query.value(1).toInt();
  1587. }
  1588. }
  1589. if(total<vars.size()*0.7)
  1590. {
  1591. str = "";
  1592. }
  1593. QSqlDatabase::database().transaction();
  1594. query.exec("delete from tmp_segs_for_count");
  1595. QSqlDatabase::database().commit();
  1596. return str;
  1597. }
  1598. QStringList SNCDataBase::getCityBySegment(QString segment)
  1599. {
  1600. QSqlQuery query;
  1601. QVariant var = segment;
  1602. query.prepare("select province,city,areacode from num.mseg where seg=? ");
  1603. query.addBindValue(var);
  1604. query.exec();
  1605. QStringList values;
  1606. if(query.next())
  1607. {
  1608. values << query.value(0).toString();
  1609. values << query.value(1).toString();
  1610. values << query.value(2).toString();
  1611. }
  1612. return values;
  1613. }
  1614. QMap<QString, QString> SNCDataBase::getSrvParam(QString srvid)
  1615. {
  1616. QSqlQuery query;
  1617. query.prepare("select srv_param_name,srv_param_value from sys.srv_param where srv_id=?");
  1618. QVariant v = srvid;
  1619. query.addBindValue(v);
  1620. query.exec();
  1621. QMap<QString,QString> para;
  1622. while(query.next())
  1623. {
  1624. para.insert(query.value(0).toString(),query.value(1).toString());
  1625. }
  1626. return para;
  1627. }
  1628. void SNCDataBase::updateSrvParam(QString srvid, QMap<QString, QString> para)
  1629. {
  1630. QSqlQuery query;
  1631. QSqlDatabase::database().transaction();
  1632. query.clear();
  1633. query.prepare("delete from sys.srv_param where srv_id=?");
  1634. QVariant value = srvid;
  1635. query.addBindValue(value);
  1636. query.exec();
  1637. foreach(QString key ,para.keys())
  1638. {
  1639. if(!key.isEmpty() && !para.value(key).isEmpty())
  1640. {
  1641. query.clear();
  1642. query.prepare("insert into sys.srv_param values(?,?,?)");
  1643. QVariant value1 = srvid;
  1644. QVariant value2 = key;
  1645. QVariant value3 = para.value(key);
  1646. query.addBindValue(value1);
  1647. query.addBindValue(value2);
  1648. query.addBindValue(value3);
  1649. query.exec();
  1650. }
  1651. }
  1652. QSqlDatabase::database().commit();
  1653. }
  1654. int SNCDataBase::getSegCount()
  1655. {
  1656. QSqlQuery query;
  1657. query.exec("select sum(total) from num.city ");
  1658. int total = 0;
  1659. if(query.next())
  1660. {
  1661. total = query.value(0).toInt();
  1662. }
  1663. return total;
  1664. }
  1665. QString SNCDataBase::getAuthCodeSeg()
  1666. {
  1667. QSqlQuery query;
  1668. query.exec("select value from sys.config where name='authcode_seg' ");
  1669. QString value="";
  1670. if(query.next())
  1671. {
  1672. value = query.value(0).toString();
  1673. }
  1674. return value;
  1675. }
  1676. QString SNCDataBase::getAuthCodeSrvtime()
  1677. {
  1678. QSqlQuery query;
  1679. query.exec("select value from sys.config where name='authcode_srvtime' ");
  1680. QString value="";
  1681. if(query.next())
  1682. {
  1683. value = query.value(0).toString();
  1684. }
  1685. return value;
  1686. }
  1687. QString SNCDataBase::getAuthCodeUrl()
  1688. {
  1689. QSqlQuery query;
  1690. query.exec("select value from sys.config where name='authcode_url' ");
  1691. QString value="";
  1692. if(query.next())
  1693. {
  1694. value = query.value(0).toString();
  1695. }
  1696. return value;
  1697. }
  1698. QString SNCDataBase::getAuthCodeSyspara()
  1699. {
  1700. QSqlQuery query;
  1701. query.exec("select value from sys.config where name='authcode_syspara' ");
  1702. QString value="";
  1703. if(query.next())
  1704. {
  1705. value = query.value(0).toString();
  1706. }
  1707. return value;
  1708. }
  1709. QString SNCDataBase::getAuthCodeEncrpt()
  1710. {
  1711. QSqlQuery query;
  1712. query.exec("select value from sys.config where name='authcode_encrypt' ");
  1713. QString value="";
  1714. if(query.next())
  1715. {
  1716. value = query.value(0).toString();
  1717. }
  1718. return value;
  1719. }
  1720. int SNCDataBase::addFileUpload(QString moduleID, QString clientID, QString userCode, QString fileName,QString filePath, QString fileType, QString taskType,QString fileMemo)
  1721. {
  1722. QSqlQuery query;
  1723. QSqlDatabase::database().transaction();
  1724. query.prepare("insert into user.FILE_UPLOAD(MODULE_ID,CLIENT_ID,USER_CODE,File_Name,\
  1725. FILE_PATH,FILE_TYPE,TASK_TYPE,FILE_MEMO,UPLOAD_STATE,OPT_STATUS,ISVERIFY)\
  1726. values(?,?,?,?,?,?,?,?,0,'0','0')");
  1727. QVariantList vars;
  1728. vars<<moduleID<<clientID<<userCode<<fileName<<filePath<<fileType<<taskType<<fileMemo;
  1729. for(int i=0;i<vars.size();i++)
  1730. {
  1731. query.addBindValue(vars.at(i));
  1732. }
  1733. query.exec();
  1734. QSqlDatabase::database().commit();
  1735. return 0;
  1736. }
  1737. int SNCDataBase::updateFileUploadState(int fileID, int state)
  1738. {
  1739. QSqlQuery query;
  1740. QSqlDatabase::database().transaction();
  1741. query.prepare("update user.FILE_UPLOAD set UPLOAD_STATE=? where file_id=?");
  1742. QVariantList vars;
  1743. vars<<state<<fileID;
  1744. for(int i=0;i<vars.size();i++)
  1745. {
  1746. query.addBindValue(vars.at(i));
  1747. }
  1748. query.exec();
  1749. QSqlDatabase::database().commit();
  1750. return 0;
  1751. }
  1752. int SNCDataBase::updateFileUploadPercent(int fileID, double percent)
  1753. {
  1754. QSqlQuery query;
  1755. QSqlDatabase::database().transaction();
  1756. query.prepare("update user.FILE_UPLOAD set percent=? where file_id=?");
  1757. QVariantList vars;
  1758. vars<<percent<<fileID;
  1759. for(int i=0;i<vars.size();i++)
  1760. {
  1761. query.addBindValue(vars.at(i));
  1762. }
  1763. query.exec();
  1764. QSqlDatabase::database().commit();
  1765. return 0;
  1766. }
  1767. int SNCDataBase::updateFileUploadSrvInfo(int fileID, QString srvID,QString srvRTime)
  1768. {
  1769. QSqlQuery query;
  1770. QSqlDatabase::database().transaction();
  1771. query.prepare("update user.FILE_UPLOAD set server_fid=? ,server_rtime =? where file_id=?");
  1772. QVariantList vars;
  1773. vars<<srvID<<srvRTime<<fileID;
  1774. for(int i=0;i<vars.size();i++)
  1775. {
  1776. query.addBindValue(vars.at(i));
  1777. }
  1778. query.exec();
  1779. QSqlDatabase::database().commit();
  1780. return 0;
  1781. }
  1782. int SNCDataBase::updateFileUploadState(int fileID, int state, QString errMsg,QString errDetail)
  1783. {
  1784. QSqlQuery query;
  1785. QSqlDatabase::database().transaction();
  1786. query.prepare("update user.FILE_UPLOAD set UPLOAD_STATE=? ,rtn_msg = ?,rtn_detail = ? where file_id=?");
  1787. QVariantList vars;
  1788. vars<<state<<errMsg<<errDetail<<fileID;
  1789. for(int i=0;i<vars.size();i++)
  1790. {
  1791. query.addBindValue(vars.at(i));
  1792. }
  1793. query.exec();
  1794. QSqlDatabase::database().commit();
  1795. return 0;
  1796. }
  1797. int SNCDataBase::clearFileUpload(QString moduleID, QString clientID, QString userCode)
  1798. {
  1799. QSqlQuery query;
  1800. QSqlDatabase::database().transaction();
  1801. query.prepare("delete * from user.FILE_UPLOAD where module_ID=? and client_ID=? and user_code = ?");
  1802. QVariantList vars;
  1803. vars<<moduleID<<clientID<<userCode;
  1804. for(int i=0;i<vars.size();i++)
  1805. {
  1806. query.addBindValue(vars.at(i));
  1807. }
  1808. query.exec();
  1809. QSqlDatabase::database().commit();
  1810. return 0;
  1811. }
  1812. int SNCDataBase::deleteFileByFileID(int fileID)
  1813. {
  1814. QSqlQuery query;
  1815. QSqlDatabase::database().transaction();
  1816. query.prepare("delete from user.FILE_UPLOAD where file_id = ?");
  1817. QVariantList vars;
  1818. vars<<fileID;
  1819. for(int i=0;i<vars.size();i++)
  1820. {
  1821. query.addBindValue(vars.at(i));
  1822. }
  1823. query.exec();
  1824. QSqlDatabase::database().commit();
  1825. return 0;
  1826. }
  1827. QMultiMap<QString, QString> SNCDataBase::getAllUpload(QString moduleID, QString clientID, QString userCode)
  1828. {
  1829. QMultiMap<QString ,QString> values;
  1830. QSqlQuery query;
  1831. query.prepare("select file_id,file_name,file_path,file_type,task_type,file_memo,\
  1832. UPLOAD_STATE,rtn_msg ,rtn_detail,percent,server_fid,server_rtime,\
  1833. isverify,opt_status,tf_time from user.file_upload \
  1834. where module_ID=? and client_id=? and user_code=?");
  1835. QVariantList vars;
  1836. vars<<moduleID<<clientID<<userCode;
  1837. for(int i=0;i<vars.size();i++)
  1838. {
  1839. query.addBindValue(vars.at(i));
  1840. }
  1841. query.exec();
  1842. while(query.next())
  1843. {
  1844. int i=0;
  1845. values.insert("fileid",query.value(i++).toString());
  1846. values.insert("filename",query.value(i++).toString());
  1847. values.insert("filepath",query.value(i++).toString());
  1848. values.insert("filetype",query.value(i++).toString());
  1849. values.insert("tasktype",query.value(i++).toString());
  1850. values.insert("memo",query.value(i++).toString());
  1851. values.insert("uploadstate",query.value(i++).toString());
  1852. values.insert("rtnmsg",query.value(i++).toString());
  1853. values.insert("rtndetail",query.value(i++).toString());
  1854. values.insert("percent",query.value(i++).toString());
  1855. values.insert("srvfid",query.value(i++).toString());
  1856. values.insert("srvrtime",query.value(i++).toString());
  1857. values.insert("isverify",query.value(i++).toString());
  1858. values.insert("optstatus",query.value(i++).toString());
  1859. values.insert("tftime",query.value(i++).toString());
  1860. }
  1861. return values;
  1862. }
  1863. int SNCDataBase::updateFileUploadOutdateDataBySrvIDs(QString moduleID,QString clientID,QString userCode,QStringList ids)
  1864. {
  1865. QString where;
  1866. for(int i=0;i<ids.size();i++)
  1867. {
  1868. if(i==ids.size()-1)
  1869. where += QString("'%1'").arg(ids.at(i));
  1870. else
  1871. where += QString("'%1',").arg(ids.at(i));
  1872. }
  1873. if(where.isEmpty())
  1874. {
  1875. where = " where module_id = ? and client_id = ? and user_code = ? and upload_state = 3 ";
  1876. }
  1877. else
  1878. {
  1879. where = " where module_id = ? and client_id = ? and user_code = ? and upload_state = 3 and \
  1880. server_fid not in (" + where + ")";
  1881. }
  1882. QString sql = "update user.file_upload set opt_status = -1 " + where;
  1883. QSqlQuery query;
  1884. QSqlDatabase::database().transaction();
  1885. query.prepare(sql);
  1886. query.addBindValue(moduleID);
  1887. query.addBindValue(clientID);
  1888. query.addBindValue(userCode);
  1889. query.exec();
  1890. QSqlDatabase::database().commit();
  1891. return 0;
  1892. }
  1893. int SNCDataBase::updateShkjCheckInfos(QMultiMap<QString, QString> maps, QString userCode)
  1894. {
  1895. QSqlQuery query;
  1896. QSqlDatabase::database().transaction();
  1897. int cols = maps.uniqueKeys().size();
  1898. int rows = 0;
  1899. if(cols!=0)
  1900. {
  1901. rows = maps.size()/cols;
  1902. }
  1903. //add-on-2013-9-23 for delete outdate-shhj-check-info
  1904. query.clear();
  1905. query.exec("delete from user.SHKJ_CHECK where deal_status='0' or deal_status='1'");
  1906. //end
  1907. for(int i=0;i<rows;i++)
  1908. {
  1909. QString uqrycode = maps.values("uqrycode").at(i);
  1910. QString detail = maps.values("detail").at(i);
  1911. QString hmzs = maps.values("hmzs").at(i);
  1912. QString ltf_tj = maps.values("ltf_tj").at(i);
  1913. QString ltf_list = maps.values("ltf_list").at(i);
  1914. QString forecast_tj = maps.values("forecast_tj").at(i);
  1915. QString forecast_list = maps.values("forecast_list").at(i);
  1916. QString inserttime = maps.values("inserttime").at(i);
  1917. QString finishtime = maps.values("finishtime").at(i);
  1918. QString dealstatus = maps.values("dealstatus").at(i);
  1919. QString ltf_id = maps.values("ltfid").at(i);
  1920. // if(dealstatus=="2" || dealstatus == "3")//该任务如果已经处理完毕或者下载,则删除上传记录表
  1921. // {
  1922. // query.clear();
  1923. // query.prepare("delete from user.FILE_UPLOAD where SERVER_FID = ?");
  1924. // query.addBindValue(ltf_id);
  1925. // query.exec();
  1926. // }
  1927. // else if(dealstatus=="1")//该任务处理中,则更新optstatus 为 3(保持与标准检测的一致性)
  1928. // {
  1929. // query.clear();
  1930. // query.prepare("update user.FILE_UPLOAD set isverify = 1, opt_status = '3' where SERVER_FID = ?");
  1931. // query.addBindValue(ltf_id);
  1932. // query.exec();
  1933. // }
  1934. // else
  1935. // {
  1936. // query.clear();
  1937. // query.prepare("update user.FILE_UPLOAD set isverify = '1', opt_status = ? where SERVER_FID = ?");
  1938. // query.addBindValue(dealstatus);
  1939. // query.addBindValue(ltf_id);
  1940. // query.exec();
  1941. // }
  1942. query.clear();
  1943. query.prepare("delete from user.FILE_UPLOAD where SERVER_FID = ?");
  1944. query.addBindValue(ltf_id);
  1945. query.exec();
  1946. query.clear();
  1947. query.prepare("select CACHE_LOCAL_PATH from user.SHKJ_CHECK where LTF_ID = ?");
  1948. query.addBindValue(ltf_id);
  1949. query.exec();
  1950. if(query.next())
  1951. {
  1952. if(!query.value(0).toString().isEmpty())
  1953. continue;
  1954. }
  1955. query.clear();
  1956. query.prepare("delete from user.SHKJ_CHECK where LTF_ID = ?");
  1957. query.addBindValue(ltf_id);
  1958. query.exec();
  1959. query.clear();
  1960. query.prepare("insert into user.shkj_check( \
  1961. QUERY_CODE,DETAIL,HMZS,LTF_TJ,LTF_LIST,FORCAST_TJ ,\
  1962. FORCAST_LIST,INSERT_TIME ,FINISH_TIME,DEAL_STATUS,LTF_ID,USER_CODE) \
  1963. VALUES(?,?,?,?,?,?,?,?,?,?,?,?)");
  1964. QVariantList vars;
  1965. vars<<uqrycode<<detail<<hmzs<<ltf_tj<<ltf_list<<forecast_tj<<forecast_list;
  1966. vars<<inserttime<<finishtime<<dealstatus<<ltf_id<<userCode;
  1967. for(int i=0;i<vars.size();i++)
  1968. {
  1969. query.addBindValue(vars.at(i));
  1970. }
  1971. query.exec();
  1972. }
  1973. QSqlDatabase::database().commit();
  1974. return 0;
  1975. }
  1976. int SNCDataBase::updateZxshTaskInfos(QMultiMap<QString, QString> maps, QString userCode)
  1977. {
  1978. QSqlQuery query;
  1979. QSqlDatabase::database().transaction();
  1980. int cols = maps.uniqueKeys().size();
  1981. int rows = 0;
  1982. if(cols!=0)
  1983. {
  1984. rows = maps.size()/cols;
  1985. }
  1986. //删除现有的数据信息
  1987. query.prepare("delete from user.SHKJ_ZXSH_TASK_SERVER WHERE USER_CODE = ?");
  1988. query.addBindValue(userCode);
  1989. query.exec();
  1990. query.clear();
  1991. //添加新的数据信息
  1992. for(int i=0;i<rows;i++)
  1993. {
  1994. QString ssid = maps.values("ssid").at(i);
  1995. QString dealstatus = maps.values("dealstatus").at(i);
  1996. QString province = maps.values("province").at(i);
  1997. QString city = maps.values("city").at(i);
  1998. QString updatedays = maps.values("updatedays").at(i);
  1999. QString isp = maps.values("isp").at(i);
  2000. QString neednum = maps.values("neednum").at(i);
  2001. QString rpnum = maps.values("rpnum").at(i);
  2002. QString inserttime = maps.values("inserttime").at(i);
  2003. QString finishtime = maps.values("finishtime").at(i);
  2004. query.prepare("insert into user.SHKJ_ZXSH_TASK_SERVER( \
  2005. ssid,deal_status,province,city,updatedays,isp ,\
  2006. need_num,real_num ,inserttime,finishtime,USER_CODE) \
  2007. VALUES(?,?,?,?,?,?,?,?,?,?,?)");
  2008. QVariantList vars;
  2009. vars<<ssid<<dealstatus<<province<<city<<updatedays<<isp<<neednum;
  2010. vars<<rpnum<<inserttime<<finishtime;
  2011. for(int i=0;i<vars.size();i++)
  2012. {
  2013. query.addBindValue(vars.at(i));
  2014. }
  2015. query.exec();
  2016. }
  2017. QSqlDatabase::database().commit();
  2018. return 0;
  2019. }
  2020. QMultiMap<QString, QString> SNCDataBase::getShkjCheckInfos(QString userCode)
  2021. {
  2022. QMultiMap<QString ,QString> values;
  2023. QSqlQuery query;
  2024. query.prepare("select QUERY_CODE,DETAIL,HMZS,LTF_TJ,LTF_LIST,FORCAST_TJ ,\
  2025. FORCAST_LIST,INSERT_TIME ,FINISH_TIME,DEAL_STATUS,LTF_ID \
  2026. from user.shkj_check where user_code=?");
  2027. QVariantList vars;
  2028. vars<<userCode;
  2029. for(int i=0;i<vars.size();i++)
  2030. {
  2031. query.addBindValue(vars.at(i));
  2032. }
  2033. query.exec();
  2034. while(query.next())
  2035. {
  2036. int i=0;
  2037. values.insert("uqrycode",query.value(i++).toString());
  2038. values.insert("detail",query.value(i++).toString());
  2039. values.insert("hmzs",query.value(i++).toString());
  2040. values.insert("ltf_tj",query.value(i++).toString());
  2041. values.insert("ltf_list",query.value(i++).toString());
  2042. values.insert("forecast_tj",query.value(i++).toString());
  2043. values.insert("forecast_list",query.value(i++).toString());
  2044. values.insert("inserttime",query.value(i++).toString());
  2045. values.insert("finishtime",query.value(i++).toString());
  2046. values.insert("dealstatus",query.value(i++).toString());
  2047. values.insert("ltfid",query.value(i++).toString());
  2048. }
  2049. return values;
  2050. }
  2051. QMultiMap<QString, QString> SNCDataBase::getShkjCheckInfos(QString userCode, QString dealstatus)
  2052. {
  2053. QMultiMap<QString ,QString> values;
  2054. QSqlQuery query;
  2055. QVariantList vars;
  2056. if(dealstatus.isEmpty())
  2057. {
  2058. // query.prepare("select QUERY_CODE,DETAIL,HMZS,LTF_TJ,LTF_LIST,FORCAST_TJ ,\
  2059. // FORCAST_LIST,INSERT_TIME ,FINISH_TIME,DEAL_STATUS,LTF_ID \
  2060. // from user.shkj_check where user_code=? and (deal_status = '2' or deal_status='3')");
  2061. query.prepare("select QUERY_CODE,DETAIL,HMZS,LTF_TJ,LTF_LIST,FORCAST_TJ ,\
  2062. FORCAST_LIST,INSERT_TIME ,FINISH_TIME,DEAL_STATUS,LTF_ID \
  2063. from user.shkj_check where user_code=? ");
  2064. vars<<userCode;
  2065. }
  2066. else
  2067. {
  2068. query.prepare("select QUERY_CODE,DETAIL,HMZS,LTF_TJ,LTF_LIST,FORCAST_TJ ,\
  2069. FORCAST_LIST,INSERT_TIME ,FINISH_TIME,DEAL_STATUS,LTF_ID \
  2070. from user.shkj_check where user_code=? and deal_status = ?");
  2071. vars<<userCode<<dealstatus;
  2072. }
  2073. for(int i=0;i<vars.size();i++)
  2074. {
  2075. query.addBindValue(vars.at(i));
  2076. }
  2077. query.exec();
  2078. while(query.next())
  2079. {
  2080. int i=0;
  2081. values.insert("uqrycode",query.value(i++).toString());
  2082. values.insert("detail",query.value(i++).toString());
  2083. values.insert("hmzs",query.value(i++).toString());
  2084. values.insert("ltf_tj",query.value(i++).toString());
  2085. values.insert("ltf_list",query.value(i++).toString());
  2086. values.insert("forecast_tj",query.value(i++).toString());
  2087. values.insert("forecast_list",query.value(i++).toString());
  2088. values.insert("inserttime",query.value(i++).toString());
  2089. values.insert("finishtime",query.value(i++).toString());
  2090. values.insert("dealstatus",query.value(i++).toString());
  2091. values.insert("ltfid",query.value(i++).toString());
  2092. }
  2093. return values;
  2094. }
  2095. int SNCDataBase::getShkjToDown(QString userCode)
  2096. {
  2097. QSqlQuery query;
  2098. query.prepare("select count(*) from user.shkj_check where user_code=? and deal_status='2'");
  2099. QVariantList vars;
  2100. vars<<userCode;
  2101. for(int i=0;i<vars.size();i++)
  2102. {
  2103. query.addBindValue(vars.at(i));
  2104. }
  2105. query.exec();
  2106. int value = 0;
  2107. if(query.next())
  2108. {
  2109. value = query.value(0).toInt();
  2110. }
  2111. return value;
  2112. }
  2113. int SNCDataBase::updateShkjCachePath(QString srvID,QString cachePath)
  2114. {
  2115. QSqlDatabase::database().transaction();
  2116. QSqlQuery query;
  2117. query.prepare("update user.shkj_check set CACHE_LOCAL_PATH = ?,deal_status='3' where LTF_ID=? ");
  2118. QVariantList vars;
  2119. vars<<cachePath<<srvID;
  2120. for(int i=0;i<vars.size();i++)
  2121. {
  2122. query.addBindValue(vars.at(i));
  2123. }
  2124. query.exec();
  2125. QSqlDatabase::database().commit();
  2126. return 0;
  2127. }
  2128. QString SNCDataBase::getShkjCachePath(QString srvID)
  2129. {
  2130. QSqlQuery query;
  2131. query.prepare("select CACHE_LOCAL_PATH from user.shkj_check where LTF_ID=? ");
  2132. QVariantList vars;
  2133. vars<<srvID;
  2134. for(int i=0;i<vars.size();i++)
  2135. {
  2136. query.addBindValue(vars.at(i));
  2137. }
  2138. query.exec();
  2139. QString value = "";
  2140. if(query.next())
  2141. {
  2142. value = query.value(0).toString();
  2143. }
  2144. return value;
  2145. }
  2146. int SNCDataBase::delShkjByID(QString srvID)
  2147. {
  2148. QSqlDatabase::database().transaction();
  2149. QSqlQuery query;
  2150. query.prepare("delete from user.shkj_check where LTF_ID=? ");
  2151. QVariantList vars;
  2152. vars<<srvID;
  2153. for(int i=0;i<vars.size();i++)
  2154. {
  2155. query.addBindValue(vars.at(i));
  2156. }
  2157. query.exec();
  2158. QSqlDatabase::database().commit();
  2159. return 0;
  2160. }
  2161. QMultiMap<QString, QString> SNCDataBase::getShkjZxshTasks(QString userCode, QString dealstatus)
  2162. {
  2163. QMultiMap<QString ,QString> values;
  2164. QSqlQuery query;
  2165. QVariantList vars;
  2166. if(dealstatus.isEmpty())
  2167. {
  2168. query.prepare("select TASK_ID,SSID,PROVINCE,CITY,INSERTTIME,UPDATEDAYS,ISP ,\
  2169. SEG,NEED_NUM ,USER_CODE,DEAL_STATUS,ISDEL \
  2170. from user.SHKJ_ZXSH_TASK where user_code=?");
  2171. vars<<userCode;
  2172. }
  2173. else
  2174. {
  2175. query.prepare("select TASK_ID,SSID,PROVINCE,CITY,INSERTTIME,UPDATEDAYS,ISP ,\
  2176. SEG,NEED_NUM ,USER_CODE,DEAL_STATUS,ISDEL \
  2177. from user.SHKJ_ZXSH_TASK where user_code=? and deal_status = ?");
  2178. vars<<userCode<<dealstatus;
  2179. }
  2180. for(int i=0;i<vars.size();i++)
  2181. {
  2182. query.addBindValue(vars.at(i));
  2183. }
  2184. query.exec();
  2185. while(query.next())
  2186. {
  2187. int i=0;
  2188. values.insert("taskid",query.value(i++).toString());
  2189. values.insert("ssid",query.value(i++).toString());
  2190. values.insert("province",query.value(i++).toString());
  2191. values.insert("city",query.value(i++).toString());
  2192. values.insert("inserttime",query.value(i++).toString());
  2193. values.insert("updatedays",query.value(i++).toString());
  2194. values.insert("isp",query.value(i++).toString());
  2195. values.insert("seg",query.value(i++).toString());
  2196. values.insert("neednum",query.value(i++).toString());
  2197. values.insert("usercode",query.value(i++).toString());
  2198. values.insert("dealstatus",query.value(i++).toString());
  2199. values.insert("isdel",query.value(i++).toString());
  2200. }
  2201. return values;
  2202. }
  2203. QMultiMap<QString, QString> SNCDataBase::getShkjZxshTasksByUser(QString userCode)
  2204. {
  2205. QMultiMap<QString ,QString> values;
  2206. QSqlQuery query;
  2207. QVariantList vars;
  2208. query.prepare("select SSID,PROVINCE,CITY,INSERTTIME,FINISHTEIME,UPDATEDAYS,ISP ,\
  2209. SEG,NEED_NUM ,REAL_NUM,USER_CODE,DEAL_STATUS \
  2210. from user.SHKJ_ZXSH_TASK_SERVER where user_code=?");
  2211. vars<<userCode;
  2212. query.exec();
  2213. while(query.next())
  2214. {
  2215. int i=0;
  2216. values.insert("ssid",query.value(i++).toString());
  2217. values.insert("province",query.value(i++).toString());
  2218. values.insert("city",query.value(i++).toString());
  2219. values.insert("inserttime",query.value(i++).toString());
  2220. values.insert("finishtime",query.value(i++).toString());
  2221. values.insert("updatedays",query.value(i++).toString());
  2222. values.insert("isp",query.value(i++).toString());
  2223. values.insert("seg",query.value(i++).toString());
  2224. values.insert("neednum",query.value(i++).toString());
  2225. values.insert("realnum",query.value(i++).toString());
  2226. values.insert("usercode",query.value(i++).toString());
  2227. values.insert("dealstatus",query.value(i++).toString());
  2228. }
  2229. return values;
  2230. }
  2231. int SNCDataBase::addShkjZxshTask(QString ssid, QString userCode, QString province,QString city, \
  2232. QString inserttime,QString updatedays, QString isp, QString seg, int neednum)
  2233. {
  2234. QSqlQuery query;
  2235. QSqlDatabase::database().transaction();
  2236. query.prepare("insert into user.SHKJ_ZXSH_TASK(ssid,USER_CODE,province,\
  2237. city,inserttime,updatedays,isp,seg,need_num)\
  2238. values(?,?,?,?,?,?,?,?,?)");
  2239. QVariantList vars;
  2240. vars<<ssid<<userCode<<province<<city<<inserttime<<updatedays<<isp<<seg<<neednum;
  2241. for(int i=0;i<vars.size();i++)
  2242. {
  2243. query.addBindValue(vars.at(i));
  2244. }
  2245. query.exec();
  2246. QSqlDatabase::database().commit();
  2247. return 0;
  2248. }
  2249. int SNCDataBase::updateLoginInfo(QString userCode, QString password, QString isAuto, QString isRemember, QString lastLoginTime)
  2250. {
  2251. QSqlQuery query;
  2252. QSqlDatabase::database().transaction();
  2253. query.clear();
  2254. query.prepare("delete from user.USER_LOGON where USER_CODE = ?");
  2255. query.addBindValue(userCode);
  2256. query.exec();
  2257. query.clear();
  2258. query.prepare("insert into user.USER_LOGON( \
  2259. USER_CODE,PASSWORD,ISAUTO,ISREMEMBER,LAST_LOGIN_TIME) \
  2260. VALUES(?,?,?,?,?)");
  2261. QVariantList vars;
  2262. vars<<userCode<<password<<isAuto<<isRemember<<lastLoginTime;
  2263. for(int i=0;i<vars.size();i++)
  2264. {
  2265. query.addBindValue(vars.at(i));
  2266. }
  2267. query.exec();
  2268. QSqlDatabase::database().commit();
  2269. return 0;
  2270. }
  2271. QMultiMap<QString, QString> SNCDataBase::getDefaultLoginInfo()
  2272. {
  2273. QMultiMap<QString ,QString> values;
  2274. QSqlQuery query;
  2275. query.exec("select USER_CODE,PASSWORD,ISAUTO,ISREMEMBER,LAST_LOGIN_TIME \
  2276. from user.USER_LOGON ORDER BY ID asc");
  2277. while(query.next())
  2278. {
  2279. int i=0;
  2280. values.insert("usercode",query.value(i++).toString());
  2281. values.insert("password",query.value(i++).toString());
  2282. values.insert("isauto",query.value(i++).toString());
  2283. values.insert("isremember",query.value(i++).toString());
  2284. values.insert("lastlogintime",query.value(i++).toString());
  2285. }
  2286. return values;
  2287. }
  2288. int SNCDataBase::updateBzjcCheckDealInfos(QMultiMap<QString, QString> maps, QString userCode, QString clientID)
  2289. {
  2290. QSqlQuery query;
  2291. QSqlDatabase::database().transaction();
  2292. int cols = maps.uniqueKeys().size();
  2293. int rows = 0;
  2294. if(cols!=0)
  2295. {
  2296. rows = maps.size()/cols;
  2297. }
  2298. query.clear();
  2299. query.exec("delete from user.bzjc_check_dealing where client_id = '" + clientID+ "'");
  2300. for(int i=0;i<rows;i++)
  2301. {
  2302. QString batchid = maps.values("batchid").at(i);
  2303. QString batchtype = maps.values("batchtype").at(i);
  2304. QString detail = maps.values("detail").at(i);
  2305. QString resulttj = maps.values("resulttj").at(i);
  2306. QString submittime = maps.values("submittime").at(i);
  2307. QString tftime = maps.values("tftime").at(i);
  2308. QString vftime = maps.values("vftime").at(i);
  2309. QString isverify = maps.values("isverify").at(i);
  2310. QString settlefee = maps.values("settlefee").at(i);
  2311. QString giftfee = maps.values("giftfee").at(i);
  2312. int numcount = maps.values("numcount").at(i).toInt();
  2313. int dlcount = maps.values("dlcount").at(i).toInt();
  2314. int finishcount = maps.values("finishcount").at(i).toInt();
  2315. QString optstatus = maps.values("optstatus").at(i);
  2316. query.clear();
  2317. query.prepare("delete from user.file_upload where server_fid = ?");
  2318. query.addBindValue(batchid);
  2319. query.exec();
  2320. double percent = 0;
  2321. if(numcount!=0)
  2322. percent = finishcount * 100.0 / numcount;
  2323. query.clear();
  2324. query.prepare("insert into user.bzjc_check_dealing( \
  2325. BATCH_ID ,BATCH_TYPE ,CLIENT_ID,USER_CODE ,\
  2326. DETAIL ,RESULT_TJ ,SUBMIT_TIME,TF_TIME,\
  2327. VF_TIME ,ISVERIFY,SETTLE_FEE,GIFT_FEE ,\
  2328. NUM_COUNT ,DOWNLOAD_COUNT ,FINISH_COUNT , OPT_STATUS) \
  2329. VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
  2330. QVariantList vars;
  2331. vars<<batchid<<batchtype<<clientID<<userCode<<detail<<resulttj<<submittime<<tftime<<vftime<<isverify;
  2332. vars<<settlefee<<giftfee<<numcount<<dlcount<<finishcount<<optstatus;
  2333. for(int i=0;i<vars.size();i++)
  2334. {
  2335. query.addBindValue(vars.at(i));
  2336. }
  2337. query.exec();
  2338. }
  2339. QSqlDatabase::database().commit();
  2340. return 0;
  2341. }
  2342. int SNCDataBase::updateBzjcCheckFinishInfos(QMultiMap<QString, QString> maps, QString userCode, QString clientID)
  2343. {
  2344. QSqlQuery query;
  2345. QSqlDatabase::database().transaction();
  2346. int cols = maps.uniqueKeys().size();
  2347. int rows = 0;
  2348. if(cols!=0)
  2349. {
  2350. rows = maps.size()/cols;
  2351. }
  2352. for(int i=0;i<rows;i++)
  2353. {
  2354. QString batchid = maps.values("batchid").at(i);
  2355. QString batchtype = maps.values("batchtype").at(i);
  2356. QString detail = maps.values("detail").at(i);
  2357. QString resulttj = maps.values("resulttj").at(i);
  2358. QString submittime = maps.values("submittime").at(i);
  2359. QString finishtime = maps.values("finishtime").at(i);
  2360. QString settlefee = maps.values("settlefee").at(i);
  2361. QString giftfee = maps.values("giftfee").at(i);
  2362. QString numcount = maps.values("numcount").at(i);
  2363. QString dlcount = maps.values("dlcount").at(i);
  2364. QString finishcount = maps.values("finishcount").at(i);
  2365. QString optstatus = maps.values("optstatus").at(i);
  2366. QString ispass = maps.values("ispass").at(i);
  2367. QString isdeliver = maps.values("isdeliver").at(i);
  2368. QString delivertime = maps.values("delivertime").at(i);
  2369. // query.clear();
  2370. // query.prepare("delete from user.file_upload where server_fid = ?");
  2371. // query.addBindValue(batchid);
  2372. // query.exec();
  2373. query.clear();
  2374. query.prepare("select CACHE_LOCAL_PATH from user.bzjc_check_finished where BATCH_ID = ?");
  2375. query.addBindValue(batchid);
  2376. query.exec();
  2377. if(query.next())
  2378. {
  2379. if(!query.value(0).toString().isEmpty())
  2380. continue;
  2381. }
  2382. query.clear();
  2383. query.prepare("delete from user.bzjc_check_finished where BATCH_ID = ?");
  2384. query.addBindValue(batchid);
  2385. query.exec();
  2386. query.clear();
  2387. query.prepare("insert into user.bzjc_check_finished( \
  2388. BATCH_ID ,BATCH_TYPE ,CLIENT_ID,USER_CODE ,\
  2389. DETAIL ,RESULT_TJ ,SUBMIT_TIME,FINISH_TIME,\
  2390. SETTLE_FEE,GIFT_FEE ,\
  2391. NUM_COUNT ,DOWNLOAD_COUNT ,FINISH_COUNT , OPT_STATUS,\
  2392. ISPASS,ISDELIVER,DELIVER_TIME) \
  2393. VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
  2394. QVariantList vars;
  2395. vars<<batchid<<batchtype<<clientID<<userCode<<detail<<resulttj<<submittime<<finishtime;
  2396. vars<<settlefee<<giftfee<<numcount<<dlcount<<finishcount<<optstatus<<ispass<<isdeliver<<delivertime;
  2397. for(int i=0;i<vars.size();i++)
  2398. {
  2399. query.addBindValue(vars.at(i));
  2400. }
  2401. query.exec();
  2402. }
  2403. QSqlDatabase::database().commit();
  2404. return 0;
  2405. }
  2406. QMultiMap<QString, QString> SNCDataBase::getBzjcCheckFinishInfos(QString userCode, QString clientID, QString isdeliver)
  2407. {
  2408. QMultiMap<QString ,QString> values;
  2409. QSqlQuery query;
  2410. QVariantList vars;
  2411. if(isdeliver.isEmpty())
  2412. {
  2413. query.prepare("select BATCH_ID ,BATCH_TYPE ,\
  2414. DETAIL ,RESULT_TJ ,SUBMIT_TIME,FINISH_TIME,\
  2415. SETTLE_FEE,GIFT_FEE ,\
  2416. NUM_COUNT ,DOWNLOAD_COUNT ,FINISH_COUNT , OPT_STATUS,\
  2417. ISPASS,ISDELIVER,DELIVER_TIME \
  2418. from user.bzjc_check_finished where user_code=? and client_id = ? ");
  2419. vars<<userCode<<clientID;
  2420. }
  2421. else
  2422. {
  2423. query.prepare("select BATCH_ID ,BATCH_TYPE ,\
  2424. DETAIL ,RESULT_TJ ,SUBMIT_TIME,FINISH_TIME,\
  2425. SETTLE_FEE,GIFT_FEE ,\
  2426. NUM_COUNT ,DOWNLOAD_COUNT ,FINISH_COUNT , OPT_STATUS,\
  2427. ISPASS,ISDELIVER,DELIVER_TIME \
  2428. from user.bzjc_check_finished where user_code=? and client_id = ? and isdeliver = ?");
  2429. vars<<userCode<<clientID<<isdeliver;
  2430. }
  2431. for(int i=0;i<vars.size();i++)
  2432. {
  2433. query.addBindValue(vars.at(i));
  2434. }
  2435. query.exec();
  2436. while(query.next())
  2437. {
  2438. int i=0;
  2439. values.insert("batchid",query.value(i++).toString());
  2440. values.insert("batchtype",query.value(i++).toString());
  2441. values.insert("detail",query.value(i++).toString());
  2442. values.insert("resulttj",query.value(i++).toString());
  2443. values.insert("submittime",query.value(i++).toString());
  2444. values.insert("finishtime",query.value(i++).toString());
  2445. values.insert("settlefee",query.value(i++).toString());
  2446. values.insert("giftfee",query.value(i++).toString());
  2447. values.insert("numcount",query.value(i++).toString());
  2448. values.insert("dlcount",query.value(i++).toString());
  2449. values.insert("finishcount",query.value(i++).toString());
  2450. values.insert("optstatus",query.value(i++).toString());
  2451. values.insert("ispass",query.value(i++).toString());
  2452. values.insert("isdeliver",query.value(i++).toString());
  2453. values.insert("delivertime",query.value(i++).toString());
  2454. }
  2455. return values;
  2456. }
  2457. QMultiMap<QString, QString> SNCDataBase::getBzjcCheckDealingInfos(QString userCode, QString clientID)
  2458. {
  2459. QMultiMap<QString ,QString> values;
  2460. QSqlQuery query;
  2461. QVariantList vars;
  2462. query.prepare("select BATCH_ID ,BATCH_TYPE ,\
  2463. DETAIL ,RESULT_TJ ,SUBMIT_TIME,\
  2464. SETTLE_FEE,GIFT_FEE ,\
  2465. NUM_COUNT ,DOWNLOAD_COUNT ,FINISH_COUNT , OPT_STATUS,isverify,tf_time \
  2466. from user.BZJC_CHECK_DEALING where user_code=? and client_id = ? ");
  2467. vars<<userCode<<clientID;
  2468. for(int i=0;i<vars.size();i++)
  2469. {
  2470. query.addBindValue(vars.at(i));
  2471. }
  2472. query.exec();
  2473. while(query.next())
  2474. {
  2475. int i=0;
  2476. values.insert("batchid",query.value(i++).toString());
  2477. values.insert("batchtype",query.value(i++).toString());
  2478. values.insert("detail",query.value(i++).toString());
  2479. values.insert("resulttj",query.value(i++).toString());
  2480. values.insert("submittime",query.value(i++).toString());
  2481. values.insert("settlefee",query.value(i++).toString());
  2482. values.insert("giftfee",query.value(i++).toString());
  2483. values.insert("numcount",query.value(i++).toString());
  2484. values.insert("dlcount",query.value(i++).toString());
  2485. values.insert("finishcount",query.value(i++).toString());
  2486. values.insert("optstatus",query.value(i++).toString());
  2487. values.insert("isverify",query.value(i++).toString());
  2488. values.insert("tftime",query.value(i++).toString());
  2489. }
  2490. return values;
  2491. }
  2492. int SNCDataBase::getBzjcToDown(QString userCode, QString clientID)
  2493. {
  2494. QSqlQuery query;
  2495. query.prepare("select count(*) from user.bzjc_check_finished where user_code=? and client_id = ? and isdeliver='0'");
  2496. QVariantList vars;
  2497. vars<<userCode<<clientID;
  2498. for(int i=0;i<vars.size();i++)
  2499. {
  2500. query.addBindValue(vars.at(i));
  2501. }
  2502. query.exec();
  2503. int value = 0;
  2504. if(query.next())
  2505. {
  2506. value = query.value(0).toInt();
  2507. }
  2508. return value;
  2509. }
  2510. int SNCDataBase::delBzjcByID(QString srvID)
  2511. {
  2512. QSqlDatabase::database().transaction();
  2513. QSqlQuery query;
  2514. query.prepare("delete from user.BZJC_CHECK_FINISHED where batch_ID=? ");
  2515. QVariantList vars;
  2516. vars<<srvID;
  2517. for(int i=0;i<vars.size();i++)
  2518. {
  2519. query.addBindValue(vars.at(i));
  2520. }
  2521. query.exec();
  2522. QSqlDatabase::database().commit();
  2523. return 0;
  2524. }
  2525. int SNCDataBase::updateBzjcCachePath(QString srvID, QString cachePath)
  2526. {
  2527. QSqlDatabase::database().transaction();
  2528. QSqlQuery query;
  2529. query.prepare("update user.BZJC_CHECK_FINISHED set CACHE_LOCAL_PATH = ?,ISDELIVER='1' where batch_ID=? ");
  2530. QVariantList vars;
  2531. vars<<cachePath<<srvID;
  2532. for(int i=0;i<vars.size();i++)
  2533. {
  2534. query.addBindValue(vars.at(i));
  2535. }
  2536. query.exec();
  2537. QSqlDatabase::database().commit();
  2538. return 0;
  2539. }
  2540. QString SNCDataBase::getBzjcCachePath(QString srvID)
  2541. {
  2542. QSqlQuery query;
  2543. query.prepare("select CACHE_LOCAL_PATH from user.BZJC_CHECK_FINISHED where batch_ID=? ");
  2544. QVariantList vars;
  2545. vars<<srvID;
  2546. for(int i=0;i<vars.size();i++)
  2547. {
  2548. query.addBindValue(vars.at(i));
  2549. }
  2550. query.exec();
  2551. QString value = "";
  2552. if(query.next())
  2553. {
  2554. value = query.value(0).toString();
  2555. }
  2556. return value;
  2557. }
  2558. int SNCDataBase::deleteBzjcFinishExceptSrvIDs(QString clientID, QString userCode, QStringList ids)
  2559. {
  2560. QString where;
  2561. for(int i=0;i<ids.size();i++)
  2562. {
  2563. if(i==ids.size()-1)
  2564. where += QString("'%1'").arg(ids.at(i));
  2565. else
  2566. where += QString("'%1',").arg(ids.at(i));
  2567. }
  2568. if(where.isEmpty())
  2569. {
  2570. where = " where client_id = ? and user_code = ? ";
  2571. }
  2572. else
  2573. {
  2574. where = " where client_id = ? and user_code = ? and \
  2575. BATCH_ID not in (" + where + ")";
  2576. }
  2577. QString sql = " delete from BZJC_CHECK_FINISHED " + where;
  2578. QSqlQuery query;
  2579. QSqlDatabase::database().transaction();
  2580. query.prepare(sql);
  2581. query.addBindValue(clientID);
  2582. query.addBindValue(userCode);
  2583. query.exec();
  2584. QSqlDatabase::database().commit();
  2585. return 0;
  2586. }
  2587. QMultiMap<QString, QString> SNCDataBase::getSegRecInfos()
  2588. {
  2589. QMultiMap<QString ,QString> values;
  2590. QSqlQuery query;
  2591. query.exec("select seg,province,city,zipcode,s1,s2,s3,s4,sample_index,rec_index,check_day from SEG_rec order by random() limit 10");
  2592. while(query.next())
  2593. {
  2594. int i=0;
  2595. values.insert("seg",query.value(i++).toString());
  2596. values.insert("province",query.value(i++).toString());
  2597. values.insert("city",query.value(i++).toString());
  2598. values.insert("zipcode",query.value(i++).toString());
  2599. values.insert("shi",query.value(i++).toString());
  2600. values.insert("kong",query.value(i++).toString());
  2601. values.insert("ting",query.value(i++).toString());
  2602. values.insert("guan",query.value(i++).toString());
  2603. values.insert("sample_index",query.value(i++).toString());
  2604. values.insert("rec_index",query.value(i++).toString());
  2605. values.insert("check_day",query.value(i++).toString());
  2606. }
  2607. return values;
  2608. }
  2609. QMultiMap<QString, QString> SNCDataBase::getSegRecInfosByCity(QString city)
  2610. {
  2611. QMultiMap<QString ,QString> values;
  2612. QSqlQuery query;
  2613. query.prepare("select seg,province,city,zipcode,s1,s2,s3,s4,sample_index,rec_index,check_day from SEG_rec where city =? order by random() limit 10");
  2614. QVariant v;
  2615. v = city;
  2616. query.addBindValue(v);
  2617. query.exec();
  2618. while(query.next())
  2619. {
  2620. int i=0;
  2621. values.insert("seg",query.value(i++).toString());
  2622. values.insert("province",query.value(i++).toString());
  2623. values.insert("city",query.value(i++).toString());
  2624. values.insert("zipcode",query.value(i++).toString());
  2625. values.insert("shi",query.value(i++).toString());
  2626. values.insert("kong",query.value(i++).toString());
  2627. values.insert("ting",query.value(i++).toString());
  2628. values.insert("guan",query.value(i++).toString());
  2629. values.insert("sample_index",query.value(i++).toString());
  2630. values.insert("rec_index",query.value(i++).toString());
  2631. values.insert("check_day",query.value(i++).toString());
  2632. }
  2633. return values;
  2634. }
  2635. QStringList SNCDataBase::getSegAreaCodes()
  2636. {
  2637. QStringList values;
  2638. QSqlQuery query;
  2639. QVariantList vars;
  2640. query.exec("select distinct areacode from num.city");
  2641. while(query.next())
  2642. {
  2643. int i=0;
  2644. values.append(query.value(i++).toString());
  2645. }
  2646. return values;
  2647. }
  2648. QStringList SNCDataBase::getRecSegs()
  2649. {
  2650. QStringList values;
  2651. QSqlQuery query;
  2652. QVariantList vars;
  2653. query.exec("select seg from seg_rec");
  2654. while(query.next())
  2655. {
  2656. int i=0;
  2657. values.append(query.value(i++).toString());
  2658. }
  2659. return values;
  2660. }
  2661. QMultiMap<QString, QString> SNCDataBase::getSegRecInfosByProvince(QString province)
  2662. {
  2663. QMultiMap<QString ,QString> values;
  2664. QSqlQuery query;
  2665. query.prepare("select seg,province,city,zipcode,s1,s2,s3,s4,sample_index,rec_index,check_day from SEG_rec where province =? order by random() limit 10");
  2666. QVariant v;
  2667. v = province;
  2668. query.addBindValue(v);
  2669. query.exec();
  2670. while(query.next())
  2671. {
  2672. int i=0;
  2673. values.insert("seg",query.value(i++).toString());
  2674. values.insert("province",query.value(i++).toString());
  2675. values.insert("city",query.value(i++).toString());
  2676. values.insert("zipcode",query.value(i++).toString());
  2677. values.insert("shi",query.value(i++).toString());
  2678. values.insert("kong",query.value(i++).toString());
  2679. values.insert("ting",query.value(i++).toString());
  2680. values.insert("guan",query.value(i++).toString());
  2681. values.insert("sample_index",query.value(i++).toString());
  2682. values.insert("rec_index",query.value(i++).toString());
  2683. values.insert("check_day",query.value(i++).toString());
  2684. }
  2685. return values;
  2686. }