OrderShopForm.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\admin\models;
  8. use app\models\Md;
  9. use app\models\MdProfit;
  10. use app\models\Order;
  11. use app\models\OrderDetail;
  12. use app\models\Shop;
  13. use app\models\ShopShare;
  14. use app\models\User;
  15. use Yii;
  16. use yii\base\Model;
  17. /**
  18. * 订单切换社区
  19. */
  20. class OrderShopForm extends Model
  21. {
  22. public $order_id;
  23. public $shop_id;
  24. public $goods_id;
  25. public function save()
  26. {
  27. $t = Yii::$app->db->beginTransaction();
  28. try {
  29. $order = Order::findOne(['store_id' => get_store_id(), 'id' => $this->order_id]);
  30. if (empty($order)) {
  31. throw new \Exception('订单查询失败,参数错误');
  32. }
  33. if (!$order || $order->is_offline != 1) {
  34. throw new \Exception('当前订单商品配送方式不是到店自提');
  35. }
  36. if ($order->trade_status === Order::ORDER_FLOW_CONFIRM) {
  37. throw new \Exception('订单状态错误,不可更改配送点');
  38. }
  39. $md = Md::findOne(['store_id' => get_store_id(), 'id' => $this->shop_id, 'is_delete' => 0]);
  40. if (empty($md)) {
  41. throw new \Exception('当前门店为空');
  42. }
  43. $order->md_id = $this->shop_id;
  44. if ($order->save()) {
  45. $mdProfit = MdProfit::findOne(['order_id' => $order->id, 'is_send' => 0]);
  46. $mdProfit->md_id = $order->md_id;
  47. if (!$mdProfit->save()) {
  48. throw new \Exception(json_encode($mdProfit->errors));
  49. }
  50. $t->commit();
  51. return [
  52. 'code' => 0,
  53. 'msg' => '修改成功'
  54. ];
  55. } else {
  56. throw new \Exception('保存失败');
  57. }
  58. } catch (\Exception $e) {
  59. $t->rollBack();
  60. return [
  61. 'code' => 1,
  62. 'msg' => $e->getMessage()
  63. ];
  64. }
  65. }
  66. }