Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private def parser: RowParser[VehicleListItem] = {
- long("org_unit_id")~str("vin")~(str("license_plate") ?)~(str("driver") ?)~(str("leasing_company") ?)~(date("contract_start")?)~(int("contract_duration")?) map {
- case ou~vin~licensePlate~driver~lc~contractStart~duration =>
- VehicleListItem(java.util.UUID.randomUUID, VIN(vin), OrgUnitId(ou), licensePlate.getOrElse(""), driver.getOrElse(""), lc.getOrElse(""),contractStart.map(LocalDate.fromDateFields(_)), duration.getOrElse(0))
- }
- }
- private def specParser: RowParser[VehicleListSpec] = {
- str("vehicle_type")~str("brand")~str("model")~str("variant")~(str("body_type")?) map {
- case vt~b~m~variant~bt => VehicleListSpec(vt,b,m,variant,bt.getOrElse(""))
- }
- }
- val rs = TimeHelpers.logTime("Create result set") {
- SQL("""
- SELECT * FROM assets_vehicles JOIN
- models m ON model_id = m.id JOIN
- brands b on brand_id = b.id
- WHERE account_id={tid} AND org_unit_id={ou}
- """).
- on("tid" -> tenantId, "ou" -> rootOrgUnitId).resultSet()
- }
- TimeHelpers.logTime("Parse result set") {
- Sql.as((parser~specParser).map {
- case v~t => v -> t
- } *, rs)
- }
- /*
- Result
- 18:43:05.186 INFO net.liftweb.util.TimeHelpers account=21, user=27 - Create result set took 653 Milliseconds
- 18:43:16.837 INFO net.liftweb.util.TimeHelpers account=21, user=27 - Parse result set took 11650 Milliseconds
- 18:43:16.838 TRACE f.a.VehicleMenus$$anonfun$listOp$1$$anon$1 account=21, user=27 - Fetched all 20068 records
- */
Add Comment
Please, Sign In to add comment