[关闭]
@JeromeLiee 2019-04-28T09:08:10.000000Z 字数 6009 阅读 429

比赛信息接口


1. 接口描述

用于展示直播中心对抗赛的比赛信息,分为赛前、赛中、赛后三种状态

2. 接口后缀

/matchInfo

3. 请求参数

字段 名称 类型 是否可为空 备注
status 比赛状态 Integer 0,1,2 分别表示赛前、赛中、赛后
matchId 比赛Id Long
eventNum 返回的事件数量 Integer 默认为6,即最新的6条事件(配合status=1时使用)
eventType 返回的事件类型 String 默认为"1,2,3,12,4,5,6,7,9" (配合status=1时使用) 详见附1比赛事件值列表
flag 比赛数据类型 String 默认为"7,11,4,1,10,14" (配合status=2时使用) 详见附2比赛数据类型对应表

4. 返回数据

4.1 json样例

  1. {
  2. "code": 0,
  3. "msg": "Success",
  4. "data": {
  5. "info": {
  6. "homeTeamName": "霍芬海姆",
  7. "homeTeamLogo": "http://image.suning.cn/uimg/SDSP/team/285.png?v=1498717894170",
  8. "homeTeamId": 285,
  9. "homeTeamScore": 1,
  10. "guestTeamName": "勒沃库森",
  11. "guestTeamLogo": "http://image.suning.cn/uimg/SDSP/team/288.png?v=1498717892874",
  12. "guestTeamId": 288,
  13. "guestTeamScore": 2,
  14. "matchAreaName": "本特戈蒂球场",
  15. "playDuration": 39
  16. },
  17. "beforeData": {
  18. "homeLastFiveMatch": {
  19. "win": 1,
  20. "draw": 1,
  21. "lose": 3
  22. },
  23. "guestLastFiveMatch": {
  24. "win": 1,
  25. "draw": 1,
  26. "lose": 3
  27. },
  28. "pkData": {
  29. "draw": 0,
  30. "guestTeamId": "137",
  31. "homeTeamId": "133",
  32. "lose": 4,
  33. "win": 1
  34. },
  35. "homeRank": "13",
  36. "guestRank": "10",
  37. "homeGoalsName":"乔纳森",
  38. "guestGoalsName":"扎哈维"
  39. },
  40. "liveEvent": [
  41. {
  42. "eventTimeMinSec": "2:46",
  43. "eventPlayerName": "鲁文·佩雷斯",
  44. "relatePlayerName": "",
  45. "relatePlayerId": "",
  46. "teamFlg": "1",
  47. "eventTimeStamp": "1551729831",
  48. "eventPlayerNum": "21",
  49. "eventTimeExtra": "0",
  50. "teamId": "231",
  51. "externalId": "1382575",
  52. "eventPlayerId": "5162",
  53. "relatePlayerNum": "",
  54. "halfCode": "1",
  55. "event": "22",
  56. "sec": "46",
  57. "updateDttm": "2019-03-05 06:58:56",
  58. "eventName": "犯规",
  59. "eventTime": "3"
  60. },
  61. {
  62. "eventTimeMinSec": "3:36",
  63. "eventPlayerName": "维佐",
  64. "relatePlayerName": "",
  65. "relatePlayerId": "",
  66. "teamFlg": "2",
  67. "eventTimeStamp": "1551729880",
  68. "eventPlayerNum": "14",
  69. "eventTimeExtra": "0",
  70. "teamId": "1216",
  71. "externalId": "1382593",
  72. "eventPlayerId": "4739",
  73. "relatePlayerNum": "",
  74. "halfCode": "1",
  75. "event": "26",
  76. "sec": "36",
  77. "updateDttm": "2019-03-05 06:58:57",
  78. "eventName": "抢断成功",
  79. "eventTime": "4"
  80. }
  81. ],
  82. "scoreAnalysis": [
  83. {
  84. "homeData": 43,
  85. "guestData": 57,
  86. "homeAverageData": 42,
  87. "guestAverageData": 52,
  88. "title": "控球率",
  89. "flag": 1
  90. },
  91. {
  92. "homeData": 1,
  93. "guestData": 2,
  94. "homeAverageData": 2,
  95. "guestAverageData": 2,
  96. "title": "进球",
  97. "flag": 2
  98. },
  99. {
  100. "homeData": 110,
  101. "guestData": 120,
  102. "homeAverageData": 142,
  103. "guestAverageData": 152,
  104. "title": "传球",
  105. "flag": 9
  106. }
  107. ]
  108. }
  109. }

