zhangqian
2024-04-19 cdb38521ea1f662b53bafb87412c38dfd0d5e11d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package main
 
import (
    "fmt"
    "go.uber.org/zap"
    "google.golang.org/grpc"
    "net"
    "srm/api/v1/test"
    "srm/proto/purchase_wms"
    "srm/proto/qualityinspect"
    "srm/proto/supplier"
 
    "srm/core"
    "srm/global"
    "srm/initialize"
)
 
//go:generate go env -w GO111MODULE=on
//go:generate go env -w GOPROXY=https://goproxy.cn,direct
//go:generate go mod tidy
//go:generate go mod download
 
// @title                       Swagger Example API
// @version                     0.0.1
// @description                 This is a sample Server pets
// @securityDefinitions.apikey  ApiKeyAuth
// @in                          header
// @name                        x-token
// @BasePath                    /
func main() {
    global.GVA_VP = core.Viper() // 初始化Viper
    global.GVA_LOG = core.Zap()  // 初始化zap日志库
    zap.ReplaceGlobals(global.GVA_LOG)
    global.GVA_DB = initialize.Gorm() // gorm连接数据库
    initialize.DBList()
    if global.GVA_DB != nil {
        initialize.RegisterTables() // 初始化表
        // 程序结束前关闭数据库链接
        db, _ := global.GVA_DB.DB()
        defer db.Close()
    }
    //启动grpc服务
    go func() {
        ln, err := net.Listen("tcp", ":"+global.GVA_CONFIG.System.GrpcPort)
        if err != nil {
            global.GVA_LOG.Error("grpc server init error: %v", zap.Error(err))
            panic(fmt.Sprintf("grpc server init error: %v", err.Error()))
        }
        s := grpc.NewServer()
        //todo 添加具体服务
        purchase_wms.RegisterPurchaseServiceServer(s, &purchase_wms.Server{})
        supplier.RegisterSupplierServiceServer(s, &supplier.Server{})
        err = s.Serve(ln)
        if err != nil {
            global.GVA_LOG.Error("grpc server init error: %v", zap.Error(err))
            panic(fmt.Sprintf("grpc server init error: %v", err.Error()))
        }
    }()
 
    go initGrpcClient()
    defer closeGrpcClient()
 
    core.RunWindowsServer()
}
 
func initGrpcClient() {
    test.InitProductServiceConn()
    qualityinspect.InitConn()
    purchase_wms.InitPurchaseConn()
    test.InitProductServiceConn()
}
 
func closeGrpcClient() {
    test.CloseProductServiceConn()
    qualityinspect.CloseConn()
    purchase_wms.ClosePurchaseConn()
    test.CloseProductServiceConn()
}