liuxiaolong
2020-08-11 e5197550d82cfb7a8784899fff435e96ed026ef9
add syncperson from hik
4个文件已修改
56 ■■■■■ 已修改文件
main.go 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/user.go 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/carService.go 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/userService.go 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.go
@@ -4,7 +4,9 @@
    "car-service/controllers"
    "car-service/models"
    _ "car-service/routers"
    "car-service/service"
    "github.com/astaxie/beego"
    "github.com/robfig/cron"
)
func main() {
@@ -15,5 +17,11 @@
    models.InitDb()
    controllers.Schedule()
    go controllers.ComputeSpaceLeftRealTime()
    //每天同步海康数据,看人员id是否有发生变化
    c := cron.New()
    c.AddFunc("@daily", func() {
        service.SyncHikPerson()
    })
    c.Start()
    beego.Run()
}
models/user.go
@@ -55,11 +55,31 @@
    return all,nil
}
func (u *User) GetAllMapByPhone() map[string]User {
    m := make(map[string]User)
    all, _ := u.GetAllUsers()
    if all !=nil {
        for _,p := range all {
            m[p.PhoneNum] = p
        }
    }
    return m
}
func (u *User) Update() (int64, error) {
    o := orm.NewOrm()
    return o.Update(u)
}
func (u *User) SyncHikPersonId(phoneNum string, hikPersonId string) (int64, error) {
    o := orm.NewOrm()
    res, err := o.Raw("update sys_user set id=? where phoneNum=?", hikPersonId, phoneNum).Exec()
    if err != nil {
        return 0, err
    }
    return res.RowsAffected()
}
func Login(username, password string) bool {
    return false
service/carService.go
@@ -302,6 +302,22 @@
    return list
}
func SyncHikPerson() {
    sv := NewCarService()
    hikPersons := sv.GetHikPersonList()
    if hikPersons != nil {
        var u models.User
        uMap := u.GetAllMapByPhone()
        for _,hp := range hikPersons {
            if sp,ok := uMap[hp.PhoneNo];ok {
                if sp.Id != hp.PersonId {
                    u.SyncHikPersonId(hp.PhoneNo, hp.PersonId)
                }
            }
        }
    }
}
func (sv *CarService) getHikPageResult(url string, reqBody map[string]interface{}) *vo.HikPageResult {
    fmt.Println(url, reqBody)
    result := sv.hikUtil.Post(url, reqBody)
service/userService.go
@@ -20,10 +20,6 @@
    if verifyCode(phoneNum, code) {
        carSv := NewCarService()
        var tmpUser models.User
        err := tmpUser.SelectByPhoneNum(phoneNum)
        fmt.Println("login err:", err)
        if err != nil { //用户不存在,则新增
            //先判断此手机号是否在海康平台中
            hikPersons := carSv.GetHikPersonList()
            found := false
@@ -40,6 +36,10 @@
                return false, nil, errors.New("请联系停车场管理员")
            }
        var tmpUser models.User
        err := tmpUser.SelectByPhoneNum(phoneNum)
        fmt.Println("login err:", err)
        if err != nil { //用户不存在,则新增
            u := models.User{
                Id: hikPersonId,
                PhoneNum: phoneNum,
@@ -71,6 +71,10 @@
                return false, nil, errors.New("注册失败")
            }
        } else { //用户已存在
            if hikPersonId != tmpUser.Id {
                tmpUser.Id = hikPersonId
                tmpUser.SyncHikPersonId(tmpUser.PhoneNum, hikPersonId)
            }
            var plateNos = make([]string, 0)
            hikVehicles := carSv.GetVehicleListByPerson(tmpUser.Id)