#include "sncdatabase.h" #include SNCDataBase::SNCDataBase() { } bool SNCDataBase::createConnection(QString password, QString path) { if(!QFile::exists("sys.db") || !QFile::exists("mseg.db") || !QFile::exists(path + "/user.db") ) { qDebug()<<"Cannot Find Db File"; return false; } QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName(":memory:"); db.setPassword(password); if (!db.open()) { qDebug()<<"DB Open Error;"< SNCDataBase::getLocalTextAds() { QSqlQuery query; QMap ads; query.exec("select adurl,adtext from sys.ad "); while(query.next()) { ads.insert(query.value(0).toString(),query.value(1).toString()); } return ads; } QMap SNCDataBase::getLocalPageAds() { QSqlQuery query; QMap ads; query.exec("select ad_id,ad_url from sys.page_ad "); while(query.next()) { ads.insert(query.value(0).toString(),query.value(1).toString()); } return ads; } QMap SNCDataBase::getLocalClientConfigs() { QSqlQuery query; QMap configs; query.exec("select id,name,notice_url,host,port from sys.client_config "); while(query.next()) { QStringList list; list< ads) { QSqlQuery query; QSqlDatabase::database().transaction(); query.exec("delete from sys.ad"); query.prepare("insert into sys.ad values(?,?)"); QVariantList urls,contents; foreach(QString key,ads.keys()) { urls< ads) { QSqlQuery query; QSqlDatabase::database().transaction(); query.exec("delete from sys.page_ad"); query.prepare("insert into sys.page_ad values(?,?)"); QVariantList ad_ids,ad_urls; foreach(QString key,ads.keys()) { ad_ids< prefixes) { //qDebug()< configs, QString default_host, QString default_port) { //qDebug()< SNCDataBase::getRegionInfo() { QSqlQuery query; QList maps; QStringList citys; QStringList provinces; query.exec("select province,city from num.city order by province desc "); while(query.next()) { QString province = query.value(0).toString(); QString city = query.value(1).toString(); citys< SNCDataBase::groupSegmentIntoCity(QStringList segments) { QSqlQuery query; query.exec("truncate table tmp_number"); query.prepare("insert into tmp_number values(?)"); QVariantList varList; for(int i=0;i mapSegments; while(query.next()) { segment = query.value(0).toString(); city = query.value(1).toString(); if(city.isEmpty()) city="未知地区"; mapSegments.insert(segment,city); } return mapSegments; } QMap SNCDataBase::groupSegmentIntoProvince(QStringList segments) { QSqlQuery query; query.exec("truncate table tmp_number"); query.prepare("insert into tmp_number values(?)"); QVariantList varList; for(int i=0;i mapSegments; while(query.next()) { segment = query.value(0).toString(); province = query.value(1).toString(); if(province.isEmpty()) province="未知地区"; mapSegments.insert(segment,province); } return mapSegments; } QMap SNCDataBase::getSysSolutions() { QString where = " "; QSqlQuery query; query.exec("select sln_id,name from sys.NUMBER_RULES_SYSTEM " + where + " "); QMap map; while(query.next()) { map.insert(query.value(0).toInt(),query.value(1).toString()); } return map; } QMap SNCDataBase::getUserSolutions() { QString where = " "; QSqlQuery query; query.exec("select sln_id,name from USER.NUMBER_RULES_USER " + where + " "); QMap map; while(query.next()) { map.insert(query.value(0).toInt(),query.value(1).toString()); } return map; } QMap SNCDataBase::getAllRuleNames() { QString where = " "; QSqlQuery query; query.exec("select RULE_ID,name from SYS.NUMBER_RULES " + where + " "); QMap map; while(query.next()) { map.insert(query.value(0).toInt(),query.value(1).toString()); } return map; } QList SNCDataBase::getRuleIdBySysSlnID(int id) { QString where = " where sln_id= " + QString::number(id); QSqlQuery query; query.exec("select rule_id from sys.NUMBER_RULES_SYSTEM_MAP " + where + " "); QList list; while(query.next()) { list.append(query.value(0).toInt()); } return list; } QList SNCDataBase::getRuleIdByUserSlnID(int id) { QString where = " where sln_id= " + QString::number(id); QSqlQuery query; query.exec("select rule_id from user.NUMBER_RULES_USER_MAP " + where + " "); QList list; while(query.next()) { list.append(query.value(0).toInt()); } return list; } QStringList SNCDataBase::getRulesBySysSlnID(int id) { QString where = " where a.sln_id = " + QString::number(id); QSqlQuery query; 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 + " "); QStringList list; while(query.next()) { list<=20) { query.exec("delete from user.NUMBER_BUILD_HISTORY where build_id in (select min(build_id) from user.NUMBER_BUILD_HISTORY )"); } } query.prepare("insert into user.NUMBER_BUILD_HISTORY(BUILD_DATE,REGION,TOTAL,SEGMENTS,RULE_IDS) values(?,?,?,?,?)"); QVariant v1,v2,v3,v4,v5; v1 = build_date; v2 = region; v3 = total; v4 = segments; v5 = rule_ids; query.addBindValue(v1); query.addBindValue(v2); query.addBindValue(v3); query.addBindValue(v4); query.addBindValue(v5); query.exec(); QSqlDatabase::database().commit(); } QList SNCDataBase::getAllBuildHistory() { QSqlQuery query; query.exec("select build_date,region,total,build_id,segments,rule_ids from user.NUMBER_BUILD_HISTORY order by build_id desc "); QList list; while(query.next()) { QStringList l; l<< query.value(0).toString(); l<< query.value(1).toString(); l<< query.value(2).toString(); l<< query.value(3).toString(); l<< query.value(4).toString(); l<< query.value(5).toString(); list.append(l); } return list; } QStringList SNCDataBase::getRuleContensByRuleIDs(QStringList ids) { QSqlQuery query; QString where; for(int i=0;i500) { str += query.value(0).toString()+","+query.value(1).toString()+";"; total += query.value(1).toInt(); } } if(total SNCDataBase::getSrvParam(QString srvid) { QSqlQuery query; query.prepare("select srv_param_name,srv_param_value from sys.srv_param where srv_id=?"); QVariant v = srvid; query.addBindValue(v); query.exec(); QMap para; while(query.next()) { para.insert(query.value(0).toString(),query.value(1).toString()); } return para; } void SNCDataBase::updateSrvParam(QString srvid, QMap para) { QSqlQuery query; QSqlDatabase::database().transaction(); query.clear(); query.prepare("delete from sys.srv_param where srv_id=?"); QVariant value = srvid; query.addBindValue(value); query.exec(); foreach(QString key ,para.keys()) { if(!key.isEmpty() && !para.value(key).isEmpty()) { query.clear(); query.prepare("insert into sys.srv_param values(?,?,?)"); QVariant value1 = srvid; QVariant value2 = key; QVariant value3 = para.value(key); query.addBindValue(value1); query.addBindValue(value2); query.addBindValue(value3); query.exec(); } } QSqlDatabase::database().commit(); } int SNCDataBase::getSegCount() { QSqlQuery query; query.exec("select sum(total) from num.city "); int total = 0; if(query.next()) { total = query.value(0).toInt(); } return total; } QString SNCDataBase::getAuthCodeSeg() { QSqlQuery query; query.exec("select value from sys.config where name='authcode_seg' "); QString value=""; if(query.next()) { value = query.value(0).toString(); } return value; } QString SNCDataBase::getAuthCodeSrvtime() { QSqlQuery query; query.exec("select value from sys.config where name='authcode_srvtime' "); QString value=""; if(query.next()) { value = query.value(0).toString(); } return value; } QString SNCDataBase::getAuthCodeUrl() { QSqlQuery query; query.exec("select value from sys.config where name='authcode_url' "); QString value=""; if(query.next()) { value = query.value(0).toString(); } return value; } QString SNCDataBase::getAuthCodeSyspara() { QSqlQuery query; query.exec("select value from sys.config where name='authcode_syspara' "); QString value=""; if(query.next()) { value = query.value(0).toString(); } return value; } QString SNCDataBase::getAuthCodeEncrpt() { QSqlQuery query; query.exec("select value from sys.config where name='authcode_encrypt' "); QString value=""; if(query.next()) { value = query.value(0).toString(); } return value; } int SNCDataBase::addFileUpload(QString moduleID, QString clientID, QString userCode, QString fileName,QString filePath, QString fileType, QString taskType,QString fileMemo) { QSqlQuery query; QSqlDatabase::database().transaction(); query.prepare("insert into user.FILE_UPLOAD(MODULE_ID,CLIENT_ID,USER_CODE,File_Name,\ FILE_PATH,FILE_TYPE,TASK_TYPE,FILE_MEMO,UPLOAD_STATE,OPT_STATUS,ISVERIFY)\ values(?,?,?,?,?,?,?,?,0,'0','0')"); QVariantList vars; vars< SNCDataBase::getAllUpload(QString moduleID, QString clientID, QString userCode) { QMultiMap values; QSqlQuery query; query.prepare("select file_id,file_name,file_path,file_type,task_type,file_memo,\ UPLOAD_STATE,rtn_msg ,rtn_detail,percent,server_fid,server_rtime,\ isverify,opt_status,tf_time from user.file_upload \ where module_ID=? and client_id=? and user_code=?"); QVariantList vars; vars< maps, QString userCode) { QSqlQuery query; QSqlDatabase::database().transaction(); int cols = maps.uniqueKeys().size(); int rows = 0; if(cols!=0) { rows = maps.size()/cols; } //add-on-2013-9-23 for delete outdate-shhj-check-info query.clear(); query.exec("delete from user.SHKJ_CHECK where deal_status='0' or deal_status='1'"); //end for(int i=0;i maps, QString userCode) { QSqlQuery query; QSqlDatabase::database().transaction(); int cols = maps.uniqueKeys().size(); int rows = 0; if(cols!=0) { rows = maps.size()/cols; } //删除现有的数据信息 query.prepare("delete from user.SHKJ_ZXSH_TASK_SERVER WHERE USER_CODE = ?"); query.addBindValue(userCode); query.exec(); query.clear(); //添加新的数据信息 for(int i=0;i SNCDataBase::getShkjCheckInfos(QString userCode) { QMultiMap values; QSqlQuery query; query.prepare("select QUERY_CODE,DETAIL,HMZS,LTF_TJ,LTF_LIST,FORCAST_TJ ,\ FORCAST_LIST,INSERT_TIME ,FINISH_TIME,DEAL_STATUS,LTF_ID \ from user.shkj_check where user_code=?"); QVariantList vars; vars< SNCDataBase::getShkjCheckInfos(QString userCode, QString dealstatus) { QMultiMap values; QSqlQuery query; QVariantList vars; if(dealstatus.isEmpty()) { // query.prepare("select QUERY_CODE,DETAIL,HMZS,LTF_TJ,LTF_LIST,FORCAST_TJ ,\ // FORCAST_LIST,INSERT_TIME ,FINISH_TIME,DEAL_STATUS,LTF_ID \ // from user.shkj_check where user_code=? and (deal_status = '2' or deal_status='3')"); query.prepare("select QUERY_CODE,DETAIL,HMZS,LTF_TJ,LTF_LIST,FORCAST_TJ ,\ FORCAST_LIST,INSERT_TIME ,FINISH_TIME,DEAL_STATUS,LTF_ID \ from user.shkj_check where user_code=? "); vars< SNCDataBase::getShkjZxshTasks(QString userCode, QString dealstatus) { QMultiMap values; QSqlQuery query; QVariantList vars; if(dealstatus.isEmpty()) { query.prepare("select TASK_ID,SSID,PROVINCE,CITY,INSERTTIME,UPDATEDAYS,ISP ,\ SEG,NEED_NUM ,USER_CODE,DEAL_STATUS,ISDEL \ from user.SHKJ_ZXSH_TASK where user_code=?"); vars< SNCDataBase::getShkjZxshTasksByUser(QString userCode) { QMultiMap values; QSqlQuery query; QVariantList vars; query.prepare("select SSID,PROVINCE,CITY,INSERTTIME,FINISHTEIME,UPDATEDAYS,ISP ,\ SEG,NEED_NUM ,REAL_NUM,USER_CODE,DEAL_STATUS \ from user.SHKJ_ZXSH_TASK_SERVER where user_code=?"); vars< SNCDataBase::getDefaultLoginInfo() { QMultiMap values; QSqlQuery query; query.exec("select USER_CODE,PASSWORD,ISAUTO,ISREMEMBER,LAST_LOGIN_TIME \ from user.USER_LOGON ORDER BY ID asc"); while(query.next()) { int i=0; values.insert("usercode",query.value(i++).toString()); values.insert("password",query.value(i++).toString()); values.insert("isauto",query.value(i++).toString()); values.insert("isremember",query.value(i++).toString()); values.insert("lastlogintime",query.value(i++).toString()); } return values; } int SNCDataBase::updateBzjcCheckDealInfos(QMultiMap maps, QString userCode, QString clientID) { QSqlQuery query; QSqlDatabase::database().transaction(); int cols = maps.uniqueKeys().size(); int rows = 0; if(cols!=0) { rows = maps.size()/cols; } query.clear(); query.exec("delete from user.bzjc_check_dealing where client_id = '" + clientID+ "'"); for(int i=0;i maps, QString userCode, QString clientID) { QSqlQuery query; QSqlDatabase::database().transaction(); int cols = maps.uniqueKeys().size(); int rows = 0; if(cols!=0) { rows = maps.size()/cols; } for(int i=0;i SNCDataBase::getBzjcCheckFinishInfos(QString userCode, QString clientID, QString isdeliver) { QMultiMap values; QSqlQuery query; QVariantList vars; if(isdeliver.isEmpty()) { query.prepare("select BATCH_ID ,BATCH_TYPE ,\ DETAIL ,RESULT_TJ ,SUBMIT_TIME,FINISH_TIME,\ SETTLE_FEE,GIFT_FEE ,\ NUM_COUNT ,DOWNLOAD_COUNT ,FINISH_COUNT , OPT_STATUS,\ ISPASS,ISDELIVER,DELIVER_TIME \ from user.bzjc_check_finished where user_code=? and client_id = ? "); vars< SNCDataBase::getBzjcCheckDealingInfos(QString userCode, QString clientID) { QMultiMap values; QSqlQuery query; QVariantList vars; query.prepare("select BATCH_ID ,BATCH_TYPE ,\ DETAIL ,RESULT_TJ ,SUBMIT_TIME,\ SETTLE_FEE,GIFT_FEE ,\ NUM_COUNT ,DOWNLOAD_COUNT ,FINISH_COUNT , OPT_STATUS,isverify,tf_time \ from user.BZJC_CHECK_DEALING where user_code=? and client_id = ? "); vars< SNCDataBase::getSegRecInfos() { QMultiMap values; QSqlQuery query; 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"); while(query.next()) { int i=0; values.insert("seg",query.value(i++).toString()); values.insert("province",query.value(i++).toString()); values.insert("city",query.value(i++).toString()); values.insert("zipcode",query.value(i++).toString()); values.insert("shi",query.value(i++).toString()); values.insert("kong",query.value(i++).toString()); values.insert("ting",query.value(i++).toString()); values.insert("guan",query.value(i++).toString()); values.insert("sample_index",query.value(i++).toString()); values.insert("rec_index",query.value(i++).toString()); values.insert("check_day",query.value(i++).toString()); } return values; } QMultiMap SNCDataBase::getSegRecInfosByCity(QString city) { QMultiMap values; QSqlQuery query; 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"); QVariant v; v = city; query.addBindValue(v); query.exec(); while(query.next()) { int i=0; values.insert("seg",query.value(i++).toString()); values.insert("province",query.value(i++).toString()); values.insert("city",query.value(i++).toString()); values.insert("zipcode",query.value(i++).toString()); values.insert("shi",query.value(i++).toString()); values.insert("kong",query.value(i++).toString()); values.insert("ting",query.value(i++).toString()); values.insert("guan",query.value(i++).toString()); values.insert("sample_index",query.value(i++).toString()); values.insert("rec_index",query.value(i++).toString()); values.insert("check_day",query.value(i++).toString()); } return values; } QStringList SNCDataBase::getSegAreaCodes() { QStringList values; QSqlQuery query; QVariantList vars; query.exec("select distinct areacode from num.city"); while(query.next()) { int i=0; values.append(query.value(i++).toString()); } return values; } QStringList SNCDataBase::getRecSegs() { QStringList values; QSqlQuery query; QVariantList vars; query.exec("select seg from seg_rec"); while(query.next()) { int i=0; values.append(query.value(i++).toString()); } return values; } QMultiMap SNCDataBase::getSegRecInfosByProvince(QString province) { QMultiMap values; QSqlQuery query; 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"); QVariant v; v = province; query.addBindValue(v); query.exec(); while(query.next()) { int i=0; values.insert("seg",query.value(i++).toString()); values.insert("province",query.value(i++).toString()); values.insert("city",query.value(i++).toString()); values.insert("zipcode",query.value(i++).toString()); values.insert("shi",query.value(i++).toString()); values.insert("kong",query.value(i++).toString()); values.insert("ting",query.value(i++).toString()); values.insert("guan",query.value(i++).toString()); values.insert("sample_index",query.value(i++).toString()); values.insert("rec_index",query.value(i++).toString()); values.insert("check_day",query.value(i++).toString()); } return values; }