| | |
| | | "car-service/controllers" |
| | | "car-service/models" |
| | | _ "car-service/routers" |
| | | "car-service/service" |
| | | "github.com/astaxie/beego" |
| | | "github.com/robfig/cron" |
| | | ) |
| | | |
| | | func main() { |
| | |
| | | models.InitDb() |
| | | controllers.Schedule() |
| | | go controllers.ComputeSpaceLeftRealTime() |
| | | //每天同步海康数据,看人员id是否有发生变化 |
| | | c := cron.New() |
| | | c.AddFunc("@daily", func() { |
| | | service.SyncHikPerson() |
| | | }) |
| | | c.Start() |
| | | beego.Run() |
| | | } |
| | |
| | | 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 |
| | |
| | | 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) |
| | |
| | | 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 |
| | |
| | | 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, |
| | |
| | | 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) |
| | | |