match_manager.go 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. package guess
  2. import (
  3. "bet24.com/log"
  4. "bet24.com/servers/common"
  5. guess "bet24.com/servers/micros/guess/proto"
  6. "encoding/json"
  7. "fmt"
  8. "sort"
  9. )
  10. // 获取赛事列表
  11. func (m *Manager) getGuessMatchList(matchType int) ([]guessMatchInfo, int) {
  12. var list []guess.Match
  13. params := fmt.Sprintf(`{"Type":%d}`, matchType)
  14. match := guess.OnGuessMsg(0, "guessGetMatchList", params)
  15. err := json.Unmarshal([]byte(match), &list)
  16. if err != nil {
  17. log.Debug("guess.guessGetMatchList json.Unmarshal error. err[%+v]", err)
  18. return nil, GuessMatch_Fail
  19. }
  20. var resp []guessMatchInfo
  21. for _, v := range list {
  22. rs := guessMatchInfo{
  23. SerialNumber: v.SerialNumber,
  24. Title: v.Title,
  25. Status: v.Status,
  26. guessTeam: m.homeAwaySplit(v.Teams),
  27. Result: v.Result,
  28. StartAt: common.TimeStampToString(int64(v.StartAt)),
  29. EndAt: common.TimeStampToString(int64(v.EndAt)),
  30. ShowStartAt: common.TimeStampToString(int64(v.ShowStartAt)),
  31. ShowEndAt: common.TimeStampToString(int64(v.ShowEndAt)),
  32. }
  33. resp = append(resp, rs)
  34. }
  35. sort.SliceStable(resp, func(i, j int) bool {
  36. if resp[i].StartAt == resp[j].StartAt {
  37. return resp[i].EndAt < resp[j].EndAt
  38. }
  39. return resp[i].StartAt > resp[j].StartAt
  40. })
  41. return resp, GuessMatch_Success
  42. }
  43. // 获取竞猜赛事
  44. func (m *Manager) guessGetMatchInfo(serialNumber string) string {
  45. params := fmt.Sprintf(`{"SerialNumber": "%s"}`, serialNumber)
  46. return guess.OnGuessMsg(0, "guessGetMatchInfo", params)
  47. }
  48. // 获取赛事信息(添加成功后,获取赛事写入内存 或 查数据)
  49. func (m *Manager) getGuessMatchInfo(serialNumber string) (guessMatch, int) {
  50. var data guess.Match
  51. var resp guessMatch
  52. info := m.guessGetMatchInfo(serialNumber)
  53. err := json.Unmarshal([]byte(info), &data)
  54. if err != nil {
  55. log.Debug("guess.guessGetMatchInfo json.Unmarshal error. err[%+v]", err)
  56. return resp, GuessMatch_Fail
  57. }
  58. resp.SerialNumber = data.SerialNumber
  59. resp.Title = data.Title
  60. resp.Status = data.Status
  61. resp.guessTeam = m.homeAwaySplit(data.Teams)
  62. resp.Result = data.Result
  63. resp.StartAt = common.TimeStampToString(int64(data.StartAt))
  64. resp.EndAt = common.TimeStampToString(int64(data.EndAt))
  65. resp.ShowStartAt = common.TimeStampToString(int64(data.ShowStartAt))
  66. resp.ShowEndAt = common.TimeStampToString(int64(data.ShowEndAt))
  67. resp.MatchBet = m.matchBet(data.Bets)
  68. return resp, GuessMatch_Success
  69. }
  70. // 赛事投注
  71. func (m *Manager) matchBet(bets []guess.Bet) MatchBet {
  72. var bet MatchBet
  73. for k, v := range bets {
  74. // 主队
  75. if k == 0 {
  76. bet.HomeBetId = v.Id
  77. bet.HomeBetName = v.Name
  78. bet.HomeBetOdds = v.Odds
  79. bet.HomeBetAmount = v.Amount
  80. bet.HomeBetIsWin = v.IsWin
  81. }
  82. // 平
  83. if k == 1 {
  84. bet.DrawBetId = v.Id
  85. bet.DrawBetName = v.Name
  86. bet.DrawBetOdds = v.Odds
  87. bet.DrawBetAmount = v.Amount
  88. bet.DrawBetIsWin = v.IsWin
  89. }
  90. // 客队
  91. if k == 2 {
  92. bet.AwayBetId = v.Id
  93. bet.AwayBetName = v.Name
  94. bet.AwayBetOdds = v.Odds
  95. bet.AwayBetAmount = v.Amount
  96. bet.AwayBetIsWin = v.IsWin
  97. }
  98. }
  99. return bet
  100. }
  101. // 添加赛事
  102. func (m *Manager) addGuessMatch(in addMatch_in) string {
  103. params, err := json.Marshal(in)
  104. if err != nil {
  105. log.Debug("manager.addGuessMatch json.Marshal error. err[%+v]", err)
  106. return ""
  107. }
  108. msg := guess.RetMsg{}
  109. data := guess.OnGuessMsg(0, "guessAddMatch", string(params))
  110. err = json.Unmarshal([]byte(data), &msg)
  111. if err != nil {
  112. log.Debug("guess.guessAddMatch json.Unmarshal error. err[%+v]", err)
  113. return ""
  114. }
  115. return msg.Message
  116. }
  117. // 编辑赛事
  118. func (m *Manager) editGuessMatch(in editMatch_in) int {
  119. params, err := json.Marshal(in)
  120. if err != nil {
  121. log.Debug("manager.editGuessMatch json.Marshal error. err[%+v]", err)
  122. return GuessMatch_Fail
  123. }
  124. msg := guess.RetMsg{}
  125. data := guess.OnGuessMsg(0, "guessUpdateMatch", string(params))
  126. err = json.Unmarshal([]byte(data), &msg)
  127. if err != nil {
  128. log.Debug("guess.guessUpdateMatch json.Unmarshal error. err[%+v]", err)
  129. return GuessMatch_Fail
  130. }
  131. return msg.RetCode
  132. }
  133. // 设置赛事状态
  134. func (m *Manager) setGuessMatchOpen(in setMatchOpen_in) int {
  135. params, err := json.Marshal(in)
  136. if err != nil {
  137. log.Debug("manager.setGuessMatchOpen json.Marshal error. err[%+v]", err)
  138. return GuessMatch_Fail
  139. }
  140. msg := guess.RetMsg{}
  141. data := guess.OnGuessMsg(0, "guessSetMatchOpen", string(params))
  142. err = json.Unmarshal([]byte(data), &msg)
  143. if err != nil {
  144. log.Debug("guess.guessSetMatchOpen json.Unmarshal error. err[%+v]", err)
  145. return GuessMatch_Fail
  146. }
  147. return msg.RetCode
  148. }
  149. // 派奖
  150. func (m *Manager) guessMatchAward(in matchAward_in) string {
  151. params, err := json.Marshal(in)
  152. if err != nil {
  153. log.Debug("manager.guessMatchAward json.Marshal error. err[%+v]", err)
  154. return ""
  155. }
  156. msg := guess.RetMsg{}
  157. data := guess.OnGuessMsg(0, "guessAward", string(params))
  158. err = json.Unmarshal([]byte(data), &msg)
  159. if err != nil {
  160. log.Debug("guess.guessAward json.Unmarshal error. err[%+v]", err)
  161. return ""
  162. }
  163. return msg.Message
  164. }
  165. // 设置结果
  166. func (m *Manager) guessSetResult(in setResult_in) int {
  167. params, err := json.Marshal(in)
  168. if err != nil {
  169. log.Debug("manager.guessSetResult json.Marshal error. err[%+v]", err)
  170. return GuessMatch_Fail
  171. }
  172. msg := guess.RetMsg{}
  173. data := guess.OnGuessMsg(0, "guessSetResult", string(params))
  174. err = json.Unmarshal([]byte(data), &msg)
  175. if err != nil {
  176. log.Debug("guess.guessSetResult json.Unmarshal error. err[%+v]", err)
  177. return GuessMatch_Fail
  178. }
  179. return msg.RetCode
  180. }
  181. // 添加赛事球队
  182. func (m *Manager) addGuessMatchTeam(in addMatchTeam_in) int {
  183. params, err := json.Marshal(in)
  184. if err != nil {
  185. log.Debug("manager.addGuessMatchTeam json.Marshal error. err[%+v]", err)
  186. return GuessMatch_Fail
  187. }
  188. msg := guess.RetMsg{}
  189. data := guess.OnGuessMsg(0, "guessAddMatchTeam", string(params))
  190. err = json.Unmarshal([]byte(data), &msg)
  191. if err != nil {
  192. log.Debug("guess.guessAddMatchTeam json.Unmarshal error. err[%+v]", err)
  193. return GuessMatch_Fail
  194. }
  195. return msg.RetCode
  196. }
  197. // 修改赛事球队
  198. func (m *Manager) editGuessMatchTeam(in editMatchTeam_in) int {
  199. params, err := json.Marshal(in)
  200. if err != nil {
  201. log.Debug("manager.editGuessMatchTeam json.Marshal error. err[%+v]", err)
  202. return GuessMatch_Fail
  203. }
  204. msg := guess.RetMsg{}
  205. data := guess.OnGuessMsg(0, "guessUpdateMatchTeam", string(params))
  206. err = json.Unmarshal([]byte(data), &msg)
  207. if err != nil {
  208. log.Debug("guess.guessUpdateMatchTeam json.Unmarshal error. err[%+v]", err)
  209. return GuessMatch_Fail
  210. }
  211. return msg.RetCode
  212. }
  213. // 添加赛事投注
  214. func (m *Manager) addGuessMatchBet(in addMatchBet_in) int {
  215. params, err := json.Marshal(in)
  216. if err != nil {
  217. log.Debug("manager.addGuessMatchBet json.Marshal error. err[%+v]", err)
  218. return GuessMatch_Fail
  219. }
  220. msg := guess.RetMsg{}
  221. data := guess.OnGuessMsg(0, "guessAddMatchBet", string(params))
  222. err = json.Unmarshal([]byte(data), &msg)
  223. if err != nil {
  224. log.Debug("guess.guessAddMatchBet json.Unmarshal error. err[%+v]", err)
  225. return GuessMatch_Fail
  226. }
  227. return msg.RetCode
  228. }
  229. // 修改赛事投注选项
  230. func (m *Manager) editGuessMatchBet(in editMatchBet_in) int {
  231. params, err := json.Marshal(in)
  232. if err != nil {
  233. log.Debug("manager.editGuessMatchBet json.Marshal error. err[%+v]", err)
  234. return GuessMatch_Fail
  235. }
  236. msg := guess.RetMsg{}
  237. data := guess.OnGuessMsg(0, "guessUpdateMatchBet", string(params))
  238. err = json.Unmarshal([]byte(data), &msg)
  239. if err != nil {
  240. log.Debug("guess.guessUpdateMatchBet json.Unmarshal error. err[%+v]", err)
  241. return GuessMatch_Fail
  242. }
  243. return msg.RetCode
  244. }