ReuseOrderGoodsPriceForm.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\admin\models\order;
  8. use app\models\Address;
  9. use app\models\Order;
  10. use app\models\OrderDetail;
  11. use app\models\User;
  12. use app\utils\OrderNo;
  13. use yii\base\Model;
  14. class ReuseOrderGoodsPriceForm extends Model
  15. {
  16. public $user_id;
  17. public $goods_id;
  18. public $store_id;
  19. public function rules()
  20. {
  21. return [
  22. [['user_id', 'store_id'], 'integer'],
  23. [['goods_id'], 'safe'],
  24. ];
  25. }
  26. public function search()
  27. {
  28. if (!$this->validate())
  29. return [
  30. 'code' => 1,
  31. 'msg' => $this->getErrorSummary(false)[0],
  32. ];
  33. if (empty($this->user_id)) {
  34. return [
  35. 'code' => 1,
  36. 'msg' => '请先选择用户',
  37. ];
  38. }
  39. $order = Order::find()
  40. ->where([
  41. 'user_id' => $this->user_id,
  42. 'store_id' => $this->store_id,
  43. 'order_origin' => Order::ORDER_SOURCE_CASHIER,
  44. 'is_pay' => 1
  45. ])
  46. ->orderBy('id desc')->one();
  47. if (!$order) {
  48. return [
  49. 'code' => 1,
  50. 'msg' => '没有可复用商品订单',
  51. ];
  52. }
  53. $goods_id = explode(',', $this->goods_id);
  54. $orderDetail = OrderDetail::find()->where(['order_id' => $order->id, 'goods_id' => $goods_id])->all();
  55. $rs = [];
  56. foreach ($orderDetail as $d) {
  57. $rs[] = [
  58. 'goods_id' => $d['goods_id'],
  59. 'price' => bcdiv($d['total_price'], $d['num'], 2),
  60. ];
  61. }
  62. return [
  63. 'code' => 0,
  64. 'data' => $rs
  65. ];
  66. }
  67. }