1], [['limit'], 'default', 'value' => 20], [['order_no'], 'default', 'value' => 0], [['order_id', 'key'],'trim'], [['nowlongitude', 'nowlatitude'], 'safe'], ]; } public function search() { if (!$this->validate()) { return [ 'code' => 1, 'msg' => $this->getErrorSummary(false)[0], ]; } $query = Order::find()->alias('o') ->leftJoin(['aoi' => AdoptOrderInfo::tableName()], 'o.id = aoi.order_id') ->where([ 'o.is_delete' => 0, 'o.store_id' => $this->store_id, 'o.user_id' => $this->user_id, 'o.user_delete' => 0, 'o.order_type' => 5 ]); if (isset($this->status) && $this->status > -1) { $query->andWhere([ '<>', 'o.trade_status', Order::ORDER_FLOW_CANCEL ]); } if (get_md_id()) { $query->andWhere(['o.md_id' => get_md_id()]); } if ($this->status == 0) {//待付款 $query->andWhere([ 'o.is_pay' => Order::IS_PAY_FALSE, ])->andWhere(['!=', 'o.pay_type' , 2])->andWhere(['!=', 'o.trade_status', 1]); } if ($this->status == 1) {//待成熟 $query->andWhere([ 'aoi.is_mature' => AdoptOrderInfo::ORDER_FLOW_NO_MATURE, 'o.is_delete' => Order::IS_DELETE_FALSE ])->andWhere(['or', ['o.is_pay' => 1], ['o.pay_type' => 2]]); } if ($this->status == 2) {//已成熟 $query->andWhere([ 'aoi.is_mature' => AdoptOrderInfo::ORDER_FLOW_MATURE, 'aoi.is_preserve' => AdoptOrderInfo::ORDER_FLOW_WAIT_PRESERVE, 'o.is_delete' => Order::IS_DELETE_FALSE, ])->andWhere(['!=', 'o.trade_status' , Order::ORDER_FLOW_CONFIRM]); // ->andWhere(['or', ['aoi.pick_method' => AdoptOrderInfo::ORDER_FLOW_SELF_PICK], ['aoi.pick_method' => AdoptOrderInfo::ORDER_FLOW_OTHER_PICK]]); } if ($this->status == 3) {//托管中 $query->andWhere([ 'aoi.is_preserve' => AdoptOrderInfo::ORDER_FLOW_PRESERVE, 'o.is_delete' => Order::IS_DELETE_FALSE, 'aoi.pick_treatment_method' => AdoptOrderInfo::ORDER_FLOW_PICK_STORAGE, ])->andWhere(['!=', 'o.trade_status' , Order::ORDER_FLOW_CONFIRM]); } if ($this->status == 4) {//已完成 $query->andWhere([ 'o.trade_status' => Order::ORDER_FLOW_CONFIRM, ]); } if ($this->status == 5) {//售后订单 return $this->getRefundList(); } $query->andWhere(['o.is_recycle' => 0]); $count = $query->count(); $pagination = new Pagination(['totalCount' => $count, 'page' => $this->page - 1, 'pageSize' => $this->limit]); /* @var Order[] $list */ $list = $query->limit($pagination->limit)->offset($pagination->offset)->orderBy('o.created_at DESC') ->select(['o.*', 'aoi.name as adopt_name', 'aoi.mobile as adopt_mobile', 'aoi.is_mature', 'aoi.mature_time', 'aoi.pick_method', 'aoi.pick_time', 'aoi.is_storage', 'aoi.storage_time', 'aoi.is_preserve', 'aoi.preserve_time', 'aoi.harvest_weight', 'aoi.confirm_self_pick', 'aoi.confirm_self_pick_time', 'aoi.harvest_storage_pic_url', 'aoi.confirm_self_pick_book', 'aoi.confirm_self_pick_book_time', 'aoi.start_self_pick', 'aoi.start_self_pick_time', 'aoi.end_self_pick', 'aoi.end_self_pick_time','aoi.pick_treatment_method', 'aoi.pick_treatment_method_time',]) ->asArray()->all(); $new_list = []; foreach ($list as $order) { // // 预约订单超过15分钟未支付自动取消 // if (time() - $order->created_at > 15 * 60 && $order->trade_status != Order::ORDER_FLOW_CANCEL && $order->is_pay == 0 && $order->pay_type != 2) { // $order->trade_status = Order::ORDER_FLOW_CANCEL; // $order->updated_at = time(); // $order->save(); // } $order_detail_list = OrderDetail::findAll(['order_id' => $order['id'], 'is_delete' => 0]); $goods_list = []; foreach ($order_detail_list as $order_detail) { $goods = Json::encode($order_detail->goods_info); if (!$goods) { continue; } $goods_pic = isset($order_detail->pic) ? $order_detail->pic : $goods['cover_pic']; $adopt_goods = AdoptGoods::find()->andWhere(['goods_id' => $order_detail->goods_id])->asArray()->one(); $self_pick_date = $adopt_goods['self_pick_date'] ? json_decode($adopt_goods['self_pick_date']) : []; $self_pick_date = $this->periodTime(strtotime($self_pick_date[0]),strtotime($self_pick_date[1])); $goods_list[] = (object)[ 'goods_id' => isset($goods['id']) ? $goods['id'] : $order_detail->goods_id, 'goods_pic' => $goods_pic, 'goods_name' => $order_detail->goods_name, 'num' => $order_detail->num, 'price' => $order_detail->total_price, 'attr_list' => json_decode($order_detail->attr), 'self_pick_date' =>$self_pick_date, 'self_pick_times' => $adopt_goods['self_pick_times'] ? json_decode($adopt_goods['self_pick_times']) : [], ]; } $qrcode = null; if ($order['mch_id']) { $mch = Mch::findOne($order['mch_id']); $mch = [ 'id' => $mch->id, 'name' => $mch->name, 'logo' => $mch->logo, ]; } else { $mch = [ 'id' => 0, 'name' => '平台自营', 'logo' => '', ]; } $orderRefund = OrderRefund::find()->where(['store_id' => $order['store_id'], 'order_id' => $order['id']])->exists(); $deliveryInfo = null; if ($order['is_delivery'] == 1) { $deliveryInfo = DeliveryInfo::find()->where(['order_no' => $order['order_no']])->one(); } $is_order_refund = $order_refund_enable = 0; if ($orderRefund) { $is_order_refund = 1; } else { $is_order_refund = 0; } if ($order['is_pay'] == 1 && ($order['trade_status'] == Order::ORDER_FLOW_SEND || $order['trade_status'] == Order::ORDER_FLOW_CONFIRM)) { $order_refund_enable = 1; } else { $order_refund_enable = 0; } if ($order['trade_status'] == Order::ORDER_FLOW_CONFIRM) { $after_sale_time = Option::get(OptionSetting::STORE_AFTER_SALE_TIME, $this->store_id); if ((time() - $order['confirm_time']) > $after_sale_time['value'] * 86400) {//超过可售后时间 $order_refund_enable = 0; } } $status = ""; $order_status_code = -1; if ($order['is_pay'] == 0) { $status = '订单未付款'; $order_status_code = 0; } elseif (($order['is_pay'] == Order::IS_PAY_TRUE || $order['pay_type'] == Order::PAY_TYPE_COD) && $order['is_mature'] == AdoptOrderInfo::ORDER_FLOW_NO_MATURE) { $status = '订单待成熟'; $order_status_code = 1; } elseif (($order['is_pay'] == Order::IS_PAY_TRUE || $order['pay_type'] == Order::PAY_TYPE_COD) && $order['is_mature'] == AdoptOrderInfo::ORDER_FLOW_MATURE && $order['pick_method'] == AdoptOrderInfo::ORDER_FLOW_NO_PICK) { $status = '已成熟待收取'; $order_status_code = 2; } elseif (($order['is_pay'] == Order::IS_PAY_TRUE || $order['pay_type'] == Order::PAY_TYPE_COD) && $order['is_mature'] == AdoptOrderInfo::ORDER_FLOW_MATURE && $order['pick_method'] == AdoptOrderInfo::ORDER_FLOW_SELF_PICK && $order['confirm_self_pick_book'] == AdoptOrderInfo::ORDER_FLOW_NO_CONFIRM_SELF_PICK_BOOK) { $status = '待后台确认自采预约'; $order_status_code = 3; } elseif (($order['is_pay'] == Order::IS_PAY_TRUE || $order['pay_type'] == Order::PAY_TYPE_COD) && $order['is_mature'] == AdoptOrderInfo::ORDER_FLOW_MATURE && $order['pick_method'] == AdoptOrderInfo::ORDER_FLOW_SELF_PICK && $order['confirm_self_pick_book'] == AdoptOrderInfo::ORDER_FLOW_CONFIRM_SELF_PICK_BOOK && $order['start_self_pick'] == AdoptOrderInfo::ORDER_FLOW_NO_CONFIRM_START_SELF_PICK) { $status = '等待自采中'; $order_status_code = 4; } elseif (($order['is_pay'] == Order::IS_PAY_TRUE || $order['pay_type'] == Order::PAY_TYPE_COD) && $order['is_mature'] == AdoptOrderInfo::ORDER_FLOW_MATURE && $order['pick_method'] == AdoptOrderInfo::ORDER_FLOW_SELF_PICK && $order['start_self_pick'] == AdoptOrderInfo::ORDER_FLOW_CONFIRM_START_SELF_PICK && $order['end_self_pick'] == AdoptOrderInfo::ORDER_FLOW_NO_CONFIRM_END_SELF_PICK) { $status = '自采中'; $order_status_code = 5; } elseif (($order['is_pay'] == Order::IS_PAY_TRUE || $order['pay_type'] == Order::PAY_TYPE_COD) && $order['is_mature'] == AdoptOrderInfo::ORDER_FLOW_MATURE && ($order['pick_method'] == AdoptOrderInfo::ORDER_FLOW_OTHER_PICK ) && $order['is_storage'] == AdoptOrderInfo::ORDER_FLOW_NO_STORAGE) { $status = '农场采摘中'; $order_status_code = 6; } elseif (($order['is_pay'] == Order::IS_PAY_TRUE || $order['pay_type'] == Order::PAY_TYPE_COD) && $order['is_mature'] == AdoptOrderInfo::ORDER_FLOW_MATURE && (($order['pick_method'] == AdoptOrderInfo::ORDER_FLOW_SELF_PICK && $order['pick_treatment_method'] != AdoptOrderInfo::ORDER_FLOW_PICK_TAKE && $order['end_self_pick'] == AdoptOrderInfo::ORDER_FLOW_CONFIRM_END_SELF_PICK) || $order['pick_method'] == AdoptOrderInfo::ORDER_FLOW_OTHER_PICK) && $order['is_storage'] == AdoptOrderInfo::ORDER_FLOW_NO_STORAGE) { $status = '已收取待入库'; $order_status_code = 7; } elseif (($order['is_pay'] == Order::IS_PAY_TRUE || $order['pay_type'] == Order::PAY_TYPE_COD) && $order['is_mature'] == AdoptOrderInfo::ORDER_FLOW_MATURE && $order['pick_treatment_method'] == AdoptOrderInfo::ORDER_FLOW_PICK_STORAGE && $order['is_storage'] == AdoptOrderInfo::ORDER_FLOW_STORAGE && $order['is_preserve'] == AdoptOrderInfo::ORDER_FLOW_WAIT_PRESERVE) { $status = '已入库待保管'; $order_status_code = 8; } elseif (($order['is_pay'] == Order::IS_PAY_TRUE || $order['pay_type'] == Order::PAY_TYPE_COD) && $order['is_mature'] == AdoptOrderInfo::ORDER_FLOW_MATURE && $order['pick_treatment_method'] == AdoptOrderInfo::ORDER_FLOW_PICK_STORAGE && $order['is_storage'] == AdoptOrderInfo::ORDER_FLOW_STORAGE && $order['is_preserve'] == AdoptOrderInfo::ORDER_FLOW_PRESERVE && $order['trade_status'] != Order::ORDER_FLOW_CONFIRM ) { $status = '保管中'; $order_status_code = 9; } elseif ($order['trade_status'] == Order::ORDER_FLOW_CONFIRM) { $status = '订单已完成'; $order_status_code = 10; } $adopt_cost_order = AdoptCostOrder::find()->where(['order_type' => 0, 'is_pay' => 1, 'order_id' => $order['id']])->one(); $is_pay_pick_fee = $adopt_cost_order ? 1 : 0; $pick_fee_pay_status= $adopt_cost_order ? "已支付" : "未支付"; $new_list[] = (object)[ 'is_order_refund' => $is_order_refund, 'order_refund_enable' => $order_refund_enable, 'order_id' => $order['id'], 'order_no' => $order['order_no'], 'add_time' => $order['created_at'], 'goods_list' => $goods_list, 'total_price' => $order['total_price'], 'pay_price' => $deliveryInfo ? sprintf("%1.2f", $order['pay_price'] + $deliveryInfo->fee) : $order['pay_price'], 'is_pay' => $order['is_pay'], 'is_comment' => $order['is_comment'], 'is_offline' => $order['is_offline'], 'qrcode' => $qrcode, 'offline_qrcode' => $order['offline_qrcode'], 'express' => $order['express'], 'mch' => $mch, 'type' => $order['type'], 'pay_type' => $order['pay_type'], 'refund' => $orderRefund, 'apply_delete' => $order['apply_delete'], 'trade_status' => $order['trade_status'], 'status' => $status, 'status_code' => $order_status_code, 'delivery_fee' => $deliveryInfo ? $deliveryInfo->fee : 0, 'is_delivery' => $order['is_delivery'], 'order_type' => $order['order_type'], 'adopt_name' => $order['adopt_name'], 'adopt_mobile' => $order['adopt_mobile'], 'is_mature' => $order['is_mature'], 'mature_time' => date('Y-m-d H:i:s', $order['mature_time']), 'pick_method' => $order['pick_method'], 'pick_time' => date('Y-m-d H:i:s', $order['pick_time']), 'is_storage' => $order['is_storage'], 'storage_time' => date('Y-m-d H:i:s', $order['storage_time']), 'is_preserve' => $order['is_preserve'], 'preserve_time' => date('Y-m-d H:i:s', $order['preserve_time']), 'harvest_weight' => $order['harvest_weight'], 'is_pay_pick_fee' => $is_pay_pick_fee, 'pick_fee_pay_status' => $pick_fee_pay_status, 'confirm_self_pick' => $order['confirm_self_pick'], 'confirm_self_pick_time' => $order['confirm_self_pick_time'], 'harvest_storage_pic_url' => $order['harvest_storage_pic_url'], 'confirm_self_pick_book' => $order['confirm_self_pick_book'], 'confirm_self_pick_book_time' => date('Y-m-d H:i:s', $order['confirm_self_pick_book_time']), 'start_self_pick' => $order['start_self_pick'], 'start_self_pick_time' => date('Y-m-d H:i:s', $order['start_self_pick_time']), 'end_self_pick' => $order['end_self_pick'], 'end_self_pick_time' => date('Y-m-d H:i:s', $order['end_self_pick_time']), 'pick_treatment_method' => $order['pick_treatment_method'], 'pick_treatment_method_time' => date('Y-m-d H:i:s', $order['pick_treatment_method_time']), ]; } $pay_type_list = OrderForm::getPayType([],['huodao']); return [ 'code' => 0, 'msg' => 'success', 'data' => [ 'row_count' => $count, 'page_count' => $pagination->pageCount, 'list' => $new_list, 'pay_type_list' => $pay_type_list, 'revoke_tpl'=>'', 'self_pick_template_id' => NoticeAction::getSendTamplateId(['adopt_order_self_pick','adopt_order_confirm_self_pick_book']), 'other_pick_template_id' => NoticeAction::getSendTamplateId(['adopt_order_other_pick','adopt_order_confirm_storage', 'adopt_storage']), 'take_delivery_template_id' => NoticeAction::getSendTamplateId(['order_pay', 'order_submit', 'order_send']), 'start_self_pick_template_id' => NoticeAction::getSendTamplateId(['adopt_order_start_self_pick','adopt_order_end_self_pick']), 'end_self_pick_template_id' => NoticeAction::getSendTamplateId(['adopt_order_end_self_pick', 'adopt_order_confirm_self_pick_finish']), 'pick_take_template_id' => NoticeAction::getSendTamplateId(['adopt_order_pick_take',]), 'storage_template_id' => NoticeAction::getSendTamplateId(['adopt_order_storage', 'adopt_order_confirm_storage','adopt_storage']), 'preserve_template_id' => NoticeAction::getSendTamplateId(['adopt_order_preserve', 'adopt_preserve']), 'no_preserve_template_id' => NoticeAction::getSendTamplateId(['adopt_order_no_preserve']), 'cancel_reason' => Delivery::$validReason ], ]; } function periodTime($beginTime, $endTime) { $i = 0; $arr = []; while ($beginTime <= $endTime) { $arr[$i] = date('Y-m-d',$beginTime); $beginTime = strtotime('+1 day', $beginTime); $i++; } return $arr; } private function getRefundList() { $query = OrderRefund::find()->alias('or') ->leftJoin(['od' => OrderDetail::tableName()], 'od.id=or.order_detail_id') ->leftJoin(['o' => Order::tableName()], 'o.id=or.order_id') ->where([ 'or.store_id' => $this->store_id, 'or.user_id' => $this->user_id, 'or.is_delete' => 0, 'o.is_delete' => 0, 'od.is_delete' => 0, ]); if($this->order_id){ $query->andWhere(['o.id' => $this->order_id]); } $count = $query->count(); $pagination = new Pagination(['totalCount' => $count, 'page' => $this->page - 1, 'pageSize' => $this->limit]); $list = $query->select('o.id AS order_id,o.order_no,or.id AS order_refund_id,od.goods_id,or.created_at,od.num,od.total_price,od.attr,or.refund_price,or.type,or.status,or.is_agree,or.is_user_send,od.goods_info, od.goods_name, od.pic') ->limit($pagination->limit)->offset($pagination->offset)->orderBy('or.id DESC')->asArray()->all(); $new_list = []; foreach ($list as $item) { $goods = Json::decode($item['goods_info']) ?:Goods::find()->where(['id' => $item['goods_id']])->asArray()->one(); if (!$goods) { continue; } $new_list[] = (object)[ 'order_id' => intval($item['order_id']), 'order_no' => $item['order_no'], 'goods_list' => [(object)[ 'goods_id' => intval($goods->id), 'goods_pic' => $item['pic'] ?: $goods['cover_pic'], 'goods_name' => $item['goods_name'], 'num' => intval($item['num']), 'price' => doubleval(sprintf('%.2f', $item['total_price'])), 'attr_list' => json_decode($item['attr']), ]], 'addtime' => date('Y-m-d H:i', $item['created_at']), 'refund_price' => doubleval(sprintf('%.2f', $item['refund_price'])), 'refund_type' => $item['type'], 'refund_status' => $item['status'], 'order_refund_id' => $item['order_refund_id'], 'is_agree' => $item['is_agree'], 'is_user_send' => $item['is_user_send'], ]; } return [ 'code' => 0, 'msg' => 'success', 'data' => [ 'row_count' => $count, 'page_count' => $pagination->pageCount, 'list' => $new_list, ], ]; } public function getNewRefundList() { $after_sale_time = Option::get(OptionSetting::STORE_AFTER_SALE_TIME, $this->store_id); $new_list = []; if (!$this->status) { $query = Order::find()->alias('o') ->where([ 'o.store_id' => $this->store_id, 'o.user_id' => $this->user_id, 'o.is_delete' => 0, ]); if (get_md_id()) { $query->andWhere(['o.md_id' => get_md_id()]); } $query->andWhere(['o.trade_status' => Order::ORDER_FLOW_CONFIRM]); $query->andWhere(['>', 'o.confirm_time', time() - $after_sale_time['value'] * 86400]); $list = $query->select('o.pay_price, o.confirm_time, o.id AS order_id,o.order_no,o.created_at')->orderBy('o.id DESC')->asArray()->all(); foreach ($list as $item) { $detail_goods = OrderDetail::find()->where(['order_id' => $item['order_id'], 'is_refund' => 0])->asArray()->all(); if (empty($detail_goods)) { continue; } $detail_goods = OrderDetail::find()->where(['order_id' => $item['order_id']])->asArray()->all(); $order_data = [ 'order_id' => intval($item['order_id']), 'order_no' => $item['order_no'], 'pay_price' => $item['pay_price'], 'goods_list' => [], 'addtime' => date('Y-m-d H:i', $item['created_at']), 'refund_price' => isset($item['refund_price']) ? doubleval(sprintf('%.2f', $item['refund_price'])) : 0, 'refund_type' => isset($item['type']) ? $item['type'] : 0, 'refund_status' => isset($item['status']) ? $item['status'] : 0, 'order_refund_id' => isset($item['order_refund_id']) ? $item['order_refund_id'] : 0, 'is_agree' => isset($item['is_agree']) ? $item['is_agree'] : 0, 'is_user_send' => isset($item['is_user_send']) ? $item['is_user_send'] : 0, ]; $goods_list = []; foreach ($detail_goods as $detail) { $goods_list[] = [ 'goods_id' => intval($detail['goods_id']), 'goods_pic' => $detail['pic'], 'goods_name' => $detail['goods_name'], 'num' => intval($detail['num']), 'price' => doubleval(sprintf('%.2f', $detail['total_price'])), 'attr_list' => json_decode($detail['attr']), ]; } $order_data['goods_list'] = $goods_list; $new_list[] = $order_data; } } // 处理中 或者 已完成 if ($this->status == 1 || $this->status == 2) { $query = OrderRefund::find()->alias('or') ->leftJoin(['o' => Order::tableName()], 'o.id=or.order_id') ->where([ 'or.store_id' => $this->store_id, 'or.user_id' => $this->user_id, 'or.is_delete' => 0, 'o.is_delete' => 0, 'or.user_delete' => 0 ]); if (get_md_id()) { $query->andWhere(['or.md_id' => get_md_id()]); } if ($this->status == 1) { $query->andWhere(['or.status' => OrderRefund::STATUS_IN, 'or.is_user_cancel' => 0]); } if ($this->status == 2) { $query->andWhere(['or', ['or.is_user_cancel' => 1], ['in', 'or.status', OrderRefund::$is_handle_status]]); } $list = $query->select('or.is_user_cancel, or.order_detail_id,o.pay_price, o.confirm_time, o.id AS order_id,o.order_no,or.id AS order_refund_id,or.created_at,or.refund_price,or.type,or.status,or.is_agree,or.is_user_send')->orderBy('or.id DESC')->asArray()->all(); if (!empty($list)) { foreach ($list as $item) { $order_data = [ 'is_user_cancel' => intval($item['is_user_cancel']), 'order_id' => intval($item['order_id']), 'order_no' => $item['order_no'], 'pay_price' => $item['pay_price'], 'goods_list' => [], 'addtime' => date('Y-m-d H:i', $item['created_at']), 'refund_price' => isset($item['refund_price']) ? doubleval(sprintf('%.2f', $item['refund_price'])) : 0, 'refund_type' => isset($item['type']) ? $item['type'] : 0, 'refund_status' => isset($item['status']) ? $item['status'] : 0, 'order_refund_id' => isset($item['order_refund_id']) ? $item['order_refund_id'] : 0, 'is_agree' => isset($item['is_agree']) ? $item['is_agree'] : 0, 'is_user_send' => isset($item['is_user_send']) ? $item['is_user_send'] : 0, ]; $detail_id = Json::decode($item['order_detail_id']); $detail_goods = OrderDetail::find()->where(['order_id' => $item['order_id'], 'is_refund' => 1])->andWhere(['in', 'id', $detail_id])->asArray()->all(); $goods_list = []; $price = 0; foreach ($detail_goods as $detail) { $goods_list[] = [ 'goods_id' => intval($detail['goods_id']), 'goods_pic' => $detail['pic'], 'goods_name' => $detail['goods_name'], 'num' => intval($detail['num']), 'price' => doubleval(sprintf('%.2f', $detail['total_price'])), 'attr_list' => json_decode($detail['attr']), 'is_refund' => $detail['is_refund'] ]; $price += $detail['total_price']; } $order_data['pay_price'] = $price; $order_data['goods_list'] = $goods_list; $new_list[] = $order_data; } } } $data = array_slice($new_list, ($this->page - 1) * $this->limit, $this->limit); return [ 'code' => 0, 'msg' => 'success', 'data' => [ 'row_count' => count($new_list), 'page_count' => ceil(count($new_list) / $this->limit), 'list' => $data, ], ]; } public static function getCountData($store_id, $user_id) { $form = new OrderListForm(); $form->limit = 1; $form->store_id = $store_id; $form->user_id = $user_id; $data = []; $form->status = -1; $res = $form->searchOrderCount(); $data['all'] = $res; $form->status = 0; $res = $form->searchOrderCount(); $data['status_0'] = $res; $form->status = 1; $res = $form->searchOrderCount(); $data['status_1'] = $res; $form->status = 2; $res = $form->searchOrderCount(); $data['status_2'] = $res; $form->status = 3; $res = $form->searchOrderCount(); $data['status_3'] = $res; return $data; } /** * 获取订单数方法 * @return array|int|string */ public function searchOrderCount() { $query = Order::find()->where([ 'is_delete' => 0, 'user_delete' => 0, 'store_id' => $this->store_id, 'user_id' => $this->user_id, ]); if (get_md_id()) { $query->andWhere(['md_id' => get_md_id()]); } if (isset($this->status) && $this->status > -1) { $query->andWhere([ '<>', 'trade_status', Order::ORDER_FLOW_CANCEL ]); } if ($this->status == 0) {//待付款 $query->andWhere([ 'is_pay' => Order::IS_PAY_FALSE, ])->andWhere(['!=', 'pay_type' , 2]); } if ($this->status == 1) {//待发货 $query->andWhere([ 'trade_status' => Order::ORDER_FLOW_NO_SEND, ])->andWhere(['or', ['is_pay' => 1], ['pay_type' => 2]]); } if ($this->status == 2) {//待收货 $query->andWhere([ 'trade_status' => Order::ORDER_FLOW_SEND, ]); } if ($this->status == 3) {//已完成 $query->andWhere([ 'trade_status' => Order::ORDER_FLOW_CONFIRM, ]); } $query->andWhere(['is_recycle' => 0]); return $query->count(); } }