예제 #1
0
파일: routeapi.go 프로젝트: caowenhua/gocar
func PassengerFindDriver(hs *routing.HTTPSession) routing.HResult {
	var uid int64
	var startTime int64
	var sLat float64
	var sLng float64
	var eLat float64
	var eLng float64
	var sCity string
	var eCity string
	t := time.Now()
	err := hs.ValidCheckVal(`
		uid,R|I,R:0;
		startTime,R|I,R:0;
		sLat,R|F,R:0;
		sLng,R|F,R:0;
		eLat,R|F,R:0;
		eLng,R|F,R:0;
		sCity,R|S,L:0;
		eCity,R|S,L:0;
		`, &uid, &startTime, &sLat, &sLng, &eLat, &eLng, &sCity, &eCity)
	if err != nil {
		return hs.MsgResErr(100, "config error", err)
	} else if t.Unix()-startTime < 1800 {
		return hs.MsgResE(1, "invalid startTime , need > 30min from now")
	} else {
		s, err := db.FindDriverRoute(uid, startTime, sLat, sLng, eLat, eLng, sCity, eCity)
		if err != nil {
			return hs.MsgResErr2(1, "", err)
		} else {
			return hs.MsgRes(s)
		}
	}

}
예제 #2
0
파일: userapi.go 프로젝트: caowenhua/gocar
func Register(hs *routing.HTTPSession) routing.HResult {
	var userName string
	hobby := ""
	var mobile string
	head := ""
	var gender int64
	gender = 1
	err := hs.ValidCheckVal(`
		userName,R|S,L:0;
		hobby,O|S,L:0;
		mobile,R|S,L:0;
		head,O|S,L:0;
		gender,O|I,R:-1~2;
		`, &userName, &hobby, &mobile, &head, &gender)
	if err != nil {
		return hs.MsgResErr(100, "config error", err)
	} else {
		s, err := db.Register(userName, mobile, hobby, head, gender)
		if err != nil {
			return hs.MsgResErr2(1, "", err)
		} else {
			return hs.MsgRes(s)
		}
	}
}
예제 #3
0
파일: userapi.go 프로젝트: caowenhua/gocar
func DeleteUserByMobile(hs *routing.HTTPSession) routing.HResult {
	var mobile string
	err := hs.ValidCheckVal(`
		mobile,R|S,L:0
		`, &mobile)
	if err != nil {
		return hs.MsgResErr(100, "config error", err)
	} else {
		s, err := db.DeleteUserByMobile(mobile)
		if err != nil {
			return hs.MsgResErr2(1, "", err)
		}
		return hs.MsgRes(s)
	}
}
예제 #4
0
파일: userapi.go 프로젝트: caowenhua/gocar
func DeleteUserById(hs *routing.HTTPSession) routing.HResult {
	var uid int64
	err := hs.ValidCheckVal(`
		uid,R|I,R:0
		`, &uid)
	if err != nil {
		return hs.MsgResErr(100, "config error", err)
	} else {
		s, err := db.DeleteUser(uid)
		if err != nil {
			return hs.MsgResErr2(1, "", err)
		}
		return hs.MsgRes(s)
	}
}
예제 #5
0
파일: userapi.go 프로젝트: caowenhua/gocar
func Login(hs *routing.HTTPSession) routing.HResult {
	var mobile string
	err := hs.ValidCheckVal(`
		mobile,R|S,L:0;
		`, &mobile)
	if err != nil {
		return hs.MsgResErr(100, "config error", err)
	} else {
		s, err := db.Login(mobile)
		if err != nil {
			return hs.MsgResErr2(1, "", err)
		} else {
			return hs.MsgRes(s)
		}
	}
}
예제 #6
0
파일: orderapi.go 프로젝트: caowenhua/gocar
func ChargeBalance(hs *routing.HTTPSession) routing.HResult {
	var uid int64
	var money float64
	err := hs.ValidCheckVal(`
		uid,R|I,R:0;
		money,R|F,R:0;
		`, &uid, &money)
	if err != nil {
		return hs.MsgResErr(100, "config error", err)
	} else {
		s, err := db.ChargeBalance(uid, money)
		if err != nil {
			return hs.MsgResErr2(1, "", err)
		} else {
			return hs.MsgRes(s)
		}
	}
}
예제 #7
0
파일: api.go 프로젝트: tomlovzki/ebs
func GetAnswerRecord(hs *routing.HTTPSession) routing.HResult {
	var aId int64
	err := hs.ValidCheckVal(`
		aId,R|I,R:0;
		`, &aId)
	if err != nil {
		log.E("GetAnswerRecord arg error:%v", err)
		return hs.MsgResE(1, fmt.Sprintf("%s:%s", common_.ARG_ERROR, err.Error()))
	}
	conn := dbMgr.DbConn()
	var content sql.NullString
	if err := conn.QueryRow("select content from ebs_answer where tid=?", aId).Scan(&content); err != nil {
		if err != sql.ErrNoRows {
			return hs.MsgResE(2, err.Error())
		}
	}
	return hs.MsgRes(content.String)
}
예제 #8
0
파일: ffcm_c.go 프로젝트: Centny/ffcm
func (v *VideoProc) SrvHTTP(hs *routing.HTTPSession) routing.HResult {
	var tid string
	var duration int64
	err := hs.ValidCheckVal(`
		tid,R|S,L:0;
		duration,R|I,R:0;
		`, &tid, &duration)
	if err != nil {
		return hs.Printf("valid argument error by %v", err)
	}
	var reader = bufio.NewReader(hs.R.Body)
	var frame = util.Map{}
	for {
		bys, err := util.ReadLine(reader, 102400, false)
		if err != nil {
			break
		}
		line := strings.Trim(string(bys), " \n\t")
		lines := strings.SplitN(line, "=", 2)
		lines[0] = strings.Trim(lines[0], " \t")
		if len(lines) < 2 {
			frame[lines[0]] = ""
		} else {
			frame[lines[0]] = lines[1]
		}
		if lines[0] != "progress" {
			continue
		}
		var progress Progress
		frame.ToS(&progress)
		var rate = float64(progress.OutTimeMs) / float64(duration)
		if int(rate*1000)%10 == 0 {
			log.D("NofityProc receive rate(%v%%) to task(%v),duration(%v)", int(rate*100), tid, duration)
		}
		err = v.NotifyProc(tid, rate)
		if err != nil {
			return hs.Printf("notify procgress to task(%v) error by %v", tid, err)
		}
		frame = util.Map{}
	}
	return hs.Printf("%v", "DONE")
}
예제 #9
0
파일: orderapi.go 프로젝트: caowenhua/gocar
func GetPassengerOrderList(hs *routing.HTTPSession) routing.HResult {
	var uid int64
	var page int64
	var pageCount int64
	err := hs.ValidCheckVal(`
		uid,R|I,R:0;
		page,O|I,R:0;
		pageCount,O|I,R:0;
		`, &uid, &page, &pageCount)
	if err != nil {
		return hs.MsgResErr(100, "config error", err)
	} else {
		s, err := db.GetPassengerOrderList(uid, page, pageCount)
		if err != nil {
			return hs.MsgResErr2(1, "", err)
		} else {
			return hs.MsgRes(s)
		}
	}
}
예제 #10
0
파일: orderapi.go 프로젝트: caowenhua/gocar
func PassengerCancelOrder(hs *routing.HTTPSession) routing.HResult {
	var uid int64
	var oid int64
	var drid int64
	err := hs.ValidCheckVal(`
		uid,R|I,R:0;
		oid,R|I,R:0;
		drid,R|I,R:0;
		`, &uid, &oid, &drid)
	if err != nil {
		return hs.MsgResErr(100, "config error", err)
	} else {
		s, err := db.PassengerCancelOrder(uid, oid, drid)
		if err != nil {
			return hs.MsgResErr2(1, "", err)
		} else {
			return hs.MsgRes(s)
		}
	}
}
예제 #11
0
파일: userapi.go 프로젝트: caowenhua/gocar
func FillInfo(hs *routing.HTTPSession) routing.HResult {
	var userName string
	var hobby string
	var head string
	var gender int64
	var uid int64
	err := hs.ValidCheckVal(`
		userName,R|S,L:0;
		hobby,R|S,L:0;
		head,R|S,L:0;
		gender,R|I,R:-1~2;
		uid,R|I,R:0
		`, &userName, &hobby, &head, &gender, &uid)
	if err != nil {
		return hs.MsgResErr(100, "config error", err)
	} else {
		s, err := db.FillInfo(userName, hobby, head, gender, uid)
		if err != nil {
			return hs.MsgResErr2(1, "", err)
		} else {
			return hs.MsgRes(s)
		}
	}
}
예제 #12
0
파일: api.go 프로젝트: tomlovzki/ebs
func SaveAnswer(hs *routing.HTTPSession) routing.HResult {
	var aId int64
	var a string
	err := hs.ValidCheckVal(`
		aId,R|I,R:0;
		a,R|S,L:0;
		`, &aId, &a)
	if err != nil {
		log.E("SaveAnswer arg error:%v", err)
		return hs.MsgResE(1, fmt.Sprintf("%s:%s", common_.ARG_ERROR, err.Error()))
	}
	aParse := []ANSWER2{}
	if err := json.Unmarshal([]byte(a), &aParse); err != nil {
		log.E("%v", err)
		return hs.MsgResE(1, fmt.Sprintf("%s:作答内容格式错误,%s", common_.ARG_ERROR, err.Error()))
	}
	sql_ := `update ebs_answer set content=? where tid=?`
	conn := dbMgr.DbConn()
	if _, err := conn.Exec(sql_, a, aId); err != nil {
		log.E("SaveAnswer db error:%v,sql:%s,args:%v", err, sql_, a)
		return hs.MsgResE(2, fmt.Sprintf("%s:%s", common_.DB_ERROR, err.Error()))
	}
	return hs.MsgRes("success")
}