history_same_odds.js 3.2 KB
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getHistorySameOdds = exports.historySameOddsTemp = void 0;
const table_1 = require("../table");
const _ = require("lodash");
const config = require("../../../../config");
const moment = require("moment");
exports.historySameOddsTemp = {
    "ResultSps": null,
    "BetSps": null,
    "AllCount": null,
    "WinCount": null,
    "FlatCount": null,
    "LostCount": null,
    "WinRate": null,
    "FlatRate": null,
    "LostRate": null,
    "SameOddsList": null,
    "LastEndBet": null
};
async function getHistorySameOdds(winBet, flatBet, lossBet) {
    //只比较最小的两个,winBet>5.0的时候比较负、平, 浮动0.02
    let delta = 0.02;
    if (isNaN(winBet) || isNaN(winBet) || isNaN(winBet)) {
        throw "获取历史同赔参数错误";
    }
    let sql = `select * from ms_soccer_hdaodds_814
      where
        last_odds_win>=${(parseFloat(winBet) - delta).toFixed(2)} and last_odds_win<=${(parseFloat(winBet) + delta).toFixed(2)}
        and last_odds_draw>=${(parseFloat(flatBet) - delta).toFixed(2)} and last_odds_draw<=${(parseFloat(flatBet) + delta).toFixed(2)}`;
    if (parseFloat(winBet) > 3.1) {
        sql = `select * from ms_soccer_hdaodds_814
        where
        last_odds_loss>=${(parseFloat(lossBet) - delta).toFixed(2)} and last_odds_loss<=${(parseFloat(lossBet) + delta).toFixed(2)}
          and last_odds_draw>=${(parseFloat(flatBet) - delta).toFixed(2)} and last_odds_draw<=${(parseFloat(flatBet) + delta).toFixed(2)}`;
    }
    let list = await table_1.db.db.query(sql);
    if (list != null && list.length > 0) {
        list = list[0];
        let result = {
            "ResultSps": null,
            "BetSps": null,
            "AllCount": list.length,
            "WinCount": _.filter(list, (item) => { return item.home_score > item.away_score; }).length,
            "FlatCount": _.filter(list, (item) => { return item.home_score == item.away_score; }).length,
            "LostCount": _.filter(list, (item) => { return item.home_score < item.away_score; }).length,
            "WinRate": null,
            "FlatRate": null,
            "LostRate": null,
            "SameOddsList": JSON.stringify(_.map(list, (item) => {
                return {
                    BeginTime: moment.unix(item.game_date / 1000).format('YYYY-MM-DD'),
                    HostTeamId: item.home_team_id,
                    HostTeam: item.home_team_name,
                    GuestTeamId: item.away_team_id,
                    GuestTeam: item.away_team_name,
                    HostScore: item.home_score,
                    GuestScore: item.away_score,
                    ShortName: item.competition_name,
                };
            })),
            "LastEndBet": null
        };
        if (result.AllCount > 0) {
            result.WinRate = (result.WinCount / result.AllCount).toFixed(4);
            result.FlatRate = (result.FlatCount / result.AllCount).toFixed(4);
            result.LostRate = (result.LostCount / result.AllCount).toFixed(4);
        }
        return result;
    }
    return exports.historySameOddsTemp;
}
exports.getHistorySameOdds = getHistorySameOdds;
//# sourceMappingURL=history_same_odds.js.map