Guest User

ManagmentController.php

a guest
Sep 20th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 44.25 KB | None | 0 0
  1. <?php
  2. class ManagmentController extends Controller {
  3.  
  4. public function init() {
  5. ini_set('memory_limit', '-1');
  6. set_time_limit(0);
  7. Yii::import("application.models.admincp.reseller.*");
  8. }
  9.  
  10. final public function accessRules()
  11. {
  12. return array(
  13. array('allow',
  14. 'roles'=>array('admin')
  15. ),
  16. array('deny',
  17. 'users'=>array('*'),
  18. ),
  19. );
  20. }
  21.  
  22.  
  23. public function actionUpdateInfo() {
  24.  
  25. $db_id = getParam('database_id');
  26. $db_name = getParam('database_name');
  27. $db_status = getParam('database_status');
  28. $db_checker = getParam('database_checker');
  29. $db_cvv = getParam('database_cvv');
  30. ## $db_checker = (in_array($db_checker,array('try2check','apino', 'checkmoney', 'cardok'))) ? $db_checker : '';
  31. $db_checker = (key_exists($db_checker,Yii::app()->params['checker'])) ? $db_checker : '';
  32. $db_refunds = getParam('database_refunds');
  33.  
  34. //UPDATE INFO
  35. if(!empty($db_id) && !empty($db_name) && in_array($db_status,array(0,1))) {
  36. $model = R_Bases::model()->findByPk($db_id);
  37. if(!empty($model)) {
  38. $model->name = $db_name;
  39. $model->active = $db_status;
  40. $model->checker = $db_checker;
  41. $model->refunds = $db_refunds;
  42. $model->withcvv = $db_cvv;
  43. $model->price_approve = ($model->active==1)?1:0;
  44. //$model->last_updated = null;
  45. $model->save();
  46. }
  47.  
  48.  
  49. //ADDING PRICELIST:
  50. $priceList = arrayPath($_REQUEST, 'priceList',array());
  51. if(!empty($priceList)) :
  52. //MODIFY INCOME DATA:
  53. $searcharray = array();
  54. parse_str($priceList,$searcharray);
  55. $priceList = mergeArrayByKeys($searcharray['priceList']);
  56.  
  57. //UPDATE PRICE LIST:
  58.  
  59. $price = new R_Price();
  60.  
  61. if(getParam('type') == 1) {
  62. $model->updatePriceListInDb(getParam('database_id'),$priceList,1);
  63. $price->CCS_rebuildPrice(getParam('database_id'));
  64. } elseif(getParam('type') == 2) {
  65. $model->updatePriceListInDb(getParam('database_id'),$priceList,2);
  66. $price->DUMPS_rebuildPrice(getParam('database_id'));
  67. } elseif(getParam('type') == 3) {
  68.  
  69. $model->updatePriceListInDb(getParam('database_id'),$priceList,3);
  70. $price->ACCS_rebuildPrice(getParam('database_id'));
  71. }
  72.  
  73.  
  74. endif;
  75. noty('Information was updated','success');
  76. }
  77. }
  78.  
  79. public function actionAddDatabase() {
  80. Yii::import("application.models.admincp.users.*");
  81. $db_name = getParam('database_name');
  82. $db_type = getParam('database_type');
  83. $db_cvv = getParam('database_cvv');
  84. $username = getParam('username');
  85. $seller_id = (empty($username)) ? UID() : AUsers::model()->findByAttributes(array("username"=>$username))->id;
  86. DAO()->insert("{{bases}}", array("name"=>$db_name,"type"=>$db_type,"withcvv"=>$db_cvv,"seller_id"=>$seller_id,'active'=>0));
  87. noty('Database was created','success');
  88. }
  89.  
  90. public function actionAddPayout() {
  91. Yii::import("application.models.admincp.users.AUsers");
  92. $username = getParam('username');
  93. $amount = getParam('amount');
  94. $comment = getParam('comment');
  95. $base_id = getParam('base_id');
  96. if($amount < 0) {
  97. noty('Minimum $0','warning');
  98. return false;
  99. }
  100. if($amount > 1000) {
  101. noty('Maximum $1000','warning');
  102. return false;
  103. }
  104. $userInfo = Users::model()->findByAttributes(array("username"=>$username));
  105. if(empty($userInfo)) noty('Selected account not found','error');
  106. DAO()->insert("{{payouts}}", array(
  107. "amount"=>$amount,
  108. "base_id"=>$base_id,
  109. "user_id"=>$userInfo->id,
  110. "comment"=>$comment,
  111. "username"=>$userInfo->username,
  112. "created_at"=>expr("NOW()")
  113. ));
  114. noty('Payout was added','success');
  115. }
  116.  
  117. public function actionDisplayPayoutsInfoByDatabase() {
  118. $modelPayouts = new R_Payouts();
  119. $modelPayouts->FilterByUserId(UID());
  120. $database_id = getParam('database_id');
  121. $this->render('_payoutStats', array(
  122. 'database_id'=>$database_id,
  123. 'modelPayouts'=>$modelPayouts
  124. ));
  125. }
  126.  
  127. public function actionAddPartner() {
  128.  
  129. Yii::import("application.models.admincp.users.AUsers");
  130. $username = getParam('username');
  131. $percent = getParam('percent');
  132. $base_id = getParam('base_id');
  133. $userInfo = Users::model()->findByAttributes(array("username"=>$username));
  134. if(empty($userInfo)) noty('Selected account not found','error');
  135. DAO()->insert("{{partners}}", array(
  136. "percent"=>$percent,
  137. "base_id"=>$base_id,
  138. "user_id"=>$userInfo->id,
  139. "username"=>$userInfo->username,
  140. "created_at"=>expr("NOW()")
  141. ));
  142. noty('Partner was added','success');
  143. }
  144.  
  145. public function actionRemovePartner() {
  146. return DAO()->delete("{{partners}}",
  147. "user_id=:user_id AND base_id=:base_id",
  148. array(
  149. ":user_id"=>getParam('user_id'),
  150. ":base_id"=>getParam('base_id'),
  151. )
  152. );
  153. }
  154.  
  155. public function actionCCSPrices() {
  156. $prices = new R_Prices('search');
  157. $prices->unsetAttributes();
  158. if(isset($_GET[$prices->name()])) {
  159. $prices->attributes=$_GET[$prices->name()];
  160. }
  161.  
  162. $this->render('/admincp/reseller/managment/prices/ccs_prices',array(
  163. "model"=>$prices
  164. ));
  165. }
  166.  
  167. public function actionCCSAlias() {
  168. $prices = new R_Alias('search');
  169. $prices->unsetAttributes();
  170. if(isset($_GET[$prices->name()])) {
  171. $prices->attributes=$_GET[$prices->name()];
  172. }
  173.  
  174. $this->render('/admincp/reseller/managment/alias/alias_list',array(
  175. "model"=>$prices
  176. ));
  177. }
  178.  
  179. public function actionAddPriceCountry() {
  180.  
  181. $price = getParam('price');
  182. $fullz = getParam('fullz');
  183. $country_name = getParam('country_name');
  184. $timeout = getParam('timeout');
  185.  
  186. //ADDING PRICE
  187. $prices = new R_Prices();
  188.  
  189. $prices->price = $price;
  190. $prices->country_name = $country_name;
  191. $prices->fullz = $fullz;
  192. $prices->timeout = $timeout;
  193. $prices->save();
  194.  
  195.  
  196. $priceRules = new R_Price();
  197. $priceRules->CCS_updatePriceByCountry($country_name, $price, $fullz);
  198. $priceRules->CCS_rebuildPriceAll();
  199. noty('Country was added','success');
  200.  
  201. }
  202.  
  203. public function actionUpdateProfitAllCache() {
  204. Yii::import("application.models.admincp.reseller.*");
  205. $data = SQL("SELECT `id` FROM {{bases}};")->query();
  206. $total_profit_all = 0;
  207. foreach($data as $row) {
  208. $data2 = SQL("SELECT `user_id` FROM {{partners}} WHERE `base_id` = '".$row['id']."';")->query();
  209. if($data2) {
  210. foreach($data2 as $row2) {
  211. $total_profit_all+= R_Partners::model()->getCurrentProfit($row2['user_id'], $row['id']);
  212. }
  213. }
  214. }
  215. Yii::app()->cache->set('total_profit_all', $total_profit_all);
  216.  
  217. Yii::import("application.models.admincp.operations.*");
  218. Yii::import("application.models.admincp.operations.bitcoin.*");
  219. Yii::import("application.models.admincp.operations.bitcoin.forms.*");
  220.  
  221. $bitcoinModel = new Bitcoin();
  222. $btc_rate = $bitcoinModel->getBTC_rate(true);
  223.  
  224. $info = $bitcoinModel->connection->getinfo();
  225. $balance = $info['balance']*$btc_rate;
  226. $total_profit_all = round($total_profit_all, 2);
  227. $balance = round($balance, 2);
  228. $free_balance = round(($balance-$total_profit_all), 2);
  229.  
  230. if($free_balance <= 0) {
  231. $free_balance = '<b style="color:red">'.$free_balance.'</b>';
  232. }
  233. $total_users_balance = SQL("SELECT SUM(`balance`) as `total` FROM {{users}} WHERE `ban` != 1 AND `balance_confirmed` = 1;")->queryScalar();
  234. $line = '| Balance: $'.$balance.' | Total users profit: $'.$total_profit_all.' <br>| Free balance: $'.$free_balance.' | Total users balance: $'.$total_users_balance;
  235. noty($line,'success');
  236. }
  237.  
  238.  
  239.  
  240. public function actionGetPriceList() {
  241. $model = new R_Bases();
  242. $list = $model->getPriceListInDb(getParam('id'),getParam('type'));
  243. echo CJSON::encode($list);
  244. }
  245.  
  246.  
  247. public function actionRebuildDumpSection() {
  248. $model = new R_Bases();
  249. $priceRules = new R_Price();
  250. $model->rebuildBinlistAll();
  251. $priceRules->DUMPS_rebuildPriceAll();
  252. }
  253.  
  254. public function actionUpdatesList() {
  255.  
  256. //BASES INFO
  257. $modelBases = new R_Bases();
  258.  
  259. //CCS UPDATES:
  260. $modelUpdatesCCS = new R_Updates_CCS();
  261.  
  262. //DUMPS UPDATES:
  263. $modelUpdatesDUMPS = new R_Updates_Dumps();
  264.  
  265. //ACCS UPDATES:
  266. $modelUpdatesACCS = new R_Updates_ACCS();
  267.  
  268. $this->render('/admincp/reseller/managment/updates/updateslist', array(
  269. 'modelUpdatesCCS'=>$modelUpdatesCCS,
  270. 'modelUpdatesDUMPS'=>$modelUpdatesDUMPS,
  271. 'modelUpdatesACCS'=>$modelUpdatesACCS,
  272. 'modelBases'=>$modelBases
  273. ));
  274. }
  275.  
  276.  
  277. public function actionRemoveMultipleBases() {
  278. $bases = getParam('bases');
  279. if(count($bases) == 0) {
  280. noty('Check bases', 'warning');
  281. }
  282. if(strlen(getParam('resellerPWD')) == 0) {
  283. noty('Insert password', 'warning');
  284. }
  285. foreach ($bases as $base) {
  286. $base = preg_replace("#[^0-9]+#", '', $base);
  287. $_GET['method'] = 'removeBase';
  288. $_GET['database_id'] = $base;
  289. $this->actionAjax();
  290. }
  291. noty('Success remove '.count($bases).' base(s)', 'success');
  292. }
  293.  
  294. public function actionMassChangeChecker() {
  295. $checkers = Yii::app()->params['checker'];
  296. unset($checkers['default']);unset($checkers['default_dumps']);
  297. $checker = getParam('massChangeChecker');
  298. if(!key_exists($checker,$checkers)) {
  299. noty('Select checker from list', 'warning');
  300. }
  301. SQL("update {{bases}} set checker='".$checker."' where checker<>'' and (checker='".implode("' or checker='",array_keys($checkers))."')")->query();
  302. noty('Success setting "'.$checkers[$checker]['name'].'" checker on all bases', 'success');
  303. }
  304.  
  305.  
  306. public function actionIndex() {
  307. #+T
  308. $model = new R_Bases();
  309. $modelPayouts = new R_Payouts();
  310. $modelPartners = new R_Partners();
  311. $database_id = getParam('database_id');
  312. $import = getParam('import');
  313. $export = getParam('export');
  314. $database_info = $model->getInfoAboutDBbyID($database_id);
  315. $password = getParam('resellerPWD');
  316. $total_profit_all = Yii::app()->cache->get('total_profit_all');
  317. if(!$total_profit_all) {
  318. Yii::import("application.models.admincp.reseller.*");
  319. $data = SQL("SELECT `id` FROM {{bases}};")->query();
  320. // var_dump($data);
  321. $total_profit_all = 0;
  322. foreach($data as $row) {
  323. $data2 = SQL("SELECT `user_id` FROM {{partners}} WHERE `base_id` = '".$row['id']."';")->query();
  324. if($data2) {
  325. foreach($data2 as $row2) {
  326. $total_profit_all+= R_Partners::model()->getCurrentProfit($row2['user_id'], $row['id']);
  327. }
  328. }
  329. }
  330. Yii::app()->cache->set('total_profit_all', $total_profit_all);
  331. }
  332.  
  333. Yii::import("application.models.admincp.operations.*");
  334. Yii::import("application.models.admincp.operations.bitcoin.*");
  335. Yii::import("application.models.admincp.operations.bitcoin.forms.*");
  336.  
  337. /*$bitcoinModel = new Bitcoin();
  338. $btc_rate = $bitcoinModel->getBTC_rate(true);
  339. echo "ok";exit;
  340. $info = $bitcoinModel->connection->getinfo();*/
  341.  
  342. $info['balance'] = rand(1,100);$btc_rate=rand(100,999); // for tests without access to btc server
  343.  
  344.  
  345. $model->unsetAttributes();
  346. if(isset($_GET[$model->name()])) {
  347. $model->attributes=$_GET[$model->name()];
  348. }
  349.  
  350.  
  351. if(getParam('removed') == 1) {
  352. $model_bases = $model;
  353. }else {
  354. $model_bases = $model->withoutDeleted();
  355. }
  356.  
  357.  
  358.  
  359. $balance = $info['balance']*$btc_rate;
  360. $total_users_balance = SQL("SELECT SUM(`balance`) as `total` FROM {{users}} WHERE `ban` != 1 AND `balance_confirmed` = 1;")->queryScalar();
  361. $dataArray = array(
  362. 'database_id'=>$database_id,
  363. 'database_info'=>$database_info,
  364. 'model'=>$model_bases,
  365. 'modelPartners'=>$modelPartners,
  366. 'modelPayouts'=>$modelPayouts,
  367. 'import'=>$import,
  368. 'export'=>$export,
  369. 'importDataErrors'=>'',
  370. 'importDataSuccess'=>'',
  371. 'countryWithoutPrice'=>'',
  372. 'total_profit_all'=>round($total_profit_all, 2),
  373. 'balance'=>round($balance, 2),
  374. 'free_balance'=>round(($balance-$total_profit_all), 2),
  375. 'total_users_balance'=>round($total_users_balance, 2),
  376. );
  377.  
  378. if($export == 1) {
  379. die();
  380. }
  381.  
  382. //IF DATABASE WAS SELECTED
  383. Yii::import("application.models.admincp.import.*");
  384. if(!empty($database_id) && !empty($database_info)) {
  385. switch ($database_info['type']) {
  386. case 1:
  387.  
  388. $modelUpdates = new R_Updates_CCS($database_info['type']);
  389. $modelUpdates = $modelUpdates->selectedBase($database_info['id']);
  390. break;
  391. case 2:
  392. $modelUpdates = new R_Updates_Dumps($database_info['type']);
  393. $modelUpdates = $modelUpdates->selectedBase($database_info['id']);
  394. break;
  395. case 3:
  396. $modelUpdates = new R_Updates_ACCS($database_info['type']);
  397. $modelUpdates = $modelUpdates->selectedBase($database_info['id']);
  398. break;
  399.  
  400. default:
  401. break;
  402. }
  403.  
  404.  
  405.  
  406. $dataArray['modelUpdates'] = $modelUpdates;
  407. $dataArray['modelDelayed'] = new ImportDelayed;
  408. $dataArray['modelDelayed'] = $dataArray['modelDelayed']->selectedBase($database_info['id']);
  409.  
  410.  
  411. //SET DEFAULT TABLE:
  412. switch ($database_info['type']) {
  413. case 1:
  414. $table_name = 'ccs';
  415. break;
  416. case 2:
  417. $table_name = 'dumps';
  418. break;
  419. case 3:
  420. $table_name = 'accounts';
  421. break;
  422.  
  423. default:
  424. break;
  425. }
  426.  
  427. $dataArray['countryList'] =
  428. SQL("
  429. SELECT c.country_name
  430. FROM {{".$table_name."}} as c
  431. WHERE base_id=:base_id
  432. GROUP BY c.country_name
  433. ")->bindParam(":base_id", $database_id)->queryAll();
  434. }
  435.  
  436. //CHECK IMPORT
  437. if($import == 1 || ($export == 1 && $password == 'w3aux6mThVgGX3KwDiT62CK')) {
  438. //DEFAULT ARRAY:
  439. $dataArray['importDataErrors'] = '';
  440. $dataArray['importDataSuccess'] = '';
  441. $dataArray['countryWithoutPrice'] = '';
  442.  
  443.  
  444. $importData = (!empty($_POST['importData'])) ? $_POST['importData'] : null;
  445. $importType = (!empty($_POST['importType'])) ? $_POST['importType'] : null;
  446.  
  447. switch ($importType) {
  448. case 1:
  449. $importFormat = (!empty($_POST['importFormatCC'])) ? $_POST['importFormatCC'] : null;
  450. break;
  451. case 2:
  452. $importFormat = (!empty($_POST['importFormatFullz'])) ? $_POST['importFormatFullz'] : null;
  453. break;
  454. case 3:
  455. $importFormat = (!empty($_POST['importFormatDumps'])) ? $_POST['importFormatDumps'] : null;
  456. break;
  457. case 4:
  458. $importFormat = (!empty($_POST['importFormatACCS'])) ? $_POST['importFormatACCS'] : null;
  459. break;
  460. default:
  461. break;
  462. }
  463.  
  464.  
  465. if(!empty($importFormat) && $importFormat != 0) {
  466. Yii::import("application.models.admincp.bases.*");
  467. if($_POST['delayed']==1){
  468. $importDataLines=explode("\n",trim($importData));
  469. $model = new ImportDelayed();
  470. $model->base_id=$database_id;
  471. $model->type=$importType;
  472. $model->format=$importFormat;
  473. $model->data=trim($importData);
  474. $model->lines_total=count($importDataLines);
  475. $model->lines_left=count($importDataLines);
  476.  
  477. if($model->save())$dataArray['importDataSuccess']='Added succesfully!';
  478. else $dataArray['importDataErrors']='Error adding base!';
  479.  
  480. }
  481. else{
  482. switch ($importType) {
  483. case 1:
  484. $model = new ImportCCS();
  485. $result = $model->loadCCS($importData,$importFormat,$database_id,$export);
  486. $dataArray['importDataErrors'] = $result['importDataErrors'];
  487. $dataArray['importDataSuccess'] = $result['importDataSuccess'];
  488. $dataArray['countryWithoutPrice'] = $result['countryWithoutPrice'];
  489. break;
  490. case 2:
  491. $model = new ImportCCS();
  492. $result = $model->loadFullz($importData,$importFormat,$database_id,$export);
  493. $dataArray['importDataErrors'] = $result['importDataErrors'];
  494. $dataArray['importDataSuccess'] = $result['importDataSuccess'];
  495. $dataArray['countryWithoutPrice'] = $result['countryWithoutPrice'];
  496. break;
  497. case 3:
  498. $model = new ImportDumps();
  499. $model->database_id = getParam('database_id');
  500. $model->code = rand_str(10);
  501. $result = $model->loadDumps($importData,$export);
  502. if(!empty($result['success'])) {
  503. $price = new R_Price();
  504. $base = new R_Bases();
  505. $base->rebuildBinlist(getParam('database_id'));
  506. $price->DUMPS_rebuildPrice(getParam('database_id'));
  507. }
  508.  
  509. $dataArray['importDataErrors'] = implode("\r\n",$result['errors']);
  510. $dataArray['importDataSuccess'] = implode("\r\n",$result['success']);
  511. break;
  512. case 4:
  513. $model = new ImportACCS();
  514. $importData = preg_split('/\r\n/', $importData);
  515. $result = $model->loadAccs($importData,$importFormat,$database_id,$export);
  516. $dataArray['importDataErrors'] = $result['importDataErrors'];
  517. $dataArray['importDataSuccess'] = $result['importDataSuccess'];
  518. $dataArray['countryWithoutPrice'] = $result['countryWithoutPrice'];
  519. break;
  520. default:
  521. break;
  522. }
  523. }
  524. }
  525.  
  526.  
  527.  
  528. }
  529.  
  530. $this->render('/admincp/reseller/managment/form', $dataArray);
  531. #+E
  532.  
  533. }
  534.  
  535. public function actionAjax() {
  536. #+T
  537. $item_id = getParam('id');
  538. $method = getParam('method');
  539. switch ($method) {
  540. case 'removePriceCountry':
  541.  
  542. $country = R_Prices::model()->findByPk($item_id);
  543. $country->delete();
  544.  
  545. $priceRules = new R_Price();
  546. $priceRules->CCS_rebuildPriceAll();
  547.  
  548. //RETURN MESSAGE:
  549. noty("Country was removed","success");
  550. break;
  551. case 'updatePriceCountry':
  552.  
  553. $price = getParam('price');
  554. $fullz = getParam('fullz');
  555. $country_name = getParam('country_name');
  556. $timeout = getParam('timeout');
  557.  
  558. //ADDING PRICE
  559. $prices = R_Prices::model()->findByAttributes(array("country_name"=>$country_name));
  560.  
  561. $prices->price = $price;
  562. $prices->country_name = $country_name;
  563. $prices->fullz = $fullz;
  564. $prices->timeout = $timeout;
  565. $prices->save();
  566.  
  567. $priceRules = new R_Price();
  568. $priceRules->CCS_updatePriceByCountry($country_name, $price, $fullz);
  569. $priceRules->CCS_rebuildPriceAll();
  570.  
  571. noty('Country was added','success');
  572.  
  573. break;
  574. case 'updateAlias':
  575.  
  576. $search = getParam('search');
  577. $replace = getParam('replace');
  578.  
  579. //UPDATE ALIAS
  580. $alias = R_Alias::model()->findByAttributes(array("search"=>$search));
  581. $alias->replace = $replace;
  582. $alias->save();
  583.  
  584. noty('Alias was updated','success');
  585.  
  586. break;
  587. case 'removeAlias':
  588.  
  589. $search = getParam('search');
  590. $replace = getParam('replace');
  591.  
  592. //UPDATE ALIAS
  593. $alias = R_Alias::model()->findByPk($item_id);
  594. $alias->delete();
  595.  
  596. noty('Alias was deleted','success');
  597.  
  598. break;
  599. case 'addAlias':
  600.  
  601. $search = getParam('search');
  602. $replace = getParam('replace');
  603.  
  604. //UPDATE ALIAS
  605. $alias = new R_Alias();
  606. $alias->search = $search;
  607. $alias->replace = $replace;
  608. $alias->save();
  609.  
  610. noty('Alias was added','success');
  611.  
  612. break;
  613. case 'removeBase':
  614. $base_id = getParam('database_id');
  615. $password = getParam('resellerPWD');
  616. if($password == 'H7e9vnjxFXNk6Pxp') {
  617. $bases = R_Bases::model()->findByPk($base_id);
  618. if(!empty($bases)) {
  619.  
  620. //REMOVE EVERYTHING FROM STOCK:
  621. switch ($bases->type) {
  622. case 1:
  623. DAO()->delete("{{ccs}}","base_id=:base_id",array(":base_id"=>$base_id));
  624. break;
  625. case 2:
  626. DAO()->delete("{{dumps}}","base_id=:base_id",array(":base_id"=>$base_id));
  627. break;
  628. case 2:
  629. DAO()->delete("{{accounts}}","base_id=:base_id",array(":base_id"=>$base_id));
  630. break;
  631. default:
  632. break;
  633. }
  634.  
  635.  
  636. //CHANGE STATUS ABOUT DB:
  637. $bases->name = '[REMOVED]' . $bases->name;
  638. $bases->active = 0;
  639. $bases->visible = 0;
  640. $bases->save();
  641.  
  642. }
  643. }
  644. break;
  645. case 'confirm_update':
  646.  
  647. $ucode = getParam('ucode');
  648. $db_type = getParam('db_type');
  649.  
  650. switch ($db_type) {
  651. case 1:
  652. R_Updates_CCS::model()->confirmUpdate($ucode,1);
  653. R_Updates_CCS::model()->moderateUpdate($ucode,1);
  654. break;
  655.  
  656. case 2:
  657. R_Updates_Dumps::model()->confirmUpdate($ucode,1);
  658. R_Updates_Dumps::model()->moderateUpdate($ucode,1);
  659. $price = new R_Price();
  660. $model = new R_Bases();
  661. $model->rebuildBinlist($item_id);
  662. $price->DUMPS_rebuildPrice($item_id);
  663. break;
  664. case 3:
  665. R_Updates_ACCS::model()->confirmUpdate($ucode,1);
  666. R_Updates_ACCS::model()->moderateUpdate($ucode,1);
  667. break;
  668. default:
  669. break;
  670. }
  671.  
  672. break;
  673. case 'unconfirm_update':
  674.  
  675. $ucode = getParam('ucode');
  676. $db_type = getParam('db_type');
  677.  
  678.  
  679. switch ($db_type) {
  680. case 1:
  681. R_Updates_CCS::model()->confirmUpdate($ucode,0);
  682. R_Updates_CCS::model()->moderateUpdate($ucode,1);
  683. break;
  684.  
  685. case 2:
  686. R_Updates_Dumps::model()->confirmUpdate($ucode,0);
  687. R_Updates_Dumps::model()->moderateUpdate($ucode,1);
  688. $price = new R_Price();
  689. $model = new R_Bases();
  690. $model->rebuildBinlist($item_id);
  691. $price->DUMPS_rebuildPrice($item_id);
  692. break;
  693. case 3:
  694. R_Updates_ACCS::model()->confirmUpdate($ucode,0);
  695. R_Updates_ACCS::model()->moderateUpdate($ucode,1);
  696. break;
  697. default:
  698. break;
  699. }
  700.  
  701. break;
  702. case 'checkUpdate':
  703. Yii::import("application.components.checker.*");
  704. $ucode = (string) arrayPath($_POST,'ucode');
  705. $base_id = (string) arrayPath($_POST,'baseId');
  706. $base_type = (string) arrayPath($_POST,'baseType');
  707.  
  708. switch ($base_type) {
  709. case 1:
  710. $modelUpdates = new R_Updates_CCS();
  711. break;
  712. case 2:
  713. $modelUpdates = new R_Updates_Dumps();
  714. break;
  715.  
  716. default:
  717. break;
  718. }
  719.  
  720. $checkLimit = $modelUpdates->getCheckLog($ucode);
  721.  
  722.  
  723.  
  724.  
  725. if($checkLimit <= 35) {
  726.  
  727.  
  728.  
  729.  
  730. //GET RANDOM CARD:
  731. $record = $modelUpdates->getRandomCard($ucode);
  732.  
  733. if(!empty($record)) {
  734. require_once __DIR__ .("/try2api.class.php");
  735. //GET CHECKER FOR CARD
  736. $checkerName = DAO()->select('checker')
  737. ->from('{{bases}}')->where("id=:base_id",array(":base_id"=>$base_id))
  738. ->queryScalar();
  739. $checkerName = (!empty($checkerName)) ? $checkerName : false;
  740. if($base_type == 1) {
  741. $checker = new CCS_Checker(Yii::app()->params['checker'],$checkerName);
  742. $card = $record['ccnum'].'#'.$record['exp_m']."".$record['exp_y'];
  743. $request = array(
  744. "cmd" => "chk_g1",
  745. "data" => array(
  746. "act" => "set",
  747. "options" => array(
  748. "format" => array(
  749. "exp" => 2,
  750. "list" => 1
  751. ),
  752. "merchant" => array(
  753. "type_id" => 1
  754. ),
  755. "geo" => array(
  756. "type_id" => 1
  757. ),
  758. "amount" => array(
  759. "type_id" => 1,
  760. "id" => 1
  761. ),
  762. "safe" => false,
  763. "void" => true,
  764. "zerocheck" => false
  765. ),
  766. "data" => $card,
  767. )
  768. );
  769. $api = new Try2Api();
  770.  
  771. $api->send($request);
  772.  
  773.  
  774. if ($request["cmd"] == "chk_g1" && $request["data"]["act"] == "set") {
  775. if (!isset($api->responseData["batch_id"])) {
  776. exit("api reponse data format error: ".json_encode($api->responseData)." | request: ".print('<pre>'.print_r($request, true).'</pre>'));
  777.  
  778. }
  779. $batch_id = $api->responseData["batch_id"];
  780. }
  781. $request2 = array(
  782. "cmd" => "chk_g1",
  783. "data" => array(
  784. "act" => "get",
  785. "options" => array(
  786. "format" => array(
  787. "exp" => 2,
  788. "list" => 1
  789. ),
  790. "merchant" => array(
  791. "type_id" => 1
  792. ),
  793. "geo" => array(
  794. "type_id" => 1
  795. ),
  796. "amount" => array(
  797. "type_id" => 1,
  798. "id" => 1
  799. ),
  800. "safe" => false,
  801. "void" => true,
  802. "zerocheck" => false
  803. ),
  804. "data" => $batch_id,
  805. )
  806. );
  807.  
  808. $success2 = false;
  809. while (TRUE) {
  810. $api = new Try2Api();
  811. if (!$api->ready)
  812. break;
  813. sleep(10);
  814. $send_success2 = $api->send($request2);
  815. if (!$send_success2)
  816. break;
  817. $success2 = true;
  818. break;
  819. }
  820.  
  821. if (!$success2) {
  822. exit("api error code: ".$api->error_code." | error: ".$api->error);
  823. }
  824.  
  825. if ($request2["cmd"] == "chk_g1" && $request2["data"]["act"] == "get") {
  826. if (!isset($api->responseData["info"])) {
  827. exit("api reponse data format error: ".json_encode($api->responseData)." | request: ".json_encode($request2));
  828. }
  829. $batch_info = $api->responseData["info"];
  830. if (!$batch_info["done"]) {
  831. exit("batch is not checked yet. poll to get results");
  832. sleep(3);
  833. $api->send($request2);
  834. }
  835.  
  836. // checking g1: get, checked
  837. if ($batch_info["done"] && !isset($api->responseData["response"])) {
  838. exit("api reponse data format error: ".json_encode($api->responseData)." | request: ".json_encode($request2));
  839. }
  840. $checkInfo = $api->responseData["response"][0];
  841. }
  842.  
  843. } elseif($base_type == 2 ) {
  844. $checker = new Dump_Checker(Yii::app()->params['checker'],$checkerName);
  845. $dumpCheck = trim(decrypt($record['track2']));
  846. $request = array(
  847. "cmd" => "chk_g1",
  848. "data" => array(
  849. "act" => "set",
  850. "options" => array(
  851. "format" => array(
  852. "exp" => 6,
  853. "list" => 8
  854. ),
  855. "merchant" => array(
  856. "type_id" => 1
  857. ),
  858. "geo" => array(
  859. "type_id" => 1
  860. ),
  861. "amount" => array(
  862. "type_id" => 1,
  863. "id" => 1
  864. ),
  865. "safe" => false,
  866. "void" => true,
  867. "zerocheck" => false
  868. ),
  869. "data" => $dumpCheck,
  870. )
  871. );
  872. $api = new Try2Api();
  873.  
  874. $api->send($request);
  875.  
  876. if ($request["cmd"] == "chk_g1" && $request["data"]["act"] == "set") {
  877. if (!isset($api->responseData["batch_id"])) {
  878. exit("api reponse data format error: ".json_encode($api->responseData)." | request: ".json_encode($request));
  879. }
  880. $batch_id = $api->responseData["batch_id"];
  881. }
  882. $request2 = array(
  883. "cmd" => "chk_g1",
  884. "data" => array(
  885. "act" => "get",
  886. "options" => array(
  887. "format" => array(
  888. "exp" => 6,
  889. "list" => 8
  890. ),
  891. "merchant" => array(
  892. "type_id" => 1
  893. ),
  894. "geo" => array(
  895. "type_id" => 1
  896. ),
  897. "amount" => array(
  898. "type_id" => 1,
  899. "id" => 1
  900. ),
  901. "safe" => false,
  902. "void" => true,
  903. "zerocheck" => false
  904. ),
  905. "data" => $batch_id,
  906. )
  907. );
  908.  
  909. $success2 = false;
  910. while (TRUE) {
  911. $api = new Try2Api();
  912. if (!$api->ready)
  913. break;
  914. sleep(10);
  915. $send_success2 = $api->send($request2);
  916. if (!$send_success2)
  917. break;
  918. $success2 = true;
  919. break;
  920. }
  921.  
  922. if (!$success2) {
  923. exit("api error code: ".$api->error_code." | error: ".$api->error);
  924. }
  925. if ($request2["cmd"] == "chk_g1" && $request2["data"]["act"] == "get") {
  926. if (!isset($api->responseData["info"])) {
  927. exit("api reponse data format error: ".json_encode($api->responseData)." | request: ".json_encode($request2));
  928. }
  929. $batch_info = $api->responseData["info"];
  930. if (!$batch_info["done"]) {
  931. exit("batch is not checked yet. poll to get results");
  932. }
  933. if ($batch_info["done"] && !isset($api->responseData["response"])) {
  934. exit("api reponse data format error: ".json_encode($api->responseData)." | request: ".json_encode($request2));
  935. }
  936. $checkInfo = $api->responseData["response"][0];
  937. }
  938.  
  939. }
  940.  
  941.  
  942. $modelUpdates->addCheckLog(array(
  943. 'ucode'=>$ucode,
  944. 'ccnum'=>$record['ccnum'],
  945. 'auth_code'=>$checkInfo['auth_code'],
  946. 'auth_result'=>$checkInfo['auth_result'],
  947. ));
  948.  
  949. if(!empty($checkInfo['auth_code'])) {
  950.  
  951. switch ($base_type) {
  952. case 1: $_tableName = '{{ccs}}';
  953. break;
  954. case 2: $_tableName = '{{dumps}}';
  955. break;
  956. case 3: $_tableName = '{{accounts}}';
  957. break;
  958. default:
  959. break;
  960. }
  961.  
  962. DAO()->delete($_tableName,"id=:id",array(":id"=>$record['id']));
  963. }
  964.  
  965. die(json_encode(array("msg"=>(($checkInfo['auth_code'] . " " . $checkInfo['auth_result'])))));
  966. } else {
  967. die(json_encode(array("msg"=>"REQUEST ERROR")));;
  968. }
  969. } else {
  970. die(json_encode(array("msg"=>"TOO MANY CHECKS ON THIS UPDATE")));;
  971. }
  972. break;
  973. default:
  974. break;
  975. }
  976. #+E
  977. }
  978.  
  979.  
  980.  
  981. public function actions()
  982. {
  983.  
  984. return array(
  985. 'autocomplete'=>array(
  986. 'class'=>'application.extensions.EAutoCompleteAction',
  987. 'model'=>'R_Bases', //My model's class name
  988. 'limit'=>25,
  989. 'whitelist'=>array('name'),
  990. 'whitelist_vars'=>array('id','name'),
  991. 'extended'=>1,
  992. 'attribute'=>(!empty($_GET['attr'])) ? $_GET['attr'] : '', //The attribute of the model i will search
  993. ),
  994. );
  995. }
  996.  
  997.  
  998.  
  999.  
  1000. /*
  1001. public function actionExporttemporary()
  1002. {
  1003. if($_GET['pass']<>'rdV6VKA9aEvLZduJ9G9jWXegA9tzsLHz')die();
  1004. $records = '';
  1005.  
  1006. $exportRows = DAO()->select('id,original')
  1007. ->from('{{ccs}}')
  1008. ->where("base_id=:base_id",array(':base_id' => '1397'))
  1009. ->limit(2500)
  1010. ->query();
  1011. foreach ($exportRows as $exportRow) {
  1012. if(!empty($exportRow['original'])) {
  1013. $exportRow['original'] = trim(decrypt($exportRow['original']));
  1014. //DAO()->execute("delete from tbl_ccs where id='".$exportRow['id']."'");
  1015. }
  1016.  
  1017. $records .= implode('|', $exportRow) . "\n";
  1018. }
  1019. $result['importDataSuccess'] = $records;
  1020. echo $result['importDataSuccess'];
  1021. Yii::app()->end();
  1022.  
  1023. }
  1024. */
  1025.  
  1026.  
  1027.  
  1028.  
  1029. }
Add Comment
Please, Sign In to add comment