OrderController.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?php
  2. namespace console\controllers;
  3. use bizHd\order\classes\OrderClass;
  4. use bizHd\order\models\Order;
  5. use bizHd\purchase\classes\PurchaseClass;
  6. use bizHd\purchase\models\Purchase;
  7. use common\components\noticeUtil;
  8. use yii\console\Controller;
  9. use Yii;
  10. class OrderController extends Controller
  11. {
  12. //【重要脚本,不能删除】到时间没发货,进行确认收货 ssh 20231122
  13. public function actionUnFhConfirmTake()
  14. {
  15. $query = new \yii\db\Query();
  16. $query->from(\bizGhs\order\models\Order::tableName());
  17. if (getenv('YII_ENV') == 'production') {
  18. $endTime = strtotime('-5 days');
  19. } else {
  20. $endTime = strtotime('-1 hour');
  21. }
  22. $startTime = strtotime('-30 days');
  23. $startDate = date("Y-m-d H:i:s", $startTime);
  24. $endDate = date("Y-m-d H:i:s", $endTime);
  25. //查询已经过期10天的订单
  26. $query->where(['status' => 2])->andWhere(['>', 'payTime', $startDate])->andWhere(['<=', 'payTime', $endDate]);
  27. $query->orderBy('deadline ASC');
  28. foreach ($query->batch() as $batchOrder) {
  29. foreach ($batchOrder as $order) {
  30. $connection = Yii::$app->db;
  31. $transaction = $connection->beginTransaction();
  32. $orderSn = $order['orderSn'] ?? '';
  33. try {
  34. $cgId = $order['purchaseId'] ?? 0;
  35. $info = PurchaseClass::getById($cgId, true);
  36. if (!empty($info)) {
  37. //没发货的预订单不能自动确认收货
  38. if ($info->book == 1) {
  39. continue;
  40. }
  41. PurchaseClass::confirmTake($info);
  42. }
  43. $transaction->commit();
  44. noticeUtil::push("销售单号:{$orderSn}已自动确认收货");
  45. } catch (\Exception $e) {
  46. $transaction->rollBack();
  47. $msg = $e->getMessage();
  48. noticeUtil::push("销售单号:{$orderSn}自动确认收货出错,{$msg}", '15280215347');
  49. }
  50. }
  51. }
  52. }
  53. //【重要脚本,不能删除】到时间没确认收货,进行确认收货 ssh 20231122
  54. public function actionConfirmTake()
  55. {
  56. $query = new \yii\db\Query();
  57. $query->from(Purchase::tableName());
  58. if (getenv('YII_ENV') == 'production') {
  59. $endTime = strtotime('-5 days');
  60. } else {
  61. $endTime = strtotime('-1 hour');
  62. }
  63. $startTime = strtotime('-30 days');
  64. $startDate = date("Y-m-d H:i:s", $startTime);
  65. $endDate = date("Y-m-d H:i:s", $endTime);
  66. //查询已经过期10天的订单
  67. $query->where(['status' => 3])->andWhere(['>', 'fhTime', $startDate])->andWhere(['<=', 'fhTime', $endDate]);
  68. $query->orderBy('deadline ASC');
  69. foreach ($query->batch() as $batchCg) {
  70. foreach ($batchCg as $cg) {
  71. $connection = Yii::$app->db;
  72. $transaction = $connection->beginTransaction();
  73. $orderSn = $cg['orderSn'] ?? '';
  74. $id = $cg['id'] ?? 0;
  75. try {
  76. $info = PurchaseClass::getById($id, true);
  77. if (!empty($info)) {
  78. PurchaseClass::confirmTake($info);
  79. }
  80. $transaction->commit();
  81. noticeUtil::push("采购单号:{$orderSn}已自动确认收货");
  82. } catch (\Exception $e) {
  83. $transaction->rollBack();
  84. $msg = $e->getMessage();
  85. noticeUtil::push("采购单号:{$orderSn}自动确认收货出错,{$msg}", '15280215347');
  86. }
  87. }
  88. }
  89. }
  90. //【重要脚本,不能删除】花店订单脚本
  91. public function actionExpire()
  92. {
  93. $query = new \yii\db\Query();
  94. $query->from(Order::tableName());
  95. $endTime = time();
  96. $startTime = strtotime('-10 days');
  97. //查询已经过期10天的订单
  98. $query->where(['status' => 1])->andWhere(['>', 'deadline', $startTime])->andWhere(['<=', 'deadline', $endTime]);
  99. $query->orderBy('deadline ASC');
  100. foreach ($query->batch() as $batchOrder) {
  101. foreach ($batchOrder as $orderItem) {
  102. $connection = Yii::$app->db;
  103. $transaction = $connection->beginTransaction();
  104. $id = $orderItem['id'] ?? 0;
  105. $orderSn = $orderItem['orderSn'] ?? '';
  106. try {
  107. $order = OrderClass::getById($id, true);
  108. //暂时只考虑花材库存的回滚
  109. OrderClass::setExpire($order);
  110. $transaction->commit();
  111. //noticeUtil::push("零售订单未付款,库存已回滚,单号:{$orderSn}");
  112. } catch (\Exception $e) {
  113. $transaction->rollBack();
  114. $msg = $e->getMessage();
  115. noticeUtil::push("处理报错了!订单号:{$orderSn},错误信息:{$msg}", '15280215347');
  116. }
  117. }
  118. }
  119. }
  120. }