playerMange.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704
  1. package service
  2. import (
  3. "context"
  4. jsoniter "github.com/json-iterator/go"
  5. cutils "github.com/mhaya/extend/utils"
  6. "github.com/mhaya/game/game_cluster/internal/code"
  7. "github.com/mhaya/game/game_cluster/internal/constant"
  8. "github.com/mhaya/game/game_cluster/internal/data"
  9. "github.com/mhaya/game/game_cluster/internal/mdb"
  10. "github.com/mhaya/game/game_cluster/internal/mdb/eventmodels"
  11. "github.com/mhaya/game/game_cluster/internal/mdb/models"
  12. "github.com/mhaya/game/game_cluster/nodes/webadmin/common"
  13. "github.com/mhaya/game/game_cluster/nodes/webadmin/entity"
  14. mhayaLogger "github.com/mhaya/logger"
  15. "go.mongodb.org/mongo-driver/mongo"
  16. "gorm.io/gorm"
  17. )
  18. var (
  19. json = jsoniter.ConfigCompatibleWithStandardLibrary
  20. )
  21. type PlayerManage struct {
  22. db *mongo.Database
  23. }
  24. func NewPlayerManage() *PlayerManage {
  25. return &PlayerManage{
  26. db: mdb.MDB,
  27. }
  28. }
  29. // 获取玩家列表
  30. func (a *PlayerManage) List(ctx context.Context, req entity.PlayerListReq) (*entity.PlayerListResp, *code.Result) {
  31. page, pageSize := checkPageParam(req.Page, req.Size)
  32. var registerRecords []*eventmodels.UserRegisterEventContent
  33. where := &eventmodels.UserRegisterEventContent{
  34. UserBasic: eventmodels.UserBasic{
  35. UserId: req.UserName,
  36. TgId: req.OpenId,
  37. XId: req.XID,
  38. ParentUserId: req.Pid,
  39. TonWall: req.TonWall,
  40. Email: req.Email,
  41. UserStatus: req.Status,
  42. },
  43. }
  44. db := mdb.LogstashDB.Model(&eventmodels.UserRegisterEventContent{}).Where(where).Order("create_at")
  45. if req.LevelMin > 0 && req.LevelMax == 0 {
  46. db = db.Where("level >= ? and level <= ?", req.LevelMin, 1000) // 等级最大值 暂定1000
  47. }
  48. if req.LevelMin > 0 && req.LevelMax > 0 && req.LevelMin <= req.LevelMax {
  49. db = db.Where("level >= ? and level <= ?", req.LevelMin, req.LevelMax)
  50. }
  51. if req.JoinTimeMin > 0 && req.JoinTimeMax > 0 && req.JoinTimeMin <= req.JoinTimeMax {
  52. db = db.Where("create_at >= ? and create_at <= ?", req.JoinTimeMin, req.JoinTimeMax)
  53. }
  54. pages := Paginate(db, page, pageSize)
  55. err := db.Scopes(pages.Limit).Find(&registerRecords).Error
  56. if err != nil && err != gorm.ErrRecordNotFound {
  57. mhayaLogger.Warnf("List Find error:%v", err)
  58. return nil, common.NewResult(code.InternalError)
  59. }
  60. var results []*entity.PlayerListDetail
  61. for _, v := range registerRecords {
  62. updateRecord, codeResult := a.GetPlayerLastestUpdateRecord(v.UserName)
  63. if codeResult != nil {
  64. mhayaLogger.Warnf("List GetPlayerLastestUpdateRecord error:%v", codeResult)
  65. return nil, codeResult
  66. }
  67. loginRecord, codeResult := a.GetPlayerLastestLoginRecord(v.UserName)
  68. if codeResult != nil {
  69. mhayaLogger.Warnf("List GetPlayerLastestLoginRecord error:%v", codeResult)
  70. return nil, codeResult
  71. }
  72. results = append(results, &entity.PlayerListDetail{
  73. UserName: v.UserId,
  74. OpenId: func() string {
  75. if updateRecord == nil {
  76. return v.TgId
  77. }
  78. return updateRecord.TgId
  79. }(),
  80. NickName: func() string {
  81. if updateRecord == nil {
  82. return v.UserName
  83. }
  84. return updateRecord.UserName
  85. }(),
  86. Pid: func() string {
  87. if updateRecord == nil {
  88. return v.ParentUserId
  89. }
  90. return updateRecord.ParentUserId
  91. }(),
  92. XID: func() string {
  93. if updateRecord == nil {
  94. return v.XId
  95. }
  96. return updateRecord.XId
  97. }(),
  98. TonWall: func() string {
  99. if updateRecord == nil {
  100. return v.TonWall
  101. }
  102. return updateRecord.TonWall
  103. }(),
  104. Email: func() string {
  105. if updateRecord == nil {
  106. return v.Email
  107. }
  108. return updateRecord.Email
  109. }(),
  110. Level: func() int {
  111. if updateRecord == nil {
  112. return v.Level
  113. }
  114. return updateRecord.Level
  115. }(),
  116. Status: func() int {
  117. if updateRecord == nil {
  118. return v.UserStatus
  119. }
  120. return updateRecord.UserStatus
  121. }(),
  122. LoginTime: func() int64 {
  123. if loginRecord != nil {
  124. return loginRecord.CreateAt
  125. }
  126. return 0
  127. }(),
  128. LoginIP: func() string {
  129. if loginRecord != nil {
  130. return loginRecord.Ip
  131. }
  132. return ""
  133. }(),
  134. JoinIP: v.Ip,
  135. JoinTime: v.CreateAt,
  136. })
  137. }
  138. return &entity.PlayerListResp{
  139. Details: results,
  140. Total: pages.Count,
  141. }, nil
  142. }
  143. // 获取转盘实际抽奖次数
  144. func (a *PlayerManage) GetTurntableRuns(userName string) (int64, *code.Result) {
  145. turntableWhere := &eventmodels.TurntableEventContent{
  146. UserBasic: eventmodels.UserBasic{
  147. UserId: userName,
  148. },
  149. }
  150. turntableDb := mdb.LogstashDB.Model(&eventmodels.TurntableEventContent{}).Where(turntableWhere).Order("create_at")
  151. var turntableRuns int64
  152. err := turntableDb.Count(&turntableRuns).Error
  153. if err != nil {
  154. mhayaLogger.Warnf("GetTurntableRuns turntableRuns error:%v", err)
  155. return 0, common.NewResult(code.InternalError)
  156. }
  157. return turntableRuns, nil
  158. }
  159. // 获取邀请成功人数 status:查询的事件状态
  160. func (a *PlayerManage) GetSuccessfulInvitations(userName string, status int) (int64, *code.Result) {
  161. inviteWhere := &eventmodels.InviteEventContent{
  162. UserBasic: eventmodels.UserBasic{
  163. UserId: userName,
  164. },
  165. EventBasic: eventmodels.EventBasic{
  166. Status: status,
  167. },
  168. }
  169. inviteDb := mdb.LogstashDB.Model(&eventmodels.InviteEventContent{}).Where(inviteWhere).Order("create_at")
  170. var successfulInvitations int64
  171. err := inviteDb.Count(&successfulInvitations).Error
  172. if err != nil {
  173. mhayaLogger.Warnf("GetSuccessfulInvitations successfulInvitations error:%v", err)
  174. return 0, common.NewResult(code.InternalError)
  175. }
  176. return successfulInvitations, nil
  177. }
  178. // 获取提现次数 status:查询的事件状态 -1表示查询全部
  179. func (a *PlayerManage) GetWithdrawalCount(userName string, status int) (int64, *code.Result) {
  180. withdrawalWhere := &eventmodels.UserWithdrawEventContent{
  181. UserBasic: eventmodels.UserBasic{
  182. UserId: userName,
  183. },
  184. }
  185. if status != -1 {
  186. withdrawalWhere.Status = status
  187. }
  188. withdrawalDb := mdb.LogstashDB.Model(&eventmodels.UserWithdrawEventContent{}).Where(withdrawalWhere).Order("create_at")
  189. var withdrawals int64
  190. err := withdrawalDb.Count(&withdrawals).Error
  191. if err != nil {
  192. mhayaLogger.Warnf("GetWithdrawalCount withdrawals error:%v", err)
  193. return 0, common.NewResult(code.InternalError)
  194. }
  195. return withdrawals, nil
  196. }
  197. // 获取累计提现金额 currency:货币类型 status:查询的事件状态 -1表示查询全部
  198. func (a *PlayerManage) GetCumulativeWithdrawalAmount(userName, currency string, status int) (int64, *code.Result) {
  199. withdrawalAmountWhere := &eventmodels.UserWithdrawEventContent{
  200. UserBasic: eventmodels.UserBasic{
  201. UserId: userName,
  202. },
  203. Currency: currency,
  204. }
  205. if status != -1 {
  206. withdrawalAmountWhere.Status = status
  207. }
  208. var cumulativeWithdrawalAmount int64
  209. err := mdb.LogstashDB.Model(&eventmodels.UserWithdrawEventContent{}).Where(withdrawalAmountWhere).Pluck("SUM(amount) as total_amount", &cumulativeWithdrawalAmount).Error
  210. if err != nil {
  211. mhayaLogger.Warnf("GetCumulativeWithdrawalAmount Pluck currency error:%v", err)
  212. return 0, common.NewResult(code.InternalError)
  213. }
  214. return cumulativeWithdrawalAmount, nil
  215. }
  216. // 获取注册记录
  217. func (a *PlayerManage) GetRegisterRecord(userName string) (*eventmodels.UserRegisterEventContent, *code.Result) {
  218. var registerRecord *eventmodels.UserRegisterEventContent
  219. where := &eventmodels.UserRegisterEventContent{
  220. UserBasic: eventmodels.UserBasic{
  221. UserId: userName,
  222. },
  223. EventBasic: eventmodels.EventBasic{
  224. Status: 0,
  225. },
  226. }
  227. err := mdb.LogstashDB.Model(&eventmodels.UserRegisterEventContent{}).Where(where).First(&registerRecord).Error
  228. if err != nil && err != gorm.ErrRecordNotFound {
  229. mhayaLogger.Warnf("GetRegisterRecord First registerRecord error:%v", err)
  230. return nil, common.NewResult(code.InternalError)
  231. }
  232. if err == gorm.ErrRecordNotFound {
  233. return nil, nil
  234. }
  235. return registerRecord, nil
  236. }
  237. // 获取的是注册的总人数
  238. func (a *PlayerManage) GetPlayerTotalCount() (int64, *code.Result) {
  239. where := &eventmodels.UserRegisterEventContent{
  240. EventBasic: eventmodels.EventBasic{
  241. Status: 0,
  242. },
  243. }
  244. db := mdb.LogstashDB.Model(&eventmodels.UserRegisterEventContent{}).Where(where).Order("create_at")
  245. var count int64
  246. err := db.Count(&count).Error
  247. if err != nil {
  248. mhayaLogger.Warnf("GetPlayerTotalCount Count error:%v", err)
  249. return 0, common.NewResult(code.InternalError)
  250. }
  251. return count, nil
  252. }
  253. // 获取的是登录过的总人数 根据user_id去重
  254. func (a *PlayerManage) GetLoginedPlayerTotalCount() (int64, *code.Result) {
  255. where := &eventmodels.UserLoginEventContent{
  256. EventBasic: eventmodels.EventBasic{
  257. Status: 0,
  258. },
  259. }
  260. db := mdb.LogstashDB.Model(&eventmodels.UserLoginEventContent{}).Distinct("user_id").Where(where)
  261. var count int64
  262. err := db.Count(&count).Error
  263. if err != nil {
  264. mhayaLogger.Warnf("GetLoginedPlayerTotalCount Count error:%v", err)
  265. return 0, common.NewResult(code.InternalError)
  266. }
  267. return count, nil
  268. }
  269. // 获取最新的用户信息更新记录
  270. func (a *PlayerManage) GetPlayerLastestUpdateRecord(userName string) (*eventmodels.UserUpdateInfoEventContent, *code.Result) {
  271. var updateRecord *eventmodels.UserUpdateInfoEventContent
  272. updateWhere := &eventmodels.UserUpdateInfoEventContent{
  273. UserBasic: eventmodels.UserBasic{UserId: userName},
  274. }
  275. err := mdb.LogstashDB.Model(&eventmodels.UserUpdateInfoEventContent{}).Where(updateWhere).Order("create_at desc").First(&updateRecord).Error
  276. if err != nil && err != gorm.ErrRecordNotFound {
  277. mhayaLogger.Warnf("GetPlayerLastestUpdateRecord First updateRecord error:%v", err)
  278. return nil, common.NewResult(code.InternalError)
  279. }
  280. if err == gorm.ErrRecordNotFound {
  281. return nil, nil
  282. }
  283. return updateRecord, nil
  284. }
  285. // 获取用户的首次登录记录
  286. func (a *PlayerManage) GetPlayerFirstLoginRecord(userName string) (*eventmodels.UserLoginEventContent, *code.Result) {
  287. var loginRecord *eventmodels.UserLoginEventContent
  288. loginWhere := &eventmodels.UserLoginEventContent{
  289. UserBasic: eventmodels.UserBasic{
  290. UserId: userName,
  291. },
  292. }
  293. err := mdb.LogstashDB.Model(&eventmodels.UserLoginEventContent{}).Where(loginWhere).Order("create_at").First(&loginRecord).Error
  294. if err != nil && err != gorm.ErrRecordNotFound {
  295. mhayaLogger.Warnf("GetPlayerFirstLoginRecord First loginRecord error:%v", err)
  296. return nil, common.NewResult(code.InternalError)
  297. }
  298. if err == gorm.ErrRecordNotFound {
  299. return nil, nil
  300. }
  301. return loginRecord, nil
  302. }
  303. // 获取最新的用户登录记录
  304. func (a *PlayerManage) GetPlayerLastestLoginRecord(userName string) (*eventmodels.UserLoginEventContent, *code.Result) {
  305. var loginRecord *eventmodels.UserLoginEventContent
  306. loginWhere := &eventmodels.UserLoginEventContent{
  307. UserBasic: eventmodels.UserBasic{UserId: userName},
  308. }
  309. err := mdb.LogstashDB.Model(&eventmodels.UserLoginEventContent{}).Where(loginWhere).Order("create_at desc").First(&loginRecord).Error
  310. if err != nil && err != gorm.ErrRecordNotFound {
  311. mhayaLogger.Warnf("GetPlayerLastestLoginRecord First loginRecord error:%v", err)
  312. return nil, common.NewResult(code.InternalError)
  313. }
  314. if err == gorm.ErrRecordNotFound {
  315. return nil, nil
  316. }
  317. return loginRecord, nil
  318. }
  319. // 获取用户的注册记录
  320. func (a *PlayerManage) GetPlayerRegisterRecord(userName string) (*eventmodels.UserRegisterEventContent, *code.Result) {
  321. var registerRecord *eventmodels.UserRegisterEventContent
  322. where := &eventmodels.UserRegisterEventContent{
  323. UserBasic: eventmodels.UserBasic{UserId: userName},
  324. }
  325. err := mdb.LogstashDB.Model(&eventmodels.UserRegisterEventContent{}).Where(where).First(&registerRecord).Error
  326. if err != nil && err != gorm.ErrRecordNotFound {
  327. mhayaLogger.Warnf("GetPlayerRegisterRecord First registerRecord error:%v", err)
  328. return nil, common.NewResult(code.InternalError)
  329. }
  330. if err == gorm.ErrRecordNotFound {
  331. return nil, nil
  332. }
  333. return registerRecord, nil
  334. }
  335. // 获取玩家详情
  336. func (a *PlayerManage) PlayerInfo(ctx context.Context, req entity.PlayerInfoReq) (*entity.PlayerInfoResp, *code.Result) {
  337. updateRecord, codeResult := a.GetPlayerLastestUpdateRecord(req.UserName)
  338. if codeResult != nil {
  339. mhayaLogger.Warnf("PlayerInfo GetPlayerLastestUpdateRecord error:%v", codeResult)
  340. return nil, codeResult
  341. }
  342. var registerRecord *eventmodels.UserRegisterEventContent
  343. if updateRecord == nil {
  344. record, codeResult := a.GetPlayerRegisterRecord(req.UserName)
  345. if codeResult != nil {
  346. mhayaLogger.Warnf("PlayerInfo GetPlayerRegisterRecord error:%v", codeResult)
  347. return nil, codeResult
  348. }
  349. if record == nil {
  350. mhayaLogger.Warnf("PlayerInfo registerRecord:%v", record)
  351. return nil, nil
  352. }
  353. registerRecord = record
  354. }
  355. loginRecord, codeResult := a.GetPlayerLastestLoginRecord(req.UserName)
  356. if codeResult != nil {
  357. mhayaLogger.Warnf("PlayerInfo GetPlayerLastestLoginRecord error:%v", codeResult)
  358. return nil, codeResult
  359. }
  360. return &entity.PlayerInfoResp{
  361. UserName: func() string {
  362. if updateRecord != nil {
  363. return updateRecord.UserId
  364. }
  365. if registerRecord != nil {
  366. return registerRecord.UserId
  367. }
  368. return ""
  369. }(),
  370. OpenId: func() string {
  371. if updateRecord != nil {
  372. return updateRecord.TgId
  373. }
  374. if registerRecord != nil {
  375. return registerRecord.TgId
  376. }
  377. return ""
  378. }(),
  379. NickName: func() string {
  380. if updateRecord != nil {
  381. return updateRecord.UserName
  382. }
  383. if registerRecord != nil {
  384. return registerRecord.UserName
  385. }
  386. return ""
  387. }(),
  388. Pid: func() string {
  389. if updateRecord != nil {
  390. return updateRecord.ParentUserId
  391. }
  392. if registerRecord != nil {
  393. return registerRecord.ParentUserId
  394. }
  395. return ""
  396. }(),
  397. XID: func() string {
  398. if updateRecord != nil {
  399. return updateRecord.XId
  400. }
  401. if registerRecord != nil {
  402. return registerRecord.XId
  403. }
  404. return ""
  405. }(),
  406. TonWall: func() string {
  407. if updateRecord != nil {
  408. return updateRecord.TonWall
  409. }
  410. if registerRecord != nil {
  411. return registerRecord.TonWall
  412. }
  413. return ""
  414. }(),
  415. Email: func() string {
  416. if updateRecord != nil {
  417. return updateRecord.Email
  418. }
  419. if registerRecord != nil {
  420. return registerRecord.Email
  421. }
  422. return ""
  423. }(),
  424. Level: func() int {
  425. if updateRecord != nil {
  426. return updateRecord.Level
  427. }
  428. if registerRecord != nil {
  429. return registerRecord.Level
  430. }
  431. return 0
  432. }(),
  433. Status: func() int {
  434. if updateRecord != nil {
  435. return updateRecord.UserStatus
  436. }
  437. if registerRecord != nil {
  438. return registerRecord.UserStatus
  439. }
  440. return 0
  441. }(),
  442. LoginTime: func() int64 {
  443. if loginRecord != nil {
  444. return loginRecord.CreateAt
  445. }
  446. return 0
  447. }(),
  448. LoginIP: func() string {
  449. if loginRecord != nil {
  450. return loginRecord.Ip
  451. }
  452. return ""
  453. }(),
  454. JoinIP: func() string {
  455. if registerRecord != nil {
  456. return registerRecord.Ip
  457. }
  458. return ""
  459. }(),
  460. JoinTime: func() int64 {
  461. if registerRecord != nil {
  462. return registerRecord.CreateAt
  463. }
  464. return 0
  465. }(),
  466. Avatar: "",
  467. IsRobot: func() int {
  468. if updateRecord != nil && updateRecord.IsRobot {
  469. return 1
  470. }
  471. if registerRecord != nil && registerRecord.IsRobot {
  472. return 1
  473. }
  474. return 0
  475. }(),
  476. IsLeader: func() int {
  477. if updateRecord != nil && updateRecord.IsLeader {
  478. return 1
  479. }
  480. return 0
  481. }(),
  482. IsVip: func() int {
  483. if updateRecord != nil && updateRecord.IsVip {
  484. return 1
  485. }
  486. return 0
  487. }(),
  488. Successions: loginRecord.ContinuousDays,
  489. MaxSuccessions: loginRecord.ContinuousDaysMax,
  490. PrevTime: func() int64 {
  491. if loginRecord != nil {
  492. return loginRecord.CreateAt
  493. }
  494. return 0
  495. }(),
  496. UpdateTime: func() int64 {
  497. if updateRecord != nil {
  498. return updateRecord.CreateAt
  499. }
  500. return 0
  501. }(),
  502. IsDrawShare: 0, // TODO
  503. DrawShareTime: 0, // TODO
  504. FirstReward: 0, // TODO
  505. // TODO 其他玩家信息
  506. }, nil
  507. }
  508. // 获取玩家中奖记录
  509. func (a *PlayerManage) RewardList(ctx context.Context, req entity.RewardListReq) (*entity.RewardListResp, *code.Result) {
  510. page, pageSize := checkPageParam(req.Page, req.Size)
  511. var rewardRecords []*eventmodels.UserRewardEventContent
  512. where := &eventmodels.UserRewardEventContent{
  513. UserBasic: eventmodels.UserBasic{
  514. UserId: req.UserName,
  515. },
  516. Source: models.SourceDraw,
  517. }
  518. db := mdb.LogstashDB.Model(&eventmodels.UserRewardEventContent{}).Where(where).Order("create_at")
  519. if req.StartTime > 0 && req.EndTime > 0 && req.StartTime <= req.EndTime {
  520. db = db.Where("create_at >= ? and create_at <= ?", req.StartTime, req.EndTime)
  521. }
  522. pages := Paginate(db, page, pageSize)
  523. err := db.Scopes(pages.Limit).Find(&rewardRecords).Error
  524. if err != nil && err != gorm.ErrRecordNotFound {
  525. mhayaLogger.Warnf("RewardList Find error:%v", err)
  526. return nil, common.NewResult(code.InternalError)
  527. }
  528. var results []*entity.RewardListDetail
  529. for _, v := range rewardRecords {
  530. addReward := make([]*entity.ShowItemReward, 0, 8)
  531. addRewards := make([]eventmodels.ItemReward, 0, 8)
  532. if v.AddReward == "" {
  533. addRewards = nil
  534. } else {
  535. err := json.Unmarshal([]byte(v.AddReward), &addRewards)
  536. if err != nil {
  537. mhayaLogger.Warnf("RewardList Unmarshal v.AddReward error:%v", err)
  538. return nil, common.NewResult(code.InternalError)
  539. }
  540. }
  541. if addRewards == nil {
  542. addReward = nil
  543. } else {
  544. for _, item := range addRewards {
  545. addReward = append(addReward, a.packItemReward(item))
  546. }
  547. }
  548. var desc *entity.Desc
  549. if v.Desc != "" {
  550. descDraw := eventmodels.DescDraw{}
  551. err := json.Unmarshal([]byte(v.Desc), &descDraw)
  552. if err != nil {
  553. mhayaLogger.Warnf("RewardList Unmarshal v.Desc error:%v", err)
  554. return nil, common.NewResult(code.InternalError)
  555. }
  556. ret := make([]*entity.ShowItemReward, 0, 8)
  557. for _, item := range descDraw.Reward {
  558. ret = append(ret, a.packItemReward(item))
  559. }
  560. desc = &entity.Desc{
  561. ID: descDraw.ID,
  562. CurID: descDraw.CurID,
  563. Reward: ret,
  564. }
  565. }
  566. results = append(results, &entity.RewardListDetail{
  567. UserName: v.UserId,
  568. AddReward: addReward,
  569. Desc: desc,
  570. CreateTime: v.CreateAt,
  571. })
  572. }
  573. return &entity.RewardListResp{
  574. Details: results,
  575. Total: pages.Count,
  576. }, nil
  577. }
  578. func (a *PlayerManage) packItemReward(reward eventmodels.ItemReward) *entity.ShowItemReward {
  579. itemName := ""
  580. cfg, exist := data.ItemConfig.Get(reward.ItemID)
  581. if exist {
  582. itemName = cfg.ItemKey
  583. }
  584. return &entity.ShowItemReward{
  585. ItemBaseType: reward.ItemBaseType,
  586. ItemID: reward.ItemID,
  587. ItemName: itemName,
  588. Amount: func() float64 {
  589. if itemName == "u" || itemName == "ton" {
  590. return cutils.QuoInt64ByRatioToFloat64(int64(reward.Amount), constant.MoneyRatio)
  591. }
  592. return float64(reward.Amount)
  593. }(),
  594. }
  595. }