4.2 参数详解

4.2.1 info对象

比赛基础信息,该接口涉及到的中台接口mock地址为比赛基础信息

  1. "info": {
  2. "homeTeamName": "霍芬海姆",
  3. "homeTeamLogo": "http://image.suning.cn/uimg/SDSP/team/285.png?v=1498717894170",
  4. "homeTeamId": 285,
  5. "homeTeamScore": 1,
  6. "guestTeamName": "勒沃库森",
  7. "guestTeamLogo": "http://image.suning.cn/uimg/SDSP/team/288.png?v=1498717892874",
  8. "guestTeamId": 288,
  9. "guestTeamScore": 2,
  10. "matchAreaName": "本特戈蒂球场",
  11. "playDuration": 39
  12. }
字段 名称 类型 对应中台接口的字段名称
homeTeamName 主队名称 String homeTeamName
homeTeamLogo 主队logo String homeTeamLogo
homeTeamId 主队id Long homeTeamId
homeTeamScore 主队比分 Long homeTeamScore
guestTeamName 客队名称 String guestTeamName
guestTeamLogo 客队logo String guestTeamLogo
guestTeamId 客队id Long guestTeamId
guestTeamScore 客队比分 Long guestTeamScore
matchAreaName 球场 String matchVenue对象中的areaNameCn字段(文档中未添加)
playDuration 比赛进度 Long 通过matchExtraInfo对象获取(文档中未添加) 详见附3数据JOSN及获取进度

4.2.2 beforeData对象

近5场数据及pk数据,涉及到的中台接口mock地址为历史5场数据球员统计

  1. "beforeData": {
  2. "homeLastFiveMatch": {
  3. "win": 1,
  4. "draw": 1,
  5. "lose": 3
  6. },
  7. "guestLastFiveMatch": {
  8. "win": 1,
  9. "draw": 1,
  10. "lose": 3
  11. },
  12. "pkData": {
  13. "draw": 0,
  14. "guestTeamId": 137,
  15. "homeTeamId": 133,
  16. "lose": 4,
  17. "win": 1
  18. },
  19. "homeRank": 13,
  20. "guestRank": 10,
  21. "homeGoalsName":"乔纳森",
  22. "guestGoalsName:":"扎哈维"
  23. }

4.2.3 liveEvent对象

比赛事件数据,中台mock地址为比赛事件,eventList集合。

  1. {
  2. "eventTimeMinSec": "2:46",
  3. "eventPlayerName": "鲁文·佩雷斯",
  4. "relatePlayerName": "",
  5. "relatePlayerId": "",
  6. "teamFlg": "1",
  7. "eventTimeStamp": "1551729831",
  8. "eventPlayerNum": "21",
  9. "eventTimeExtra": "0",
  10. "teamId": "231",
  11. "externalId": "1382575",
  12. "eventPlayerId": "5162",
  13. "relatePlayerNum": "",
  14. "halfCode": "1",
  15. "event": "22",
  16. "sec": "46",
  17. "updateDttm": "2019-03-05 06:58:56",
  18. "eventName": "犯规",
  19. "eventTime": "3"
  20. }

4.2.4 scoreAnalysis对象

赛后数据统计,该接口涉及到的中台接口mock地址为本场数据场均数据,具体见

  1. {
  2. "homeData": "43",
  3. "guestData": "57",
  4. "homeAverageData": "42",
  5. "guestAverageData": "52",
  6. "title": "控球率",
  7. "flag": "1"
  8. }
字段 名称 类型 对应本场数据中台字段 对应场均数据中台字段
homeData 主队数值 String 需要根据flag来判断
guestData 客队数值 String 需要根据flag来判断
homeAverageData 主队平均数值 String 需要根据flag来判断
guestAverageData 客队平均数值 String 需要根据flag来判断
title 数据名称 String guestTeamName 详见附2比赛数据类型对应表
flag 数据标记 String guestTeamLogo 详见附2比赛数据类型对应表

5. 附录

附1.比赛事件值列表

