0], [['num',], 'default', 'value' => 1], ]; } /** * 审核订单预览 */ public function search() { $store_id = get_store_id(); $order = Order::findOne([ 'order_no' => $this->order_no, 'is_delete' => 0, 'is_recycle'=> 0, ]); if (!$order) { return [ 'code' => 1, 'msg' => '订单不存在' ]; } if($order->mch_id){ // 查一下是不是入住商的员工 $mch_staff = MchStaff::findOne(['user_id' => get_user_id(), 'mch_id' => $order->mch_id, 'store_id' => $store_id, 'is_delete' => 0,'is_disable' => 0]); $mch = Mch::findOne(['saas_user_id' => get_saas_user_id(), 'id' => $order->mch_id, 'store_id' => $store_id, 'is_delete' => 0]); if (empty($mch) && empty($mch_staff)) { return [ 'code' => 1, 'msg' => '您不是入驻商禁止核销' ]; } if(empty($mch) && !empty($mch_staff)){ $mch = Mch::findOne(['id' => $mch_staff->mch_id]); } }else{ $staff = MdStaff::findOne(['saas_user_id' => get_saas_user_id(), 'md_id' => $order->md_id, 'store_id' => $store_id, 'is_delete' => 0,'is_disable' => 0]); if (empty($staff)) { return [ 'code' => 1, 'msg' => '您不是核销员禁止核销' ]; } } $status = ""; if ($order->is_pay == 0) { $status = '订单未付款'; } elseif ($order->is_pay == 1 && $order->trade_status == Order::ORDER_FLOW_NO_SEND) { $status = '订单待核销'; } elseif ($order->trade_status == Order::ORDER_FLOW_SEND) { $status = '订单待核销'; } elseif ($order->trade_status == Order::ORDER_FLOW_CONFIRM) { $status = '订单已核销'; } $goods_list = OrderDetail::find()->alias('od') ->where(['od.order_id' => $order->id, 'od.is_delete' => 0])->all(); $num = 0; foreach ($goods_list as $i => $item) { $newItem = []; $newItem['goods_id'] = $item['goods_id']; $newItem['order_detail_id'] = $item['id']; $newItem['name'] = $item->goods->name; $newItem['total_price'] = $item['total_price']; $newItem['num'] = $item['num']; $newItem['attr'] = json_decode($item['attr']); $num += intval($item['num']); $newItem['goods_pic'] = $item['pic'] ?: Goods::getGoodsPicStatic($item['id'])->pic_url; $order_refund = OrderRefund::findOne([ 'order_detail_id' => $item['id'], 'is_delete' => 0, ]); if ($order_refund) { $newItem['is_order_refund'] = 1; } else { $newItem['is_order_refund'] = 0; } if ($order->is_pay == 1 && $order->trade_status == Order::ORDER_FLOW_SEND) { $newItem['order_refund_enable'] = 1; } else { $newItem['order_refund_enable'] = 0; } if ($order->trade_status == Order::ORDER_FLOW_CONFIRM) { $after_sale_time = Option::get(OptionSetting::STORE_AFTER_SALE_TIME); if ((time() - $order->confirm_time) > $after_sale_time['value'] * 86400) {//超过可售后时间 $newItem['order_refund_enable'] = 0; } } if($item['is_level'] == 1 && ($order->discount && $order->discount < 10)){ $newItem['is_level'] = 1; } $newList[] = $newItem; } $shop = null; if ($order->md_id) { $shop = Md::find()->select(['name', 'mobile', 'address', 'longitude', 'latitude'])->where(['store_id' => $store_id, 'id' => $order->md_id])->asArray()->one(); } if ($order->before_update_price) { if ($order->before_update_price < $order->pay_price) { $before_update = "加价"; $money = $order->pay_price - $order->before_update_price; } else { $before_update = "优惠"; $money = $order->before_update_price - $order->pay_price; } } else { $before_update = ""; $money = ""; } if(!$order->integral){ $order->integral = 0; } $md = null; if($order->order_type == 1){ $bookInfo = json_decode($order->book_info, true); if(!isset($bookInfo[0])){ $bookInfo = [$bookInfo]; } $order->name = $bookInfo[0]['name']; $order->mobile = $bookInfo[0]['mobile']; $md = Md::findOne($order->md_id); } if($order->order_type == 2){ $bookInfo = json_decode($order->book_info, true); $order->name = $bookInfo['name']; $order->mobile = $bookInfo['mobile']; $md = Md::findOne($order->md_id); } return [ 'code' => 0, 'msg' => 'success', 'data' => [ 'order_id' => $order->id, 'order_type' => $order->order_type, 'book_info' => $order->book_info, 'md' => $md, 'mch_id' => $order->mch_id, 'mch' => $mch, 'is_pay' => $order->is_pay, 'status' => $status, 'express' => $order->express, 'express_no' => $order->express_no, 'name' => $order->name, 'mobile' => $order->mobile, 'address' => $order->address, 'order_no' => $order->order_no, 'addtime' => date('Y-m-d H:i', $order->created_at), 'total_price' => doubleval(sprintf('%.2f', $order->total_price)), 'express_price' => doubleval(sprintf('%.2f', $order->express_price)), 'goods_total_price' => doubleval(sprintf('%.2f', doubleval($order->total_price) - doubleval($order->express_price))), 'coupon_sub_price' => isset($order->coupon_sub_price) ? $order->coupon_sub_price : 0, 'pay_price' => $order->pay_price, 'num' => $num, 'goods_list' => $newList, 'is_offline' => $order->is_offline, 'content' => $order->content ? $order->content : "", 'before_update' => $before_update, 'money' => $money, 'shop' => $shop, 'discount' => $order->discount, 'user_coupon_id' => $order->user_coupon_id, 'words' => $order->words, 'pay_type' => $order->pay_type, 'integral'=> json_decode($order->integral), 'type' => $order->type, 'trade_status' => $order->trade_status ], ]; } public function cardClerk($id) { $verify = VerifyCardSale::findOne(['id' => $id]); if (empty($verify)) { return [ 'code' => 1, 'msg' => '核销卡查询为空' ]; } if ($verify->end_time <= time()) { return [ 'code' => 1, 'msg' => '核销卡已过期' ]; } if ($verify->left_num<=0) { return [ 'code' => 1, 'msg' => '核销卡已使用完毕' ]; } if ($verify->left_num < $this->num) { return [ 'code' => 1, 'msg' => '核销次数不够' ]; } $verify->left_num -= $this->num; $verify->use_num += $this->num; $shop = $shop = Shop::findOne(['user_id'=>get_user_id(), 'store_id' => get_store_id(), 'is_delete' => 0,'shop_audit' => 1]); $clerk = Clerk::findOne([ 'user_id' => get_user_id(), 'store_id' => get_store_id(), 'is_delete' => 0 ]); if (empty($shop)) { // 如果不是自提点管理员判断是否为核销元 if (empty($clerk)) { return [ 'code' => 0, 'msg' => '您不是核销员禁止核销' ]; } else { $shop = Shop::findOne(['id'=> $clerk->shop_id, 'store_id' => get_store_id(), 'is_delete' => 0,'shop_audit' => 1]); if (empty($shop)) { return [ 'code' => 0, 'msg' => '该自提点已被删除' ]; } } } $t = \Yii::$app->db->beginTransaction(); if ($verify->save()) { for($i = 0; $i < $this->num; $i ++) { $log = new VerifyCardLog(); $log->store_id = get_store_id(); $log->sale_id = $verify->id; $log->shop_id = $shop->id; $log->verify_person = get_user_id(); $log->use_time = time(); $log->is_delete = 0; $log->save(); } if ($clerk) { $clerk->card_count += $this->num; if (!$clerk->save()) { $t->rollBack(); return [ 'code' => 1, 'msg' => '核销失败', ]; } } $t->commit(); return [ 'code' => 0, 'msg' => '核销成功' ]; } else { $t->rollBack(); return [ 'code' => 1, 'msg' => '核销失败' ]; } } public function cardInfo($id) { $verify = VerifyCardSale::findOne(['id' => $id]); if (empty($verify)) { return [ 'code' => 1, 'msg' => '核销卡查询为空' ]; } if ($verify->end_time <= time()) { return [ 'code' => 1, 'msg' => '核销卡已过期' ]; } if ($verify->left_num<=0) { return [ 'code' => 1, 'msg' => '核销卡已使用完毕' ]; } $shop = $shop = Shop::findOne(['user_id'=>get_user_id(), 'store_id' => get_store_id(), 'is_delete' => 0,'shop_audit' => 1]); $clerk = Clerk::findOne([ 'user_id' => get_user_id(), 'store_id' => get_store_id(), 'is_delete' => 0 ]); if (empty($shop)) { // 如果不是自提点管理员判断是否为核销元 if (empty($clerk)) { return [ 'code' => 0, 'msg' => '您不是核销员禁止核销' ]; } else { $shop = Shop::findOne(['id'=> $clerk->shop_id, 'store_id' => get_store_id(), 'is_delete' => 0,'shop_audit' => 1]); if (empty($shop)) { return [ 'code' => 0, 'msg' => '该自提点已被删除' ]; } } } if ($verify) { $verify = $verify->toArray(); $verify['end_time'] = date('Y-m-d H:i:s',$verify['end_time']); $verify['sale_time'] = date('Y-m-d H:i:s',$verify['sale_time']); $card = VerifyCard::findOne($verify['verify_card_id']); $verify['name'] = $card->name; $verify['pic_url'] = $card->pic_url; } return [ 'code' => 0, 'data' => [ 'card' => $verify ] ]; } }