appeal.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. package http
  2. import (
  3. "strconv"
  4. "strings"
  5. "go-common/app/service/main/account-recovery/model"
  6. "go-common/library/ecode"
  7. "go-common/library/log"
  8. bm "go-common/library/net/http/blademaster"
  9. "go-common/library/net/http/blademaster/middleware/permit"
  10. )
  11. // queryAccount is verify account is exist
  12. func queryAccount(c *bm.Context) {
  13. params := new(model.QueryInfoReq)
  14. if err := c.Bind(params); err != nil {
  15. return
  16. }
  17. c.JSON(srv.QueryAccount(c, params))
  18. }
  19. // commitInfo is commit appeal info
  20. func commitInfo(c *bm.Context) {
  21. uinfo := new(model.UserInfoReq)
  22. if err := c.Bind(uinfo); err != nil {
  23. return
  24. }
  25. uinfo.LoginAddrs = strings.TrimSpace(uinfo.LoginAddrs)
  26. uinfo.RegAddr = strings.TrimSpace(uinfo.RegAddr)
  27. uinfo.Unames = strings.TrimSpace(uinfo.Unames)
  28. uinfo.Pwds = strings.TrimSpace(uinfo.Pwds)
  29. uinfo.Phones = strings.TrimSpace(uinfo.Phones)
  30. uinfo.Emails = strings.TrimSpace(uinfo.Emails)
  31. uinfo.SafeAnswer = strings.TrimSpace(uinfo.SafeAnswer)
  32. uinfo.LinkMail = strings.TrimSpace(uinfo.LinkMail)
  33. uinfo.Captcha = strings.TrimSpace(uinfo.Captcha)
  34. uinfo.CardID = strings.TrimSpace(uinfo.CardID)
  35. uinfo.Business = strings.TrimSpace(uinfo.Business)
  36. bizMap := make(map[string]string)
  37. req := c.Request.Form
  38. uinfo.BusinessMap = bizMap
  39. extraArgs := model.BusinessExtraArgs(uinfo.Business)
  40. for _, k := range extraArgs {
  41. bizMap[k] = req.Get(k)
  42. }
  43. c.JSON(nil, srv.CommitInfo(c, uinfo))
  44. }
  45. // queryConWithBusiness query with business
  46. func queryConWithBusiness(business string) func(*bm.Context) {
  47. return func(c *bm.Context) {
  48. params := new(model.QueryRecoveryInfoReq)
  49. if err := c.Bind(params); err != nil {
  50. return
  51. }
  52. params.Bussiness = business
  53. if perms, ok := c.Get(permit.CtxPermissions); ok {
  54. for _, p := range perms.([]string) {
  55. if p == "ACCOUNT_RECOVERY_ADVANCED" {
  56. params.IsAdvanced = true
  57. }
  58. }
  59. }
  60. req := c.Request
  61. if inStatus := req.Form.Get("status"); inStatus != "" {
  62. status, err := strconv.ParseInt(inStatus, 10, 64)
  63. if err != nil {
  64. log.Error("Invalid status: %s: %+v", inStatus, err)
  65. status = 0
  66. }
  67. params.Status = &status
  68. }
  69. if inGame := req.Form.Get("game"); inGame != "" {
  70. game, err := strconv.ParseInt(inGame, 10, 64)
  71. if err != nil {
  72. log.Error("Invalid game: %s: %+v", inGame, err)
  73. game = 0
  74. }
  75. params.Game = &game
  76. }
  77. if params.Size <= 0 {
  78. params.Size = 50
  79. }
  80. c.JSON(srv.QueryCon(c, params))
  81. }
  82. }
  83. // judge is reject or agree one operation
  84. func judge(c *bm.Context) {
  85. req := new(model.JudgeReq)
  86. if err := c.Bind(req); err != nil {
  87. return
  88. }
  89. c.JSON(nil, srv.Judge(c, req))
  90. }
  91. // batchJudge reject or agree more operation
  92. func batchJudge(c *bm.Context) {
  93. req := new(model.BatchJudgeReq)
  94. if err := c.Bind(req); err != nil {
  95. return
  96. }
  97. split := strings.Split(req.Rids, ",")
  98. rids := make([]int64, 0, len(split))
  99. for _, v := range split {
  100. rid, err := strconv.ParseInt(v, 10, 64)
  101. if err != nil {
  102. c.JSON(nil, err)
  103. return
  104. }
  105. rids = append(rids, rid)
  106. }
  107. req.RidsAry = rids
  108. c.JSON(nil, srv.BatchJudge(c, req))
  109. }
  110. // getCaptchaMail
  111. func getCaptchaMail(c *bm.Context) {
  112. req := new(model.CaptchaMailReq)
  113. if err := c.Bind(req); err != nil {
  114. return
  115. }
  116. if !strings.Contains(req.LinkMail, "@") {
  117. c.JSON(nil, ecode.RequestErr)
  118. return
  119. }
  120. if req.Mid <= 0 {
  121. c.JSON(nil, ecode.RequestErr)
  122. return
  123. }
  124. var err error
  125. state, err := srv.GetCaptchaMail(c, req)
  126. c.JSON(map[string]int64{
  127. "state": state,
  128. }, err)
  129. }
  130. func parseMid(midStr string) (mid int64) {
  131. if len(midStr) == 0 {
  132. return 0
  133. }
  134. mid, err := strconv.ParseInt(midStr, 10, 64)
  135. if err != nil {
  136. return 0
  137. }
  138. return
  139. }
  140. func verifyCode(c *bm.Context) {
  141. var err error
  142. arg := new(struct {
  143. Token string `form:"token" validate:"required"`
  144. Code string `form:"code" validate:"required"` //验证码
  145. })
  146. if err = c.Bind(arg); err != nil {
  147. return
  148. }
  149. if err = srv.Verify(c, arg.Token, arg.Code); err != nil {
  150. c.JSON(nil, ecode.CreativeGeetestErr)
  151. return
  152. }
  153. c.JSON(nil, err)
  154. }
  155. func webToken(c *bm.Context) {
  156. c.JSON(srv.WebToken(c))
  157. }
  158. func compareInfo(c *bm.Context) {
  159. rid := parseMid(c.Request.Form.Get("rid"))
  160. if rid <= 0 {
  161. c.JSON(nil, ecode.RequestErr)
  162. return
  163. }
  164. c.JSON(nil, srv.CompareInfo(c, rid))
  165. }
  166. func sendMail(c *bm.Context) {
  167. req := new(model.SendMailReq)
  168. if err := c.Bind(req); err != nil {
  169. return
  170. }
  171. if req.RID <= 0 {
  172. c.JSON(nil, ecode.RequestErr)
  173. return
  174. }
  175. c.JSON(nil, srv.SendMail(c, req))
  176. }
  177. // gameList game list
  178. func gameList(c *bm.Context) {
  179. mids := c.Request.Form.Get("mids")
  180. if mids == "" {
  181. c.JSON(nil, ecode.RequestErr)
  182. return
  183. }
  184. c.JSON(srv.GameList(c, mids))
  185. }