OrderController.php 5.3 KB

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