1.进球 2.点球进球 3.乌龙球 4.换上 5.黄牌 6.红牌 7.两黄变一红 8.点球未进 9.换下 10.助攻 12.点球大战进球 13.点球大战未进 14.射门 15.角球 16.头球 17.任意球 18.扑救 19.手球 20.争议 21.越位 22.犯规 23.判罚点球 24.盘带突破 25.花式技巧 26.抢断成功 27.VAR介入 28.伤退

附2.比赛数据类型对应表

mock地址为本场数据场均数据

比赛数据类型flag 对应本场数据接口字段 对应场均数据flag
1 射门 shotsNum 111 射门均值
2 黄牌 yellowCardsNum 117 黄牌均值
3 封堵 blockedNum 110 封堵均值
4 传球 passNum 114 传球均值
5 红牌 redCardsNum 118 红牌均值
6 抢断 wonTackle 115 抢断均值
7 控球率 possessionRate 1 控球率
8 点球 penaltiesNum 122 场均点球
9 任意球 freeKicksNum 123 场均任意球
10 射正 shotsTargetNum 112 射正均值
11 进球 goalNum 113 进球场均
12 犯规 foulsNum 119 犯规均值
13 越位 offsidesNum 120 场均越位
14 角球 cornersNum 121 场均角球
15 传球成功率 passPossession 27 传球成功率

场均数据接口flag列表:
1.控球率 2.进球次数 3.助攻次数 4.封堵次数 5.黄牌次数 6.红牌次数 7.射门次数 8.射正次数 9.传球次数 10.关键传球次数 11.传球成功数 12.越位次数 13.拦截次数 14.抢断次数 15.解围次数 16.犯规次数 17.被犯规次数 18.扑救次数 19.获得点球数 20.获得任意球数 21.角球数 22.被判点球数 23.被判任意球数 24.传中成功率(25/24计算) 25.击中门框次数 26.进球次数 27.传球成功率 45.失球数 110.封堵均值 111.射门均值 112.射正均值 113.进球均值 114.传球均值 115.抢断均值 116.解围均值 117.黄牌均值 118.红牌均值 119.犯规均值 120.场均越位 121.场均角球 122.场均点球 123.场均任意球 107.球队平均年龄

附3.数据JOSN及获取进度表

matchExtraInfo对象json

  1. // fh 上半场
  2. // sh 下半场
  3. // efh 补时上半场
  4. // esh 补时下半场
  5. "matchExtraInfo": {
  6. "updater": "JOB_RUNNER",
  7. "efhMinLength": 0,
  8. "shSecLength": 2,
  9. "shEndTime": 1553633934000,
  10. "createDttm": 1553627052000,
  11. "fhStartTime": 1553627027000,
  12. "eshMinLength": 0,
  13. "fhSecLength": 2,
  14. "shMinLength": 49,
  15. "efhSecLength": 0,
  16. "creator": "JOB_RUNNER",
  17. "eshSecLength": 0,
  18. "fhEndTime": 1553629909000,
  19. "shStartTime": 1553630992000,
  20. "updateDttm": 1553637536000,
  21. "matchId": 263696,
  22. "fhMinLength": 48
  23. }
  1. // 获取比赛进度,上半场不超过45分钟,全场不超过90分钟
  2. public long getPlayDuration(){
  3. long playDuration = 0;
  4. // 为0则表示下半场未开始
  5. if (matchExtraInfo.getShStartTime() == 0) {
  6. // 上半场开始时间也为0,则返回0
  7. if (matchExtraInfo.getFhStartTime() == 0) {
  8. return playDuration;
  9. }
  10. playDuration = (System.currentTimeMillis() - matchExtraInfo.getFhStartTime()) / 1000 / 60;
  11. // 上半场的时间进度为1~45分钟
  12. playDuration = playDuration == 0 ? 1 : playDuration;
  13. playDuration = playDuration > 45 ? 45 : playDuration;
  14. } else {
  15. playDuration = 45 + (System.currentTimeMillis() - matchExtraInfo.getShStartTime()) / 1000 / 60;
  16. // 下半场的时间进度为46~90分钟
  17. playDuration = playDuration == 45 ? 46 : playDuration;
  18. playDuration = playDuration > 90 ? 90 : playDuration;
  19. }
  20. return playDuration;
  21. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注