Я создал класс, в котором есть конструкторы для различных действий. Тем не менее, когда я пытаюсь подписаться на объект, чтобы заказать товар, я получаю «ноль» в качестве вывода. Но он регистрируется в базе данных, как решить его?
Я действительно опубликовал что-то похожее наэто и есть решение, но это идеально подходит, чтобы дать ноль
//Get order number from server
compositeDisposable.add(
myRestaurantAPI.createOrder(Common.API_KEY,
Common.currentUser.getFbid(),
Common.currentUser.getUserPhone(),
Common.currentUser.getName(),
address,
edt_date.getText().toString(),
Common.currentRestaurant.getId(),
"NONE",
true,
Double.valueOf(txt_total_cash.getText().toString()),
cartItems.size())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(createOrderModel -> {
if (createOrderModel.isSuccess())
{
// do something for me
}
else
{
// this is where is error is coming from it returning null
dialog.dismiss();
Toast.makeText(this, "CREATE 4 ORDER"+createOrderModel.getMessage(), Toast.LENGTH_SHORT).show();
}
}, throwable ->
{
Toast.makeText(this, "CREATE ORDER"+throwable.getMessage(), Toast.LENGTH_SHORT).show();
})
);
}, throwable -> {
dialog.dismiss();
Toast.makeText(this, "GET ALL CART "+throwable.getMessage(), Toast.LENGTH_SHORT).show();
}));
}
Теперь каждый раз, когда я вызываю эту функцию, я продолжаю получать CREATE 4 ORDERnull вот как выглядит createOrderModel
public class CreateOrderModel {
private boolean success;
private List<CreateOrder> result;
private String message;
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public List<CreateOrder> getResult() {
return result;
}
public void setResult(List<CreateOrder> result) {
this.result = result;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
Вот как выглядит CreateOrder
public class CreateOrder {
private int orderNumber;
public int getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(int orderNumber) {
this.orderNumber = orderNumber;
}
здесь API-интерфейс для createOrder, который я использовал nodejs
router.post('/createOrder', function (req, res, next) {
if (req.body.key == API_KEY) {
var order_phone = req.body.orderPhone
var order_name = req.body.orderName
var order_address = req.body.orderAddress
var order_date = moment(req.body.orderDate, "MM/DD/YYYY").format("YYYY-MM_DD")
var restaurant_id = req.body.restaurantId
var transaction_id = req.body.transactionId
var cod = req.body.cod
var total_price = req.body.totalPrice
var num_of_item = req.body.numOfItem
var order_fbid = req.body.orderFBID
if (order_fbid != null) {
req.getConnection(function (error, conn) {
conn.query('INSERT INTO `Order`(OrderFBID,OrderPhone,OrderName,OrderAddress,OrderStatus,OrderDate,RestaurantId,'
+ 'TransactionId,COD,TotalPrice,NumOfItem) VALUES(?,?,?,?,?,?,?,?,?,?,?)', [order_fbid, order_phone, order_name, order_address, 0, order_date, restaurant_id, transaction_id, cod, total_price, num_of_item], function (err, rows, fields) {
if (err) {
res.status(500)
res.send(JSON.stringify({ success: false, message: err.message }))
}
else {
conn.query('SELECT OrderId as OrderNumber FROM `Order` WHERE OrderFBID=? AND NumOfItem > 0 '
+ 'ORDER BY orderNumber DESC LIMIT 1', [order_fbid], function (err, rows, fields) {
if (err) {
res.status(500)
res.send(JSON.stringify({ success: false, message: err.message }))
}
else {
res.send(JSON.stringify({ success: false, result: rows }))
}
})
}
})
})
}
else {
res.send(JSON.stringify({ success: false, message: "Missing orderFBID body marfe" }))
}
}
else {
res.send(JSON.stringify({ success: false, message: "Wrong api key marfe" }))
}
})
это json, полученный при тестировании файла внутреннего интерфейса
{"success":false,"result":[{"OrderNumber":38}]}