RefundController.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace console\controllers;
  3. use bizGhs\cg\models\CgRefund;
  4. use bizGhs\order\classes\OrderClass;
  5. use bizGhs\order\classes\PurchaseOrderClass;
  6. use bizGhs\order\classes\RefundOrderClass;
  7. use bizGhs\order\classes\RefundOrderItemClass;
  8. use bizGhs\order\models\RefundOrder;
  9. use bizHd\cg\classes\CgRefundClass;
  10. use bizHd\cg\classes\CgRefundItemClass;
  11. use common\components\noticeUtil;
  12. use yii\console\Controller;
  13. use Yii;
  14. class RefundController extends Controller
  15. {
  16. public function actionStatus()
  17. {
  18. ini_set('memory_limit', '2045M');
  19. set_time_limit(0);
  20. $query = new \yii\db\Query();
  21. $query->from(RefundOrder::tableName());
  22. $query->where(['>', 'id', 0]);
  23. $query->orderBy('addTime ASC');
  24. $arr = ['开错', '多开', '重新补开', '重复开单', '客户自购'];
  25. foreach ($query->batch() as $batchOrder) {
  26. foreach ($batchOrder as $refund) {
  27. $connection = Yii::$app->db;
  28. $transaction = $connection->beginTransaction();
  29. $orderSn = $refund['orderSn'] ?? '';
  30. try {
  31. $status = $refund['status'] ?? 0;
  32. $addTime = $refund['addTime'] ?? '';
  33. $remark = $refund['remark'] ?? '';
  34. $cause = 0;
  35. if (!empty($remark)) {
  36. foreach ($arr as $son) {
  37. $res = strstr($remark, $son);
  38. if (!empty($res)) {
  39. $cause = 1;
  40. }
  41. }
  42. }
  43. RefundOrderClass::updateByCondition(['orderSn' => $orderSn], ['cause' => $cause]);
  44. $updateTime = $refund['updateTime'] ?? '';
  45. RefundOrderItemClass::updateByCondition(['orderSn' => $orderSn], ['status' => $status, 'addTime' => $addTime, 'updateTime' => $updateTime, 'cause' => $cause]);
  46. $cgRefundId = $refund['cgRefundId'] ?? 0;
  47. $cgRefund = CgRefundClass::getById($cgRefundId, true);
  48. if (empty($cgRefund)) {
  49. echo "{$orderSn} 没有找到采购的退款信息\n";
  50. continue;
  51. }
  52. $cgRefund->cause = $cause;
  53. $cgRefund->save();
  54. $cgRefundStatus = $cgRefund->status;
  55. $cgOrderSn = $cgRefund->orderSn ?? '';
  56. $addTime = $cgRefund->addTime;
  57. $updateTime = $cgRefund->updateTime;
  58. CgRefundItemClass::updateByCondition(['orderSn' => $cgOrderSn], ['status' => $cgRefundStatus, 'addTime' => $addTime, 'updateTime' => $updateTime, 'cause' => $cause]);
  59. $transaction->commit();
  60. } catch (\Exception $e) {
  61. $transaction->rollBack();
  62. $msg = $e->getMessage();
  63. noticeUtil::push("{$orderSn} 报错了:{$msg}", '15280215347');
  64. }
  65. }
  66. }
  67. }
  68. //退款数据更新 ./yii refund/update
  69. public function actionUpdate()
  70. {
  71. ini_set('memory_limit', '2045M');
  72. set_time_limit(0);
  73. $query = new \yii\db\Query();
  74. $query->from(CgRefund::tableName());
  75. foreach ($query->batch() as $batch) {
  76. foreach ($batch as $refund) {
  77. $id = $refund['id'] ?? 0;
  78. $relateOrderSn = $refund['relateOrderSn'] ?? '';
  79. if (empty($relateOrderSn)) {
  80. continue;
  81. }
  82. $order = PurchaseOrderClass::getByCondition(['orderSn' => $relateOrderSn], true);
  83. if (empty($order)) {
  84. continue;
  85. }
  86. $ghsId = $order->ghsId ?? 0;
  87. $ghsName = $order->ghsName ?? '';
  88. $entryTime = $order->entryTime ?? '';
  89. $passTime = $refund['addTime'] ?? '';
  90. $status = $refund['status'] ?? 0;
  91. $update = [
  92. 'ghsId' => $ghsId,
  93. 'ghsName' => $ghsName,
  94. 'orderTime' => $entryTime,
  95. ];
  96. if ($status == 1) {
  97. $update['passTime'] = $passTime;
  98. }
  99. \bizGhs\cg\classes\CgRefundClass::updateById($id, $update);
  100. }
  101. }
  102. }
  103. }