roll.go 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. // roll房
  2. package controllers
  3. import (
  4. "box-gm/models"
  5. "box-gm/utils"
  6. "encoding/json"
  7. "fmt"
  8. "log"
  9. "github.com/astaxie/beego"
  10. )
  11. type RollController struct {
  12. beego.Controller
  13. }
  14. func (c *RollController) Get() {
  15. userinfo := c.GetSession("user")
  16. if userinfo == nil {
  17. c.Ctx.Redirect(302, "/accountlogin")
  18. return
  19. }
  20. c.Data["username"] = userinfo.(*LoginInfo).Username
  21. c.Data["token"] = models.GetToken()
  22. userPermission := models.GetPermission(userinfo.(*LoginInfo).Username)
  23. if (userPermission & (1 << uint(models.ModelSystem))) == 0 {
  24. c.Ctx.Redirect(302, "/accountlogin")
  25. return
  26. }
  27. c.Data["AwardList"] = models.GetRollAwardInfo()
  28. c.Data["infoList"] = models.GetRollInfoList()
  29. c.TplName = "roll.tpl"
  30. }
  31. func (c *RollController) Post() {
  32. userinfo := c.GetSession("user")
  33. log.Printf("RollController Post userinfo[%v]", userinfo)
  34. if userinfo == nil {
  35. c.Ctx.Redirect(302, "/accountlogin")
  36. return
  37. }
  38. name := c.GetString("name")
  39. bandShareCode := c.GetString("bandShareCode")
  40. showStartTime := c.GetString("showStartTime")
  41. signupStartTime := c.GetString("signupStartTime")
  42. signupEndTime := c.GetString("signupEndTime")
  43. awardTime := c.GetString("awardTime")
  44. conditions := c.GetString("conditions")
  45. awardId, _ := c.GetInt("awardId")
  46. var _conditions []*models.RollConditionInfo
  47. err := json.Unmarshal([]byte(conditions), &_conditions)
  48. if err != nil {
  49. log.Printf("RollController Post conditions[%s] err[%v]", conditions, err)
  50. c.Data["json"] = &map[string]interface{}{"status": false, "info": err.Error()}
  51. c.ServeJSON()
  52. return
  53. }
  54. itemIdList := models.GetRollAwardItemIdList(awardId)
  55. if itemIdList == nil {
  56. log.Printf("RollController Post awardId[%d] 奖励列表空", awardId)
  57. c.Data["json"] = &map[string]interface{}{"status": false, "info": "奖励列表空"}
  58. c.ServeJSON()
  59. return
  60. }
  61. // 奖励方案道具列表
  62. u := new(models.RollInfo)
  63. u.Id = models.CreateRollId()
  64. u.Name = name
  65. u.BandShareCode = bandShareCode
  66. u.ShowStartTime = utils.GetTime64(showStartTime)
  67. u.SignupStartTime = utils.GetTime64(signupStartTime)
  68. u.SignupEndTime = utils.GetTime64(signupEndTime)
  69. u.AwardTime = utils.GetTime64(awardTime)
  70. u.Conditions = _conditions
  71. u.ItemIdList = itemIdList
  72. err = models.AddRollInfo(u)
  73. if err != nil {
  74. c.Data["json"] = &map[string]interface{}{"status": false, "info": err.Error()}
  75. c.ServeJSON()
  76. return
  77. }
  78. c.Data["json"] = &map[string]interface{}{"status": true, "info": "新增roll房成功"}
  79. c.ServeJSON()
  80. }
  81. func (c *RollController) Put() {
  82. userinfo := c.GetSession("user")
  83. if userinfo == nil {
  84. c.Ctx.Redirect(302, "/accountlogin")
  85. return
  86. }
  87. id, _ := c.GetInt("id")
  88. log.Printf("RollController Put id[%d]", id)
  89. hf := models.GetRollInfoById(id)
  90. if hf == nil {
  91. c.Data["json"] = &map[string]interface{}{"status": false, "info": "修改失败:奖池方案不存在"}
  92. c.ServeJSON()
  93. return
  94. }
  95. name := c.GetString("name")
  96. bandShareCode := c.GetString("bandShareCode")
  97. showStartTime := c.GetString("showStartTime")
  98. signupStartTime := c.GetString("signupStartTime")
  99. signupEndTime := c.GetString("signupEndTime")
  100. awardTime := c.GetString("awardTime")
  101. conditions := c.GetString("conditions")
  102. awardId, _ := c.GetInt("awardId")
  103. var _conditions []*models.RollConditionInfo
  104. err := json.Unmarshal([]byte(conditions), &_conditions)
  105. if err != nil {
  106. log.Printf("RollController Post conditions[%s] err[%v]", conditions, err)
  107. c.Data["json"] = &map[string]interface{}{"status": false, "info": err.Error()}
  108. c.ServeJSON()
  109. return
  110. }
  111. itemIdList := models.GetRollAwardItemIdList(awardId)
  112. if itemIdList == nil {
  113. log.Printf("RollController Post awardId[%d] 奖励列表空", awardId)
  114. c.Data["json"] = &map[string]interface{}{"status": false, "info": "奖励列表空"}
  115. c.ServeJSON()
  116. return
  117. }
  118. hf.Name = name
  119. hf.BandShareCode = bandShareCode
  120. hf.ShowStartTime = utils.GetTime64(showStartTime)
  121. hf.SignupStartTime = utils.GetTime64(signupStartTime)
  122. hf.SignupEndTime = utils.GetTime64(signupEndTime)
  123. hf.AwardTime = utils.GetTime64(awardTime)
  124. hf.Conditions = _conditions
  125. hf.ItemIdList = itemIdList
  126. err = models.UpdateRollInfo(hf)
  127. if err != nil {
  128. c.Data["json"] = &map[string]interface{}{"status": false, "info": err}
  129. c.ServeJSON()
  130. return
  131. }
  132. c.Data["json"] = &map[string]interface{}{"status": true, "info": fmt.Sprintf("修改roll房[%d]成功", id)}
  133. c.ServeJSON()
  134. }
  135. func (c *RollController) Delete() {
  136. userinfo := c.GetSession("user")
  137. if userinfo == nil {
  138. c.Ctx.Redirect(302, "/accountlogin")
  139. return
  140. }
  141. id, _ := c.GetInt("id")
  142. log.Printf("RollController Post Delete id[%d]", id)
  143. hf := models.GetRollInfoById(id)
  144. if hf == nil {
  145. c.Data["json"] = &map[string]interface{}{"status": false, "info": "修改失败:roll房不存在"}
  146. c.ServeJSON()
  147. return
  148. }
  149. models.DelRollInfoById(id)
  150. c.Data["json"] = &map[string]interface{}{"status": true, "info": "删除roll房成功"}
  151. c.ServeJSON()
  152. }