Ayuda en proyecto laravel.
Budget: $10 – $30 USD
Estamos lidiando con esta parte del codigo (controlador.js)
breve explicacion del controlador, su funcion, es agregar saldo ganado a saldo existente en la cuenta del usuario.
Problema, muchas veces, agrega el saldo 2 veces, esto es un error, lo que nos gustaria seria modificar el codigo, para que valide en la base de datos, en una nueva columa, si la apuesta fue pagada o no.
y que antes de agregar el saldo el controlador, valide si ya fue pagada.
-------------------------------------- PARTE DEL CODIGO ---------------------------------------
const makeBetResult = async (bet, data) => {
const result = await bettingSettled(bet, data);
await DB.w_sports_bet.update({ profit: result.profit, status: result.status }, { where: { id: bet.id } });
if (bet.betType == 'single') {
const user = await DB.w_users.findOne({ attributes: ['balance'], where: { id: bet.user_id } });
if (result.status !== 'LOST') {
const balance = Number(user.balance) + Number(result.profit);
await DB.w_users.update({ balance }, { where: { id: bet.user_id } });
}
} else {
const multi = await DB.w_sports_bet.findAll({ where: { betsId: bet.betsId } });
let flag = 1, aCount = 0, wCount = 0;
let con = 0;
for (let item of multi) {
if (item.status == 'BET') {
flag = 0;
return;
} else if (item.status == 'WIN') {
wCount++;
}
aCount++;
}
if (flag) {
if (aCount == wCount && con < 1) {
const user = await DB.w_users.findOne({ attributes: ['balance'], where: { id: bet.user_id } });
const balance = Number(user.balance) + Number(multi[0].potential);
await DB.w_users.update({ balance }, { where: { id: bet.user_id } });
await DB.w_sports_bet.update({ profit: multi[0].potential }, { where: { betsId: bet.betsId } });
con++;
}
}
}
}
breve explicacion del controlador, su funcion, es agregar saldo ganado a saldo existente en la cuenta del usuario.
Problema, muchas veces, agrega el saldo 2 veces, esto es un error, lo que nos gustaria seria modificar el codigo, para que valide en la base de datos, en una nueva columa, si la apuesta fue pagada o no.
y que antes de agregar el saldo el controlador, valide si ya fue pagada.
-------------------------------------- PARTE DEL CODIGO ---------------------------------------
const makeBetResult = async (bet, data) => {
const result = await bettingSettled(bet, data);
await DB.w_sports_bet.update({ profit: result.profit, status: result.status }, { where: { id: bet.id } });
if (bet.betType == 'single') {
const user = await DB.w_users.findOne({ attributes: ['balance'], where: { id: bet.user_id } });
if (result.status !== 'LOST') {
const balance = Number(user.balance) + Number(result.profit);
await DB.w_users.update({ balance }, { where: { id: bet.user_id } });
}
} else {
const multi = await DB.w_sports_bet.findAll({ where: { betsId: bet.betsId } });
let flag = 1, aCount = 0, wCount = 0;
let con = 0;
for (let item of multi) {
if (item.status == 'BET') {
flag = 0;
return;
} else if (item.status == 'WIN') {
wCount++;
}
aCount++;
}
if (flag) {
if (aCount == wCount && con < 1) {
const user = await DB.w_users.findOne({ attributes: ['balance'], where: { id: bet.user_id } });
const balance = Number(user.balance) + Number(multi[0].potential);
await DB.w_users.update({ balance }, { where: { id: bet.user_id } });
await DB.w_sports_bet.update({ profit: multi[0].potential }, { where: { betsId: bet.betsId } });
con++;
}
}
}
}