request->post(); $id = $params['id'] ?? 0; $wechat_user_id = $this->request->wechat_user_id; $data = [ 'wechat_user_id' => $wechat_user_id, 'project_id' => $params['project_id'], 'pucode_id' => $params['pucode_id'], ]; $where = [['status', '>', 0], ['delete_time', '=', 0]]; if ($id) { $where[] = ['id', '!=', $id]; } Db::startTrans(); $query_id = InvoiceIssuanceModel::where($data)->where($where)->value('id'); if ($query_id) { throw new \Exception('当前开票项目已申请开票'); } $data['expire_time'] = strtotime($params['expire_time']); $data['mobile'] = $params['mobile']; $data['email'] = $params['email']; $data['amount'] = $params['amount']; //验证 、 新建抬头、获取抬头id validate(InvoiceHeadValidate::class)->scene('type')->check($data); validate(InvoiceHeadValidate::class)->scene('type'.$data['type'])->check($data); $data['invoice_head_id'] = InvoiceHead::createHead($wechat_user_id,$data); if ($id) { validate(InvoiceIssuanceValidate::class)->scene('edit')->check($params); $data['update_time'] = time(); (new InvoiceIssuanceModel())->update($data, ['id' => $id]); } else { validate(InvoiceIssuanceValidate::class)->scene('add')->check($params); $data['create_time'] = time(); $InvoiceModel = (new InvoiceIssuanceModel())->save($data); if (!$InvoiceModel) { throw new \Exception('申请失败'); } } Db::commit(); return $this->buildSuccess(); } catch (\Exception $e) { Db::rollback(); return $this->buildFailed(ReturnCode::INVALID, $e->getMessage()); } } public function delete() { try { $params = $this->request->post(); validate(InvoiceIssuanceValidate::class)->scene('delete')->check($params); $id = $params['id']; (new InvoiceIssuanceModel())->update(['delete_time' => time()], ['id' => $id]); return $this->buildSuccess(); } catch (\Exception $e) { return $this->buildFailed(ReturnCode::INVALID, $e->getMessage()); } } }