OrderClerkForm.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\client\models\v1\admin;
  8. use app\models\Order;
  9. use app\models\OrderShare;
  10. use app\models\User;
  11. use app\models\UserShareMoney;
  12. use yii\base\Model;
  13. use yii\db\ActiveRecord;
  14. /**
  15. * @property ActiveRecord $order_model
  16. */
  17. class OrderClerkForm extends Model
  18. {
  19. public $order_model;
  20. public $order_id;
  21. public $store_id;
  22. public $order_type; //订单来源 0--商城订单 1--秒杀 2--拼团 3--预约 4--积分商城 5--九宫格 6--刮刮卡 7--砍价
  23. public $order;
  24. public $clerk_id;
  25. public function rules()
  26. {
  27. return [
  28. [['clerk_id', 'order_id'], 'integer']
  29. ];
  30. }
  31. public function clerk()
  32. {
  33. if (!$this->order_id) {
  34. return [
  35. 'code' => 1,
  36. 'msg' => '数据错误,请刷新后重试'
  37. ];
  38. }
  39. //订单核销
  40. $orderArr = [0, 1, 2, 4, 5, 6, 7];
  41. //预约核销
  42. $bookArr = [3];
  43. $orderClass = $this->order_model;
  44. $order = $orderClass::findOne(['id' => $this->order_id]);
  45. if (!$order) {
  46. return [
  47. 'code' => 1,
  48. 'msg' => '订单不存在,请刷新后重试'
  49. ];
  50. }
  51. if ($order->is_pay == 0 && $order->pay_type != 2) {
  52. return [
  53. 'code' => 1,
  54. 'msg' => '订单未支付'
  55. ];
  56. }
  57. $this->order = $order;
  58. return $this->order();
  59. }
  60. // 商城订单核销
  61. private function order()
  62. {
  63. $orderClass = $this->order_model;
  64. $order = $this->order;
  65. // if($order->pay_type == 2){
  66. // $order->is_pay = 1;
  67. // $order->pay_time = time();
  68. // }
  69. $order->pay_time = time();
  70. // if (isset($order->is_send)) {
  71. // $order->is_send = 1;
  72. // $order->send_time = time();
  73. // } else {
  74. // return [
  75. // 'code' => 1,
  76. // 'msg' => "操作失败,{$orderClass}缺少is_send字段"
  77. // ];
  78. // }
  79. $order->confirm_time = time();
  80. $order->trade_status = Order::ORDER_FLOW_CONFIRM;
  81. // if (isset($order->is_confirm)) {
  82. // $order->is_confirm = 1;
  83. // $order->confirm_time = time();
  84. // } else {
  85. // return [
  86. // 'code' => 1,
  87. // 'msg' => "操作失败,{$orderClass}缺少is_confirm字段"
  88. // ];
  89. // }
  90. if (isset($order->clerk_id) || $order->clerk_id === null) {
  91. $order->clerk_id = $this->clerk_id;
  92. $clerk = User::findOne(['id' => $this->clerk_id, 'type' => 1, 'is_clerk' => 1,
  93. 'store_id' => $this->store_id]);
  94. if (!$clerk) {
  95. return [
  96. 'code' => 1,
  97. 'msg' => '核销员不存在,请重新选择'
  98. ];
  99. }
  100. $order->shop_id = $clerk->shop_id;
  101. } else {
  102. return [
  103. 'code' => 1,
  104. 'msg' => "操作失败,{$orderClass}缺少clerk_id字段"
  105. ];
  106. }
  107. if ($order->save()) {
  108. return [
  109. 'code' => 0,
  110. 'msg' => '操作成功'
  111. ];
  112. } else {
  113. return [
  114. 'code' => 1,
  115. 'msg' => $this->getErrorSummary(false)[0],
  116. ];
  117. }
  118. }
  119. }