SaleController.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace console\controllers;
  3. use biz\shop\classes\ShopClass;
  4. use biz\stat\classes\StatSaleClass;
  5. use bizGhs\order\classes\OrderClass;
  6. use yii\console\Controller;
  7. use Yii;
  8. class SaleController extends Controller
  9. {
  10. //销售数据更新 ./yii sale/update
  11. public function actionUpdate()
  12. {
  13. $list = OrderClass::getAllByCondition(['status' => ['in', [2, 3, 4]]], 'id asc', '*', null, true);
  14. if (!empty($list)) {
  15. foreach ($list as $item) {
  16. $orderSn = $item->orderSn ?? '';
  17. $shopId = $item->shopId ?? 0;
  18. $addTime = $item->addTime ?? '';
  19. $connection = Yii::$app->db;
  20. $transaction = $connection->beginTransaction();
  21. $actPrice = $item->actPrice ?? 0;
  22. try {
  23. $shop = ShopClass::getLockById($shopId);
  24. if (empty($shop)) {
  25. echo '没有找到店铺 ' . $shopId . ' ' . $orderSn . "\n";
  26. continue;
  27. }
  28. $totalSale = bcadd($actPrice, $shop->totalSale, 2);
  29. $shop->totalSale = $totalSale;
  30. $shop->totalOrderNum += 1;
  31. $shop->save();
  32. $date = date("Ymd", strtotime($addTime));
  33. StatSaleClass::replace($shop, $actPrice, $date);
  34. $transaction->commit();
  35. } catch (\Exception $e) {
  36. $transaction->rollBack();
  37. $msg = $e->getMessage();
  38. echo "报错了:" . $msg . "\n";
  39. }
  40. }
  41. }
  42. }
  43. }