interface.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package controller
  2. import (
  3. "ktogame/models"
  4. )
  5. func (uc *UserController) Reinput(user string) {
  6. var ui models.UserInfo
  7. ok, err := uc.engine.Id(user).Get(&ui)
  8. if err != nil {
  9. ErrResponse(uc.Controller, err)
  10. return
  11. }
  12. if !ok {
  13. ErrResponse(uc.Controller, "db get failed!")
  14. return
  15. }
  16. if ui.AvailableReinput < ModBase*Decimals {
  17. ErrResponse(uc.Controller, "no available reinput balance")
  18. return
  19. }
  20. ///update availableReinput by left in db
  21. ///update totalReinput
  22. left := uint64(ui.AvailableReinput) % (ModBase * Decimals)
  23. reinputValue := ui.AvailableReinput - float64(left)
  24. ui.AvailableReinput = float64(left)
  25. ui.TotalReinputed += reinputValue
  26. if ui.TotalReinputed >= CommunityLimit*Decimals {
  27. ui.State = CommunityUsers
  28. }
  29. _, err = uc.engine.ID(user).Cols("available_reinput").Update(&ui)
  30. if err != nil {
  31. ErrResponse(uc.Controller, err)
  32. return
  33. }
  34. _, err = uc.engine.ID(user).Cols("total_reinput").Update(&ui)
  35. if err != nil {
  36. ErrResponse(uc.Controller, err)
  37. return
  38. }
  39. ///update Recommendation Rewards
  40. ///update direct recommend rewards
  41. rewards := reinputValue * 10 / 100
  42. if ui.Direct != -1 {
  43. err := UpdateAvailableRewards(uc.engine, rewards, ui.Direct)
  44. if err != nil {
  45. ErrResponse(uc.Controller, err)
  46. return
  47. }
  48. }
  49. ///update indirect recommend rewards
  50. if ui.Indirect != -1 {
  51. err := UpdateAvailableRewards(uc.engine, rewards, ui.Indirect)
  52. if err != nil {
  53. ErrResponse(uc.Controller, err)
  54. return
  55. }
  56. }
  57. err = UpdateRewardsPool(uc.engine, reinputValue)
  58. if err != nil {
  59. ErrResponse(uc.Controller, err)
  60. return
  61. }
  62. err = UpdateSuperiorsPerformance(uc.engine, ui.Superiors, reinputValue)
  63. if err != nil {
  64. ErrResponse(uc.Controller, err)
  65. return
  66. }
  67. TxObjectResponse(uc.Controller, "success")
  68. }
  69. func (uc *UserController) GetSignature(user string) {
  70. var uinfo models.UserInfo
  71. uc.engine.Id(user).Get(&uinfo)
  72. }
  73. func (uc *UserController) GetUserInfo(amount uint64) {}
  74. func (uc *UserController) GetTeamList(user string) {}