ClearController.php 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace console\controllers;
  3. use biz\ghs\classes\GhsBackClass;
  4. use bizGhs\clear\classes\OrderCgClearClass;
  5. use bizGhs\clear\models\Clear;
  6. use bizGhs\clear\models\OrderCgClear;
  7. use bizGhs\custom\classes\CustomClass;
  8. use bizGhs\custom\classes\CustomBalanceChangeClass;
  9. use bizGhs\ghs\classes\GhsBalanceChangeClass;
  10. use bizGhs\custom\services\GhsRechargeSettleService;
  11. use bizGhs\ghs\classes\GhsClass;
  12. use bizGhs\ghs\models\Ghs;
  13. use bizGhs\order\classes\OrderClass;
  14. use bizGhs\order\classes\PurchaseOrderClass;
  15. use bizHd\purchase\classes\PurchaseClass;
  16. use yii\console\Controller;
  17. use Yii;
  18. class ClearController extends Controller
  19. {
  20. public function actionUpdate()
  21. {
  22. ini_set('memory_limit', '2045M');
  23. set_time_limit(0);
  24. $query = new \yii\db\Query();
  25. $query->from(Clear::tableName());
  26. //$query->where(['id'=>828832]);
  27. $query->orderBy('id desc');
  28. foreach ($query->batch(500) as $clearList) {
  29. foreach ($clearList as $clear) {
  30. $status = $clear['status'] ?? 1;
  31. $clearId = $clear['id'] ?? 0;
  32. $clearPrice = $clear['actPrice'] ?? 0;
  33. $addTime = $clear['addTime'] ?? '';
  34. $clearPrice = floatval($clearPrice);
  35. if ($status == 2) {
  36. $relateList = OrderCgClearClass::getAllByCondition(['clearId' => $clearId], null, '*');
  37. $count = count($relateList);
  38. if ($count == 1) {
  39. foreach ($relateList as $relate) {
  40. $cgId = $relate['cgId'] ?? 0;
  41. $cgInfo = GhsClass::getById($cgId, true);
  42. $remainDebtPrice = $cgInfo->remainDebtPrice ?? 0;
  43. $remainDebtPrice = floatval($remainDebtPrice);
  44. if ($remainDebtPrice > 0 && $clearPrice == $remainDebtPrice) {
  45. echo "clearId {$clearId} cgId {$cgId} remainDebtPrice {$remainDebtPrice} {$addTime} 需要清除 \n";
  46. }
  47. }
  48. }
  49. }
  50. }
  51. }
  52. }
  53. public function actionGhsGhs()
  54. {
  55. ini_set('memory_limit', '2045M');
  56. set_time_limit(0);
  57. $query = new \yii\db\Query();
  58. $query->from(Ghs::tableName());
  59. $query->where(['ownPtStyle' => 2]);
  60. foreach ($query->batch(500) as $ghsList) {
  61. $connection = Yii::$app->db;
  62. $transaction = $connection->beginTransaction();
  63. try {
  64. foreach ($ghsList as $ghs) {
  65. $ghsId = $ghs['id'] ?? 0;
  66. $balance = PurchaseOrderClass::sum(['ghsId' => $ghsId, 'debt' => 1], 'actPrice');
  67. $debtNum = PurchaseOrderClass::getCount(['ghsId' => $ghsId, 'debt' => 1]);
  68. GhsClass::updateById($ghsId, ['balance' => -$balance, 'debtNum' => $debtNum]);
  69. $customId = $ghs['customId'] ?? 0;
  70. CustomClass::updateById($customId, ['balance' => -$balance, 'debtNum' => $debtNum]);
  71. }
  72. $transaction->commit();
  73. } catch (\Exception $e) {
  74. $transaction->rollBack();
  75. $msg = $e->getMessage();
  76. echo "报错了:" . $msg . "\n";
  77. }
  78. }
  79. }
  80. }