send_code.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package handler
  2. import (
  3. "youngee_m_api/consts"
  4. "youngee_m_api/model/http_model"
  5. "youngee_m_api/service"
  6. "youngee_m_api/util"
  7. "github.com/gin-gonic/gin"
  8. "github.com/sirupsen/logrus"
  9. log "github.com/sirupsen/logrus"
  10. )
  11. // WrapSendCodeHandler
  12. // @BasePath /
  13. // SendCode godoc
  14. // @Summary sendCode 发送验证码
  15. // @Schemes
  16. // @Description 发送验证码,每次发送到邮箱
  17. // @Accept json
  18. // @Produce json
  19. // @Param req body http_model.SendCodeRequest true "发送验证码请求参数结构体"
  20. // @Success 200 {object} http_model.CommonResponse{data=http_model.SendCodeData} "发送验证码请求相应结构体"
  21. // @Router /sendCode [post]
  22. func WrapSendCodeHandler(ctx *gin.Context) {
  23. handler := newSendCodeHandler(ctx)
  24. BaseRun(handler)
  25. }
  26. func newSendCodeHandler(ctx *gin.Context) *SendCodeHandler {
  27. return &SendCodeHandler{
  28. req: http_model.NewSendCodeRequest(),
  29. resp: http_model.NewSendCodeResponse(),
  30. ctx: ctx,
  31. }
  32. }
  33. type SendCodeHandler struct {
  34. req *http_model.SendCodeRequest
  35. resp *http_model.CommonResponse
  36. ctx *gin.Context
  37. }
  38. func (h *SendCodeHandler) getRequest() interface{} {
  39. return h.req
  40. }
  41. func (h *SendCodeHandler) getContext() *gin.Context {
  42. return h.ctx
  43. }
  44. func (h *SendCodeHandler) getResponse() interface{} {
  45. return h.resp
  46. }
  47. func (h *SendCodeHandler) run() {
  48. data := http_model.SendCodeRequest{}
  49. data = *h.req
  50. // 1. 生成验证码
  51. vcode := service.SendCode.GetCode(h.ctx)
  52. // 2. 发送验证码
  53. //fmt.Println(vcode)
  54. err := service.SendCode.SendCode(h.ctx, data.Phone, vcode)
  55. if err != nil {
  56. logrus.Errorf("[SendeCodeHandler] call SetSession err:%+v\n", err)
  57. util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, "")
  58. log.Info("SendeCode fail,req:%+v", h.req)
  59. return
  60. }
  61. err = service.SendCode.SetSession(h.ctx, data.Phone, vcode)
  62. if err != nil {
  63. logrus.Errorf("[SendeCodeHandler] call SetSession err:%+v\n", err)
  64. util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, "")
  65. log.Info("SendeCode fail,req:%+v", h.req)
  66. return
  67. }
  68. h.resp.Message = "验证码发送成功,请注意查收"
  69. }
  70. func (h *SendCodeHandler) checkParam() error {
  71. return nil
  72. }