Мой Java-конструктор возвратил «ноль», и он был зарегистрирован в базе данных - PullRequest
0 голосов
/ 11 октября 2019

Я создал класс, в котором есть конструкторы для различных действий. Тем не менее, когда я пытаюсь подписаться на объект, чтобы заказать товар, я получаю «ноль» в качестве вывода. Но он регистрируется в базе данных, как решить его?

Я действительно опубликовал что-то похожее наэто и есть решение, но это идеально подходит, чтобы дать ноль

//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}]}    
...