From 57dd04ea27e6189b8307dd520acfd14ca7a61d6d Mon Sep 17 00:00:00 2001
From: laodaming <11058467+laudamine@user.noreply.gitee.com>
Date: Thu, 15 Jun 2023 15:10:22 +0800
Subject: [PATCH] 1

---
 server/orders/internal/config/config.go | 12 ++++++++++++
 server_api/orders.api                   | 25 +++++++++++++------------
 utils/basic/basic.go                    |  7 ++++---
 utils/pdf/html_to_pdf.go                | 11 ++++++-----
 4 files changed, 35 insertions(+), 20 deletions(-)
 create mode 100644 server/orders/internal/config/config.go

diff --git a/server/orders/internal/config/config.go b/server/orders/internal/config/config.go
new file mode 100644
index 00000000..cd5d1b00
--- /dev/null
+++ b/server/orders/internal/config/config.go
@@ -0,0 +1,12 @@
+package config
+
+import (
+	"fusenapi/server/orders/internal/types"
+	"github.com/zeromicro/go-zero/rest"
+)
+
+type Config struct {
+	rest.RestConf
+	SourceMysql string
+	Auth        types.Auth
+}
diff --git a/server_api/orders.api b/server_api/orders.api
index 99683571..713118ac 100644
--- a/server_api/orders.api
+++ b/server_api/orders.api
@@ -1,23 +1,24 @@
 syntax = "v1"
 
 info (
-	title: // TODO: add title
+	title: "订单服务"// TODO: add title
 	desc: // TODO: add description
 	author: ""
 	email: ""
 )
-
-type request {
-	// TODO: add members here and delete this comment
-	Name string `path:"name,options=you|me"` // parameters are auto validated
+import "basic.api"
+service orders {
+	//获取订单发票
+	@handler GetOrderInvoiceHandler
+	get /order/invoice (GetOrderInvoiceReq) returns (response);
 }
 
-type response {
-	// TODO: add members here and delete this comment
-	Message string `json:"message"`
+//获取订单发票
+type GetOrderInvoiceReq {
+	Sn       string `json:"sn"`
+	TimeZone string `json:"timeZone"`
 }
-
-service user-auth {
-	@handler GreetHandler
-	get /greet/from/:name(request) returns (response);
+type GetOrderInvoiceRsp {
+	FileName string `json:"file_name"`
+	Pdf      int64  `json:"pdf"`
 }
\ No newline at end of file
diff --git a/utils/basic/basic.go b/utils/basic/basic.go
index 1818b78c..50c7575e 100644
--- a/utils/basic/basic.go
+++ b/utils/basic/basic.go
@@ -13,9 +13,10 @@ var (
 	CodeServiceErr = &StatusResponse{510, "server logic error"} // server logic 错误
 	CodeUnAuth     = &StatusResponse{401, "unauthorized"}       // 未授权
 
-	CodeUpdateErr        = &StatusResponse{5000, "update database error"}                                             // update database logic 错误
-	CodeDupGuestErr      = &StatusResponse{5001, "the user is already a guest user and does not need to apply again"} // 用户已经是guest用户不需要重复申请 错误
-	CodeRequestParamsErr = &StatusResponse{5002, "invalid request param"}                                             // api参数校验 错误
+	CodeUpdateErr           = &StatusResponse{5000, "update database error"}                                             // update database logic 错误
+	CodeDupGuestErr         = &StatusResponse{5001, "the user is already a guest user and does not need to apply again"} // 用户已经是guest用户不需要重复申请 错误
+	CodeRequestParamsErr    = &StatusResponse{5002, "invalid request param"}                                             // api参数校验 错误
+	CodeDbRecordNotFoundErr = &StatusResponse{5002, "invalid request param"}
 )
 
 type Response struct {
diff --git a/utils/pdf/html_to_pdf.go b/utils/pdf/html_to_pdf.go
index 1c89fed7..d2c0b7a8 100644
--- a/utils/pdf/html_to_pdf.go
+++ b/utils/pdf/html_to_pdf.go
@@ -1,15 +1,16 @@
 package pdf
 
 import (
+	"encoding/base64"
 	"github.com/SebastiaanKlippert/go-wkhtmltopdf"
 	"strings"
 )
 
 // html转 Pdf dataType = 1 为网页url dataType = 2为网页内容 outFile为空则不保存
-func HtmlToPdf(content string, dataType int, outFile ...string) ([]byte, error) {
+func HtmlToPdfBase64(content string, dataType int, outFile ...string) (string, error) {
 	pdfg, err := wkhtmltopdf.NewPDFGenerator()
 	if err != nil {
-		return nil, err
+		return "", err
 	}
 	switch dataType {
 	case 1: //网页地址
@@ -23,13 +24,13 @@ func HtmlToPdf(content string, dataType int, outFile ...string) ([]byte, error)
 	pdfg.PageSize.Set(wkhtmltopdf.PageSizeA4)
 	// Create PDF document in memory
 	if err = pdfg.Create(); err != nil {
-		return nil, err
+		return "", err
 	}
 	// Write PDF to file
 	if len(outFile) != 0 {
 		if err = pdfg.WriteFile(outFile[0]); err != nil {
-			return nil, err
+			return "", err
 		}
 	}
-	return pdfg.Bytes(), nil
+	return base64.StdEncoding.EncodeToString(pdfg.Bytes()), nil
 }