TSINGSEE青犀视频行人检测集成票务系统读取票务系统数据库为空的问题
Posted TSINGSEE
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TSINGSEE青犀视频行人检测集成票务系统读取票务系统数据库为空的问题相关的知识,希望对你有一定的参考价值。
前段时间我们已经将TSINGSEE青犀视频开发的行人检测功能集成到景区的系统里进行测试,同时我们也将景区现有的票务系统与行人检测功能相结合,实现了景区人、证、票的统一。
在对TSINGSEE青犀视频行人检测进行测试时,发现在读取一天的时间的行人入园数量和票务的时候,票务系统的数据库为空:
type TDatabase struct {
Id int64
Ordernum string
Action int64 //入园数
Tid int64//门票id
Tnum int64//入园数量, 对接是此字段
LeftNum int64
Source int64
Terminal int64
BranchTerminal int64
SalerID int64
IdCard string
InsertTime string
OperMember int64
Msg string
}
type MDatabase struct {
Id int64
Barcode string
Inparktype int//入园标志==1
Device string
Parkid string //1140:上站;1141下站
Peoplecount int64//人数
InparkSystemdate string //插入时间
}
以上两个数据是读景区数据库的结构,但是这样读会出现读出来的数据为空数据的情况,票务系统没有数据,程序分析人数永远为0。
在之前只按照时间段读取票务系统的数据库是没有什么问题的,但在进行读取数据库优化的时候,读整个一天的票务数据库,就会出现读取的票务系统数据不正常情况。
以下是读一整天的票务数据库(部分代码):
首先我们想到是上面的结构体中和数据库的是不是结构的数量一致,于是进数据库检查,果然发现第二个结构体和数据库结构不一致,少了几个数据。
type MDatabase struct {
Id int64
Barcode string
Inparktype int//入园标志==1
Device string
Parkid string //1140:上站;1141下站
Peoplecount int64//人数
InparkSystemdate string //插入时间
//以下是少的数据
DealID string
nIdentify int
MASK_FROM_V2 string
sBigSFZ string
NoCardInPark int
nH5Order int
nIsPush int
nIsPushs int
}
将上面的数据补全,再次运行程序还是拿到的数据为空,取不到人数和时间,所以修改的不对。因此我们考虑如果在使用go读json的时候,结构体后面需要加入“json:”xxxxx””,那么读数据库也是否要加入需要读的什么数据呢?
针对这个思考我们做了测试,在使用结构体后面加入:gorm:“xxxxxx”
。这样会置顶需要读取哪个的数据,运行程序读出来进行验证,也能取到人数和时间。
type TDatabase struct {
Id int64 `gorm:"id"`
Ordernum string `gorm:"column:ordernum"`
Action int64 `gorm:"column:action"` //入园数
Tid int64 `gorm:"column:tid"`//门票id
Tnum int64 `gorm:"column:tnum"`//入园数量, 对接是此字段
LeftNum int64 `gorm:"column:left_num"`
Source int64 `gorm:"column:source"`
Terminal int64 `gorm:"column:terminal"`
BranchTerminal int64 `gorm:"column:branchTerminal"`
SalerID int64 `gorm:"column:SalerID"`
IdCard string `gorm:"column:id_card"`
InsertTime string `gorm:"column:insertTime"`
OperMember int64 `gorm:"column:oper_member"`
Msg string `gorm:"column:msg"`
}
type MDatabase struct {
Id int64 `gorm:"column:ID"`
Barcode string `gorm:"column:barcode"`
Inparktype int `gorm:"column:inparktype"`//入园标志==1
Device string `gorm:"column:Device"`
Parkid string `gorm:"column:parkid"` //1140:上站;1141下站
Peoplecount int64 `gorm:"column:peoplecount"`//人数
InparkSystemdate string `gorm:"column:inpark_systemdate"` //插入时间
DealID string `gorm:"column:DealID"`
nIdentify int `gorm:"column:nIdentify"`
MASK_FROM_V2 string `gorm:"column:_MASK_FROM_V2"`
sBigSFZ string `gorm:"column:sBigSFZ"`
NoCardInPark int `gorm:"column:NoCardInPark"`
nH5Order int `gorm:"column:nH5Order"`
nIsPush int `gorm:"column:nIsPush"`
nIsPushs int `gorm:"column:nIsPushs"`
}
以上是关于TSINGSEE青犀视频行人检测集成票务系统读取票务系统数据库为空的问题的主要内容,如果未能解决你的问题,请参考以下文章
TSINGSEE青犀视频景区行人检测程序数据库出错的排查及解决
TSINGSEE青犀视频行人检测后端代码出现保存json数据错误的处理
TSINGSEE青犀视频景区行人检测功能如何实现休息日的分析