lineup.js 6.0 KB
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.get_sports_injury = exports.getlineupfromsporttery = void 0;
const _ = require("lodash");
const api_hemera = require("../../../api_hemera");
const moment = require("moment");
const cache_1 = require("../../../cache");
const db = require("../table");
async function getlineupfromsporttery({ sportsdt_gameid, type, lotteryId, issueName, matchNumber }) {
    // let gameprediction = await cache(async (args: any) => {
    //   return await api_hemera.query('sport', `getgameprediction`, {}, { gameid: args.gameid })
    // }, { gameid: sportsdt_gameid }, 30, 'getgameprediction')
    // let dataLineup = gameprediction.Lineup
    try {
        if (moment(issueName) > moment().add(1, 'day')) {
            throw "时间范围不正确";
        }
        let t = await db.sporttery_match_lineup.findOne({
            where: {
                issue_name: issueName,
                match_number: matchNumber
            }
        });
        if (t == null) {
            return JSON.stringify([
                ["", "", ""],
                [],
                [],
                [],
                [],
                [],
                [],
            ]);
        }
        let jsonBody = t;
        //let Formation = ['', dataLineup.HFormation, dataLineup.AFormation]
        let Formation = [``, ``, ``];
        if (jsonBody.referee_name != null)
            Formation[0] = jsonBody.referee_name;
        let positionName = {
            Goalkeeper: "守门员",
            Defender: "后卫",
            Midfielder: "中场",
            Attacker: "前锋",
        };
        let position_x_name = {
            "": "0",
            GK: '1',
            D1: '2',
            D2: '3',
            D: '3',
            DM: '4',
            M: '5',
            AM: '6',
            A: '7',
        };
        let position_y_name = {
            "": "0",
            L: '1',
            CL: '2',
            C: '3',
            CR: '4',
            R: '5',
        };
        let h_lineups_info_lineups = _.map(jsonBody.h_lineups_info.lineups, (item) => {
            return [item.shirtnumber,
                item.person,
                positionName[item.position],
                position_x_name[item.position_x],
                position_y_name[item.position_y]
            ];
        });
        let a_lineups_info_lineups = _.map(jsonBody.a_lineups_info.lineups, (item) => {
            return [item.shirtnumber,
                item.person,
                positionName[item.position],
                position_x_name[item.position_x],
                position_y_name[item.position_y]
            ];
        });
        let h_lineups_info_lineups_bench = _.map(jsonBody.h_lineups_info.lineups_bench, (item) => {
            return [item.shirtnumber,
                item.person,
                positionName[item.position],
                "0",
                "0"
            ];
        });
        let a_lineups_info_lineups_bench = _.map(jsonBody.a_lineups_info.lineups_bench, (item) => {
            return [item.shirtnumber,
                item.person,
                positionName[item.position],
                "0",
                "0"
            ];
        });
        for (let i = 2; i <= 7; i++) {
            let leng = _.countBy(h_lineups_info_lineups, (item) => { return item[3] + '' == i + ''; });
            if (leng.true > 0) {
                Formation[1] = `${Formation[1]}${leng.true}`;
            }
        }
        for (let i = 2; i <= 7; i++) {
            let leng = _.countBy(a_lineups_info_lineups, (item) => { return item[3] + '' == i + ''; });
            if (leng.true > 0) {
                Formation[2] = `${Formation[2]}${leng.true}`;
            }
        }
        return JSON.stringify([
            Formation,
            h_lineups_info_lineups,
            a_lineups_info_lineups,
            h_lineups_info_lineups_bench,
            a_lineups_info_lineups_bench,
            [],
            [],
        ]);
    }
    catch (e) {
        return JSON.stringify([
            ["", "", ""],
            [],
            [],
            [],
            [],
            [],
            [],
        ]);
    }
}
exports.getlineupfromsporttery = getlineupfromsporttery;
async function get_sports_injury(gameid) {
    try {
        let gameprediction = await (0, cache_1.cache)(async (args) => {
            return await api_hemera.query('sport', `getgameprediction`, {}, { gameid: args.gameid });
        }, { gameid: gameid }, 30, 'getgameprediction');
        // 状态,整型
        // 0:后备球员
        // 1:停赛球员
        // 2:伤病球员
        // 3:首发球员
        // 4:其它原因缺阵球员
        // const Ontype = ["受伤", "伤疑", "停赛", "国家队上调", "预计缺席"]
        // const StateType = ["不出战", " 出战"]
        let injuries_info_h_injuries = _.map(_.filter(gameprediction.Lineup.HomePlayers, (o) => { return o.Status == 2 || o.Status == 1; }), (item) => {
            if (item.Status == 1) {
                return { "Id": item.Id, "Name": item.Name, "ShirtNum": item.ShitNo, "State": 0, "On": 2 };
            }
            else {
                return { "Id": item.Id, "Name": item.Name, "ShirtNum": item.ShitNo, "State": 0, "On": 0 };
            }
        });
        let injuries_info_a_injuries = _.map(_.filter(gameprediction.Lineup.AwayPlayers, (o) => { return o.Status == 2 || o.Status == 1; }), (item) => {
            if (item.Status == 1) {
                return { "Id": item.Id, "Name": item.Name, "ShirtNum": item.ShitNo, "State": 0, "On": 2 };
            }
            else {
                return { "Id": item.Id, "Name": item.Name, "ShirtNum": item.ShitNo, "State": 0, "On": 0 };
            }
        });
        return JSON.stringify({
            Home: injuries_info_h_injuries,
            Away: injuries_info_a_injuries
        });
    }
    catch (e) {
        return JSON.stringify({
            Home: [],
            Away: []
        });
    }
}
exports.get_sports_injury = get_sports_injury;
//# sourceMappingURL=lineup.js.map