OrderController.php 4.7 KB

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