RefundController.php 4.4 KB

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