BookOrderNum.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\utils;
  8. use app\models\GoodsBook;
  9. use app\models\Order;
  10. use app\models\OrderDetail;
  11. use yii\helpers\Json;
  12. class BookOrderNum
  13. {
  14. /**
  15. * @param Order $order
  16. */
  17. public static function bookNumReduce($order) {
  18. $orderDetail = OrderDetail::findOne(['order_id' => $order->id]);
  19. $attr = Json::decode($orderDetail->attr);
  20. // 酒店预约
  21. if ($order->order_type == 1) {
  22. $date_book = GoodsBook::findOne(['goods_id' => $orderDetail->goods_id]);
  23. $goods_book = Json::decode($date_book->date_book);
  24. if (!$goods_book) {
  25. return [
  26. 'code' => 1,
  27. 'msg' => '数据异常'
  28. ];
  29. }
  30. foreach ($goods_book as &$book) {
  31. foreach ($attr as &$value) {
  32. if ($book['date'] == $value['date']) {
  33. $book['num'] -= $orderDetail->num;
  34. }
  35. }
  36. }
  37. $date_book->date_book = Json::encode($goods_book);
  38. $date_book->save();
  39. }
  40. // 服务预约 动态库存
  41. // if ($order->order_type == 2) {
  42. // $service_book = GoodsBook::findOne(['goods_id' => $orderDetail->goods_id]);
  43. // $service_goods_book = Json::decode($service_book->service_book);
  44. // if (!$service_goods_book) {
  45. // return [
  46. // 'code' => 1,
  47. // 'msg' => '数据异常'
  48. // ];
  49. // }
  50. //
  51. // foreach ($service_goods_book['data'] as &$value) {
  52. // if ($value['date'] == $attr['date']) {
  53. // foreach ($value['time'] as &$m) {
  54. // foreach ($m['times'] as &$n) {
  55. // if ($n['time'] == $attr['time']) {
  56. // $n['num'] -= $orderDetail->num;
  57. // }
  58. // }
  59. // }
  60. // }
  61. // }
  62. // $service_book->service_book = Json::encode($service_goods_book);
  63. // $service_book->save();
  64. // }
  65. }
  66. /**
  67. * @param Order $order
  68. */
  69. public static function bookNumAdd($order) {
  70. $orderDetail = OrderDetail::findOne(['order_id' => $order->id]);
  71. $attr = Json::decode($orderDetail->attr);
  72. // 酒店预约
  73. if ($order->order_type == 1) {
  74. $date_book = GoodsBook::findOne(['goods_id' => $orderDetail->goods_id]);
  75. $goods_book = Json::decode($date_book->date_book);
  76. if (!$goods_book) {
  77. return [
  78. 'code' => 1,
  79. 'msg' => '数据异常'
  80. ];
  81. }
  82. foreach ($goods_book as &$book) {
  83. foreach ($attr as &$value) {
  84. if ($book['date'] == $value['date']) {
  85. $book['num'] += $orderDetail->num;
  86. }
  87. }
  88. }
  89. $date_book->date_book = Json::encode($goods_book);
  90. $date_book->save();
  91. }
  92. // 服务预约
  93. if ($order->order_type == 2) {
  94. $service_book = GoodsBook::findOne(['goods_id' => $orderDetail->goods_id]);
  95. $service_goods_book = Json::decode($service_book->service_book);
  96. if (!$service_goods_book) {
  97. return [
  98. 'code' => 1,
  99. 'msg' => '数据异常'
  100. ];
  101. }
  102. foreach ($service_goods_book['data'] as &$value) {
  103. if ($value['date'] == $attr['date']) {
  104. foreach ($value['time'] as &$m) {
  105. foreach ($m['times'] as &$n) {
  106. if ($n['time'] == $attr['time']) {
  107. $n['num'] += $orderDetail->num;
  108. }
  109. }
  110. }
  111. }
  112. }
  113. $service_book->service_book = Json::encode($service_goods_book);
  114. $service_book->save();
  115. }
  116. }
  117. }