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
|
}
|
}
|
}
|