package main
|
|
import (
|
"basic.com/valib/bhomeclient.git"
|
"basic.com/valib/bhomedbapi.git"
|
"basic.com/valib/logger.git"
|
"basic.com/valib/version.git"
|
"context"
|
"flag"
|
"github.com/robfig/cron"
|
"os"
|
"os/signal"
|
"syscall"
|
"vamicro/compTable-service/controllers"
|
"vamicro/compTable-service/models"
|
"vamicro/compTable-service/service"
|
"vamicro/config"
|
cc "vamicro/gb28181-service/cache"
|
|
"net/http"
|
_ "net/http/pprof"
|
)
|
|
var (
|
procName = "compTable-service"
|
proc = &bhomeclient.ProcInfo{
|
Name: procName, //进程名称
|
ID: procName, //进程id
|
Info: "", //进程的描述信息,用于区分同一进程名称下多个进程
|
}
|
env = flag.String("e", "pro", "")
|
)
|
|
func init() {
|
flag.Parse()
|
vaversion.Usage()
|
|
config.Init(*env)
|
// 日志初始化
|
var logFile = config.LogConf.Path + "vamicro-" + procName + ".log"
|
logger.InitLogger(logFile, config.LogConf.Level, config.LogConf.MaxSize, config.LogConf.MaxBackups, config.LogConf.MaxAge)
|
logger.Info("log init success !")
|
}
|
|
func main() {
|
models.Init()
|
defer models.CloseDB()
|
|
go func() {
|
logger.Info(http.ListenAndServe("0.0.0.0:7078", nil))
|
}()
|
|
ctx, cancel := context.WithCancel(context.Background())
|
fm, pubTopics := initFuncMap()
|
var reg = &bhomeclient.RegisterInfo{
|
Proc: *proc,
|
Channel: nil,
|
PubTopic: pubTopics,
|
SubTopic: []string{},
|
}
|
|
q := make(chan os.Signal, 1)
|
signal.Notify(q, os.Interrupt, os.Kill, syscall.SIGTERM)
|
|
ms, err := bhomeclient.NewMicroNode(ctx, q, config.Server.AnalyServerId, reg, logger.Debug)
|
if err != nil {
|
return
|
}
|
|
bhomedbapi.InitLog(logger.Debug)
|
bhomedbapi.InitGetNetNode(ms.GetLocalNetNodeByTopic)
|
bhomedbapi.InitDoReq(ms.RequestOnly)
|
|
go ms.StartServer(fm)
|
cc.InitDataCache()
|
models.InitSync()
|
|
c := cron.New()
|
c.AddFunc("@hourly", func() {
|
//检查底库有效期状态
|
service.InitDbTableEnableStatus()
|
})
|
c.Start()
|
|
<-q
|
ms.DeRegister()
|
cancel()
|
ms.Free()
|
}
|
|
const urlPrefix = "/data/api-v"
|
|
func initFuncMap() (map[string]bhomeclient.MicroFunc, []string) {
|
funcMap := make(map[string]bhomeclient.MicroFunc)
|
fc := new(controllers.FileController)
|
pc := new(controllers.DbPersonController)
|
tc := new(controllers.DbTableController)
|
|
funcMap[urlPrefix+"/dbperson/fileupload"] = fc.Fileupload
|
funcMap[urlPrefix+"/dbperson/moreFileUpload"] = fc.MoreFileUpload
|
funcMap[urlPrefix+"/dbperson/fileUploadTest"] = fc.UploadPersonTest
|
funcMap[urlPrefix+"/dbtable/addDbTableInfo"] = tc.Add
|
funcMap[urlPrefix+"/dbtable/findAllDbTablesByCurServer"] = tc.FindAllDbTablesByCurServer
|
funcMap[urlPrefix+"/dbtable/findAllDbTables"] = tc.FindAllDbTables
|
funcMap[urlPrefix+"/dbtable/deleteDBtablesById"] = tc.DeleteById
|
funcMap[urlPrefix+"/dbtable/dbtablesByIds"] = tc.DbtablesByIds
|
funcMap[urlPrefix+"/dbtable/findAllLocalDbTables"] = tc.FindAllLocalDbTables
|
funcMap[urlPrefix+"/dbtable/queryDbTables"] = tc.QueryDbTables
|
funcMap[urlPrefix+"/dbtable/updateDbTables"] = tc.UpdateDbTables
|
funcMap[urlPrefix+"/dbtable/updateDbTableStatus"] = tc.UpdateDbTableStatus
|
|
funcMap[urlPrefix+"/dbperson/move"] = pc.Move
|
funcMap[urlPrefix+"/dbperson/addDbPerson"] = pc.AddDbPerson
|
funcMap[urlPrefix+"/dbperson/copy"] = pc.Copy
|
funcMap[urlPrefix+"/dbperson/dbPersonInfoByIds"] = pc.DbPersonInfoByIds
|
funcMap[urlPrefix+"/dbperson/deleteDbPersonById"] = pc.DeleteDbPerson
|
funcMap[urlPrefix+"/dbperson/deleteMoreDbPerson"] = pc.DeleteMoreDbPerson
|
funcMap[urlPrefix+"/dbperson/deletePersonsByTbId"] = pc.DeletePersonsByTbId
|
funcMap[urlPrefix+"/dbperson/findLikePersonIds"] = pc.FindLikePersonIds
|
funcMap[urlPrefix+"/dbperson/getPersonTotal"] = pc.GetPersonTotal
|
funcMap[urlPrefix+"/dbperson/getPersonsCompareCacheBase"] = pc.GetPersonsCompareCacheBase
|
funcMap[urlPrefix+"/dbperson/joinDbTable"] = pc.JoinDbTable
|
funcMap[urlPrefix+"/dbperson/findLikePersonIds"] = pc.FindLikePersonIds
|
funcMap[urlPrefix+"/dbperson/multiUploadCarNo"] = pc.MultiUploadCarNo
|
funcMap[urlPrefix+"/dbperson/queryDbPersonsByTbId"] = pc.QueryDbPersonsByTbId
|
funcMap[urlPrefix+"/dbperson/extract"] = pc.FaceExtract
|
funcMap[urlPrefix+"/dbperson/queryDbPersonsByCompare"] = pc.QueryDbPersonsByCompare
|
funcMap[urlPrefix+"/dbperson/updateDbPerson"] = pc.UpdateDbPerson
|
funcMap[urlPrefix+"/dbperson/updateFace"] = pc.UpdateFace
|
|
/*********************************字典**********************************/
|
funcMap[urlPrefix+"/dbperson/dicByType"] = pc.FindDicByType
|
/*******************************太原营业厅*******************************/
|
|
var pubTopics []string
|
for key, _ := range funcMap {
|
pubTopics = append(pubTopics, key)
|
}
|
return funcMap, pubTopics
|
}
|