Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 
 

134 rindas
4.7 KiB

  1. <?php
  2. /**
  3. *
  4. * ============================================================================
  5. * * 版权所有 蜘蛛出行 * *
  6. * 网站地址: http://www.zhizhuchuxing.com
  7. * ----------------------------------------------------------------------------
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
  9. * 使用;不允许对程序代码以任何形式任何目的的再发布。
  10. * ============================================================================
  11. * Author By: 倪宗锋
  12. * PhpStorm SynchroController.php
  13. * Create By 2017/6/26 17:26 $
  14. */
  15. namespace console\controllers;
  16. use common\models\BaseArea;
  17. use common\models\ProdCategory;
  18. use common\util\CurlInterface;
  19. use common\util\Util;
  20. use console\models\Synchro;
  21. use yii\base\Exception;
  22. use yii\console\Controller;
  23. class SynchroController extends Controller
  24. {
  25. public $log = '';
  26. public $service = null;
  27. public function service()
  28. {
  29. if ($this->service == null) {
  30. $this->service = new Synchro();
  31. }
  32. return $this->service;
  33. }
  34. /**
  35. * Des:更新baseArea
  36. * Name: actionUpBaseArea
  37. * @return string
  38. * @author 倪宗锋
  39. */
  40. public function actionUpBaseArea()
  41. {
  42. $this->log .= ' 更新base_area: ';
  43. //1.cs查票种信息,存缓存
  44. $time = time();
  45. $siteConfig = Util::getSiteConfig();
  46. $send_data = [
  47. 'auth_code' => Util::authCodeForCs($time),
  48. 'user_key' => $siteConfig['adm_user_key'],
  49. 'user' => $siteConfig['adm_user'],
  50. 'user_id' => $siteConfig['adm_user_id'],
  51. 'request_time' => $time,
  52. 'action' => 'up_base_area',
  53. 'org_id' => $siteConfig['adm_source_id']
  54. ];
  55. $curlInterface = new CurlInterface($send_data, 4);
  56. $getList = $curlInterface->execute($siteConfig['adm_host1'] . '/api/nfx', 'POST');
  57. if (!isset($getList['code']) || $getList['code'] != 0 || count($getList['list']) == 0) {
  58. $this->log .= '获取base_area数据失败';
  59. return '获取base_area数据失败';
  60. }
  61. $baseArea_1 = new BaseArea();
  62. $transaction = \Yii::$app->db->beginTransaction();
  63. try {
  64. $baseArea_1::deleteAll();
  65. $this->log .= ' 保存失败的记录:';
  66. foreach ($getList['list'] as $value) {
  67. echo '-';
  68. $baseArea = clone $baseArea_1;
  69. $baseArea->isNewRecord = true;
  70. $baseArea->setAttributes($value);
  71. $res = $baseArea->save();
  72. if ($res === false) {
  73. $this->log .= $value['ID'];
  74. continue;
  75. }
  76. }
  77. $transaction->commit();
  78. } catch (Exception $e) {
  79. $this->log .= ' 保存失败';
  80. $transaction->rollBack();
  81. return ' 保存失败';
  82. }
  83. $this->log .= ' 更新成功';
  84. return 'OK';
  85. }
  86. /**
  87. * Des:更新巴士自由行产品数据
  88. * Name: actionUpFreeWalker
  89. * @return string
  90. * @author 倪宗锋
  91. */
  92. public function actionUpFreeWalker()
  93. {
  94. $this->log .= '更新巴士自由行 ';
  95. $ProdCategory = new ProdCategory();
  96. //1.查当前数据库的未删除的巴士自由行产品的产品ID数组
  97. $localProdSign = $ProdCategory->getFreeWalkSigns();
  98. //2.cs查询巴士自由行产品数据
  99. $getCsProdArr = $this->service()->getCsFreeWalk();
  100. if ($getCsProdArr['flag'] == false) {
  101. $this->log .= $getCsProdArr['msg'];
  102. return Util::returnJsEr($getCsProdArr['msg']);
  103. }
  104. $csProdArr = $getCsProdArr['data'];
  105. $addProd = $this->service()->addFreeWalk($csProdArr, array_keys($localProdSign));
  106. $this->log .= "添加产品:成功-{$addProd['data']['success']}、失败-{$addProd['data']['fail']}";
  107. $updateProd = $this->service()->updateFreeWalk($csProdArr, $localProdSign);
  108. $this->log .= "更新产品:成功-{$updateProd['data']['success']}、失败-{$updateProd['data']['fail']}";
  109. $deleteProd = $this->service()->deleteFreeWalk($csProdArr, array_keys($localProdSign));
  110. if ($deleteProd['flag'] == false) {
  111. $this->log .= "删除产品:失败-{$addProd['data']['success']}}";
  112. } else {
  113. $this->log .= "删除产品:成功-{$addProd['data']['success']}}";
  114. }
  115. return Util::returnJsSu();
  116. }
  117. /**
  118. * 结束时更新日志
  119. */
  120. public function __destruct()
  121. {
  122. $logUrl = ROOT_PATH . '/console/log/synchro/' . date("Y-m-d") . '.log';
  123. $msg = date('Y-m-d H:i:s') . $this->log;
  124. file_put_contents($logUrl, $msg . PHP_EOL, FILE_APPEND);
  125. }
  126. }