java getvalue_Java JsonObject.getValue方法代码示例

import org.vertx.java.core.json.JsonObject; //导入方法依赖的package包/类

@Override

public void createBooking(final String resourceId, final JsonObject data, final UserInfos user,

final Handler> handler) {

SqlStatementsBuilder statementsBuilder = new SqlStatementsBuilder();

Object rId = parseId(resourceId);

// Upsert current user

statementsBuilder.prepared(UPSERT_USER_QUERY,

new JsonArray().add(user.getUserId()).add(user.getUsername()));

// Lock query to avoid race condition

statementsBuilder.raw(LOCK_BOOKING_QUERY);

// Insert query

StringBuilder query = new StringBuilder();

JsonArray values = new JsonArray();

Object newStartDate = data.getValue("start_date");

Object newEndDate = data.getValue("end_date");

query.append("INSERT INTO rbs.booking")

.append("(resource_id, owner, booking_reason, status, start_date, end_date)")

.append(" SELECT ?, ?, ?,");

values.add(rId)

.add(user.getUserId())

.add(data.getValue("booking_reason"));

// If validation is activated, the booking is created with status "created".

// Otherwise, it is created with status "validated".

// TODO V2 : la reservation doit etre automatiquement validee si le demandeur est valideur

query.append(" (SELECT CASE ")

.append( " WHEN (t.validation IS true) THEN ?")

.append( " ELSE ?")

.append( " END")

.append( " FROM rbs.resource_type AS t")

.append( " INNER JOIN rbs.resource AS r ON r.type_id = t.id")

.append( " WHERE r.id = ?),");

values.add(CREATED.status())

.add(VALIDATED.status())

.add(rId);

// Unix timestamps are converted into postgresql timestamps.

query.append(" to_timestamp(?), to_timestamp(?)");

values.add(newStartDate)

.add(newEndDate);

// Check that there does not exist a validated booking that overlaps the new booking.

query.append(" WHERE NOT EXISTS (")

.append("SELECT 1 FROM rbs.booking")

.append(" WHERE resource_id = ?")

.append(" AND status = ?")

.append(" AND (start_date, end_date) OVERLAPS (to_timestamp(?), to_timestamp(?))")

.append(") RETURNING id, status,")

.append(" to_char(start_date, '").append(DATE_FORMAT).append("') AS start_date,")

.append(" to_char(end_date, '").append(DATE_FORMAT).append("') AS end_date");

values.add(rId)

.add(VALIDATED.status())

.add(newStartDate)

.add(newEndDate);

statementsBuilder.prepared(query.toString(), values);

// Send queries to eventbus

Sql.getInstance().transaction(statementsBuilder.build(),

validUniqueResultHandler(2, handler));

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值