java getinteger_Java JsonObject.getInteger方法代码示例

这段代码展示了如何在Java中使用JsonObject的getInteger方法获取并更新数据。它涉及到资源预订系统的更新,包括锁定记录、更新父预订、删除子预订以及创建新的子预订。在更新过程中,对`occurrences`字段使用了getInteger方法。
摘要由CSDN通过智能技术生成

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

@Override

public void updatePeriodicBooking(final String resourceId, final String bookingId, final String selectedDays,

final int firstSelectedDay, final JsonObject data, final UserInfos user,

final Handler> handler) {

final long endDate = data.getLong("periodic_end_date", 0L);

final int occurrences = data.getInteger("occurrences", 0);

SqlStatementsBuilder statementsBuilder = new SqlStatementsBuilder();

Object rId = parseId(resourceId);

Object bId = parseId(bookingId);

// 1. Lock query to avoid race condition

statementsBuilder.raw(LOCK_BOOKING_QUERY);

// 2. Update parent booking

StringBuilder parentQuery = new StringBuilder();

JsonArray parentValues = new JsonArray();

parentQuery.append("UPDATE rbs.booking")

.append(" SET booking_reason = ?, start_date = to_timestamp(?), end_date = to_timestamp(?),");

parentValues.add(data.getString("booking_reason"))

.add(data.getLong("start_date"))

.add(endDate>0L ? endDate : null); // the null value will be replaced by the last slot's end date

final int endDateIndex = parentValues.size() - 1;

parentQuery.append(" periodicity = ?, occurrences = ?, modified = NOW(),");

parentValues.add(data.getInteger("periodicity"))

.add(occurrences!=0 ? occurrences : null);

parentQuery.append(" days = B'")

.append(selectedDays)

.append("' WHERE resource_id = ?")

.append(" AND id = ?")

.append(" AND is_periodic = ?");

parentValues.add(rId)

.add(bId)

.add(true);

// 3. Delete child bookings

String deleteQuery = "DELETE FROM rbs.booking WHERE parent_booking_id = ?";

// 4. Create new child bookings

StringBuilder insertQuery = new StringBuilder();

JsonArray insertValues = new JsonArray();

final long lastSlotEndDate = appendInsertChildBookingsQuery(insertQuery, insertValues, rId,

selectedDays, firstSelectedDay, data, user, bId);

// Update end_date value in JsonArray parentValues

if (endDate <= 0L) {

parentValues = getValuesWithProperEndDate(parentValues, lastSlotEndDate, endDateIndex);

}

// Add queries to SqlStatementsBuilder

statementsBuilder.prepared(parentQuery.toString(), parentValues);

statementsBuilder.prepared(deleteQuery, new JsonArray().add(bId));

statementsBuilder.prepared(insertQuery.toString(), insertValues);

// Send queries to event bus

Sql.getInstance().transaction(statementsBuilder.build(), validResultHandler(3, handler));

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值