account_controller.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package user
  2. import (
  3. logger "eta/eta_mini_ht_api/common/component/log"
  4. "eta/eta_mini_ht_api/controllers"
  5. "eta/eta_mini_ht_api/service/facade"
  6. "eta/eta_mini_ht_api/service/user"
  7. "github.com/google/uuid"
  8. "net/url"
  9. "strings"
  10. )
  11. type AccountController struct {
  12. controllers.BaseController
  13. }
  14. type RiskInfoTokenResp struct {
  15. Token string `json:"token"`
  16. }
  17. const (
  18. TraceHeaderKey = "X-Trace-ID"
  19. MDCTraceId = "traceId"
  20. )
  21. func (a *AccountController) Prepare() {
  22. var requestBody string
  23. uri := a.Ctx.Input.URI()
  24. method := a.Ctx.Input.Method()
  25. if method == "GET" {
  26. requestBody = a.Ctx.Request.RequestURI
  27. } else {
  28. requestBody, _ = url.QueryUnescape(string(a.Ctx.Input.RequestBody))
  29. }
  30. ip := a.Ctx.Input.IP()
  31. a.Ctx.Input.URL()
  32. traceId := uuid.NewString()
  33. traceId = strings.ReplaceAll(traceId, "-", "")
  34. a.Ctx.Output.Header(TraceHeaderKey, traceId)
  35. //// 设置MDC中的traceId
  36. a.Ctx.Input.SetData(MDCTraceId, traceId)
  37. // 清理MDC中的traceId
  38. logger.InfoWithTraceId(a.Ctx, "webhookRequest:[uri:%s, requestBody:%s, ip:%s]", uri, requestBody, ip)
  39. }
  40. // GetRiskInfoToken 获取风险测评问卷请求Token
  41. // @Summary 获取风险测评问卷请求Token
  42. // @Description 获取风险测评问卷请求Token
  43. // @Success 200 {object} controllers.BaseResponse
  44. // @router /v1/riskTestToken/ [get]
  45. func (a *AccountController) GetRiskInfoToken() {
  46. controllers.Wrap(&a.BaseController, func() (result *controllers.WrapData, err error) {
  47. result = a.InitWrapData("获取风险测评问卷请求Token失败")
  48. userInfo := a.Data["user"].(user.User)
  49. token, err := facade.GetRiskTestToken(userInfo.Mobile)
  50. if err != nil {
  51. logger.InfoWithTraceId(a.Ctx, err.Error())
  52. a.FailedResult("风险测评问卷请求token生成失败", result)
  53. return
  54. }
  55. result = a.InitWrapData("风险测评问卷请求token生成成功")
  56. a.SuccessResult("success", RiskInfoTokenResp{
  57. Token: token,
  58. }, result)
  59. return
  60. })
  61. }