| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\admin\models;
- use app\models\Md;
- use app\models\MdProfit;
- use app\models\MdStaff;
- use app\models\Order;
- use app\models\OrderShare;
- use app\models\User;
- use app\models\UserShareMoney;
- use yii\base\Model;
- use yii\db\ActiveRecord;
- /**
- * @property ActiveRecord $order_model
- */
- class OrderClerkForm extends Model
- {
- public $order_model;
- public $order_id;
- public $store_id;
- public $order;
- public $clerk_id;
- public function rules()
- {
- return [
- [['clerk_id', 'order_id'], 'integer']
- ];
- }
- public function clerk()
- {
- if (!$this->order_id) {
- return [
- 'code' => 1,
- 'msg' => '数据错误,请刷新后重试'
- ];
- }
- $order = Order::findOne(['id' => $this->order_id]);
- if (!$order) {
- return [
- 'code' => 1,
- 'msg' => '订单不存在,请刷新后重试'
- ];
- }
- if ($order->is_pay == 0 && $order->pay_type != 2) {
- return [
- 'code' => 1,
- 'msg' => '订单未支付'
- ];
- }
- $this->order = $order;
- return $this->order();
- }
- // 商城订单核销
- private function order()
- {
- $t = \Yii::$app->db->beginTransaction();
- try {
- $orderClass = $this->order_model;
- $order = $this->order;
- //如果订单已经取消
- if ($order->apply_delete == Order::ORDER_APPLY_DELETE || $order->trade_status == Order::ORDER_FLOW_CANCEL) {
- return [
- 'code' => 1,
- 'msg' => '订单已取消或申请取消中,不可核销'
- ];
- }
- if ($order->pay_type == 2) {
- $order->is_pay = 1;
- $order->pay_time = time();
- }
- $order->send_time = time();
- $order->confirm_time = time();
- $order->trade_status = Order::ORDER_FLOW_CONFIRM;
- $mp_profit = MdProfit::findOne(['order_id' => $order->id]);
- if ((int)$order->md_id > 0 && $mp_profit) {
- $md = Md::findOne($order->md_id);
- $md_staff = MdStaff::findOne(['md_id' => $order->md_id, 'is_manager' => 1, 'is_delete' => 0, 'store_id' => get_store_id()]);
- if (!$md_staff) {
- return [
- 'code' => 1,
- 'msg' => '当前无可操作权限,请先配置店长'
- ];
- }
- if ($md_staff->is_disable) {
- return [
- 'code' => 1,
- 'msg' => '核销权限已被禁用'
- ];
- }
- if ($mp_profit->is_clerk == 1 && $mp_profit->is_send == 0) {
- $mp_profit->is_send = 1;
- $mp_profit->clerk_id = $md_staff->id;
- $mp_profit->updated_at = time();
- if (!$mp_profit->save()) {
- $t->rollBack();
- return [
- 'code' => 1,
- 'msg' => $mp_profit->errors[0]
- ];
- }
- $md->total_profit += $mp_profit->total_profit;
- $md->cash_profit += $mp_profit->total_profit;
- $md->clerk_profit += $mp_profit->clerk_profit;
- if (!$md->save()) {
- $t->rollBack();
- return [
- 'code' => 1,
- 'msg' => $md->errors[0]
- ];
- }
- $order->clerk_id = get_user_id();
- if (!$order->save()) {
- $t->rollBack();
- return [
- 'code' => 1,
- 'msg' => implode(';', array_values($order->firstErrors))
- ];
- }
- }
- }
- if ($order->save()) {
- \app\models\OrderAdminHandleLog::addHandleLog($order->id, \app\models\OrderAdminHandleLog::HANDLE_TYPE_CLERK);
- $t->commit();
- // TODO: 核销成功 消息发送
- return [
- 'code' => 0,
- 'msg' => '操作成功'
- ];
- } else {
- return [
- 'code' => 1,
- 'msg' => $this->getErrorSummary(false)[0],
- ];
- }
- } catch (\Exception $e) {
- return [
- 'code' => 1,
- 'msg' => $e->getMessage()
- ];
- }
- }
- }
|