asJson($ApiSearchInvoiceNo); } public function actionInvoiceConf() { $invoiceConf = []; $invoice_is_open = InvoiceForm::is_open(get_store_id(), $invoiceConf); return $this->asJson([ 'code' => 0, 'data' => [ 'invoice_is_open' => $invoice_is_open, 'invoiceConf' => $invoiceConf, ], ]); } public function actionSaasUserConfList() { $list = SaasUserInvoiceConf::find()->where(['saas_id' => get_saas_user_id(), 'is_delete' => 0])->orderBy('updated_at DESC')->all(); return $this->asJson([ 'code' => 0, 'data' => $list, ]); } public function actionSaasUserConfDel() { $ids = input_params('ids'); $del = SaasUserInvoiceConf::updateAll(['is_delete' => 1], ['saas_id' => get_saas_user_id(), 'is_delete' => 0, 'id' => explode(',', $ids)]); return $this->asJson([ 'code' => $del ? 0 : 1, 'msg' => '删除数据:' . $del . '条', ]); } public function actionSaasUserConfSave() { try{ $saas_id = get_saas_user_id(); $params = all_params(); if($params['id']){ $conf = SaasUserInvoiceConf::findOne(['id' => $params['id'], 'saas_id' => $saas_id, 'is_delete' => 0]); }else{ $conf = new SaasUserInvoiceConf(); $conf->saas_id = $saas_id; } $conf->title = $params['title']; $conf->type = $params['type']; $conf->code = $params['code']; $conf->email = $params['email']; $conf->desc_type = $params['desc_type']; $conf->ext = is_array($params['ext']) ? json_encode($params['ext']) : $params['ext']; if(!$conf->save()){ throw new \Exception(array_shift($conf->getFirstErrors())); } return $this->asJson([ 'code' => 0, 'msg' => '操作成功!' ]); } catch (Exception $e) { \Yii::error($e); return $this->asJson([ 'code' => 1, 'msg' => $e->getMessage() ]); } } public function actionUserInvoiceSave() { try{ $order_id = input_params('order_id'); $invoiceConf = input_params('invoiceConf'); if(empty($order_id) || empty($invoiceConf)){ throw new \Exception('缺少参数'); } $save = InvoiceForm::orderInvoiceSave($order_id, $invoiceConf); if($save['code'] != 0){ return $save; } return $this->asJson([ 'code' => 0, 'msg' => '操作成功!' ]); } catch (Exception $e) { \Yii::error($e); return $this->asJson([ 'code' => 1, 'msg' => $e->getMessage() ]); } } public function actionUserInvoiceApply() { try{ $id = input_params('id') ? explode(',', input_params('id')) : null; $order_id = input_params('order_id') ? explode(',', input_params('order_id')) : null; if(empty($id) && empty($order_id)){ throw new \Exception('缺少参数'); } $query = OrderInvoice::find() ->where(['user_id' => get_user_id(), 'is_delete' => 0, 'has_apply' => 0]); if($id){ $query->andWhere(['id' => $id]); } if($order_id){ $query->andWhere(['order_id' => $order_id]); } $list = $query->all(); if(!$list){ throw new \Exception('未找到数据'); } foreach($list as $invoice){ InvoiceForm::orderInvoiceApply($invoice); if(!$invoice->save()){ throw new \Exception(array_shift($invoice->getFirstErrors())); } } return $this->asJson([ 'code' => 0, 'msg' => '操作成功!' ]); } catch (Exception $e) { \Yii::error($e); return $this->asJson([ 'code' => 1, 'msg' => $e->getMessage() ]); } } public function actionUserInvoiceList() { $id = input_params('id'); $order_id = input_params('order_id'); $has_apply = input_params('has_apply', 1); $query = OrderInvoice::find()->alias('oi') ->leftJoin(['o' => Order::tableName()], 'o.id = oi.order_id') ->where(['oi.user_id' => get_user_id(), 'oi.is_delete' => 0, 'oi.has_apply' => $has_apply]) ->andWhere(['o.is_pay' => 1]) ->andWhere(['!=', 'o.trade_status', 1]); if(!$has_apply){ $invoiceConf = []; $invoice_is_open = InvoiceForm::is_open(get_store_id(), $invoiceConf); if(!$invoice_is_open){ $query->andWhere(['oi.id' => null]); } $query->andWhere(['>', 'o.pay_time', time() - 86400 * $invoiceConf['conf']['timeout']]); } if($id){ $query->andWhere(['oi.id' => $id]); } if($order_id){ $query->andWhere(['oi.order_id' => $order_id]); } $query->orderBy('oi.id DESC'); $query->select(['oi.*', 'o.order_no', 'o.trade_status']); $list = pagination_make($query); return $this->asJson([ 'q' => $query->createCommand()->getRawSql(), 'code' => 0, 'data' => $list, ]); } }