zhangzengfei
2023-08-15 976418ec1bb1c727367aaad2657be736dcd82583
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
79
80
81
package main
 
import (
    "kingdee-dbapi/report"
    "kingdee-dbapi/webserver"
    "os"
    "strings"
 
    "kingdee-dbapi/cache"
    "kingdee-dbapi/config"
    "kingdee-dbapi/gui"
    "kingdee-dbapi/kingdee"
    "kingdee-dbapi/logger"
    "kingdee-dbapi/models"
    "kingdee-dbapi/nsqclient"
 
    "github.com/flopp/go-findfont"
)
 
func main() {
    logger.InitLog("log/kingdee-dbapi.log", "debug", 15, false)
    logger.Info("kingdee-dbapi start!")
 
    config.Load()
 
    // sqlite3数据库
    models.Init()
 
    // 初始化缓存, 记录了已经上报的订单号
    cache.InitCache()
 
    // 初始化nsq
    nsqclient.InitNsqProducer()
 
    // 设置中文字体
    setFont()
    defer os.Unsetenv("FYNE_FONT")
    defer kingdee.CloseDB()
 
    // 创建窗口并运行
    dbConnectedChan := make(chan bool)
    window := gui.NewDisplay(dbConnectedChan)
 
    // 数据库连接成功后启动其他服务
    go onSqlServerConnected(dbConnectedChan)
 
    window.ShowMainWindow()
}
 
func onSqlServerConnected(dbConnectedChan chan bool) {
    <-dbConnectedChan
 
    logger.Debug("数据库已连接, 启动接口服务")
    report.Start()
 
    // 开启订阅SQL查询
    go nsqclient.InitNsqConsumer(config.Options.SqlQueryTopic, "sensor01", kingdee.SqlQueryHandle)
    go nsqclient.InitNsqConsumer(config.Options.CSTQueryTopic, "sensor01", kingdee.CSTQueryHandle)
    go nsqclient.InitNsqConsumer(config.Options.BomQueryTopic, "sensor01", report.HandleBomQuery)
 
    go webserver.Serve(config.Options.WebPort)
}
 
func setFont() {
    fontPaths := findfont.List()
 
    for _, path := range fontPaths {
        // 微软雅黑-常规
        if strings.Contains(path, "msyh.ttf") {
            os.Setenv("FYNE_FONT", path)
 
            break
        }
        // 黑体-常规
        if strings.Contains(path, "simhei.ttf") {
            os.Setenv("FYNE_FONT", path)
 
            break
        }
    }
}