bindmobilelogic.go 959 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package logic
  2. import (
  3. "context"
  4. "git.i2edu.net/i2/i2-bill-api/internal/svc"
  5. "git.i2edu.net/i2/i2-bill-api/internal/types"
  6. "git.i2edu.net/i2/go-zero/core/logx"
  7. )
  8. type BindMobileLogic struct {
  9. logx.Logger
  10. ctx context.Context
  11. svcCtx *svc.ServiceContext
  12. UserId int64
  13. SessionKey string
  14. }
  15. func NewBindMobileLogic(ctx context.Context, svcCtx *svc.ServiceContext) BindMobileLogic {
  16. return BindMobileLogic{
  17. Logger: logx.WithContext(ctx),
  18. ctx: ctx,
  19. svcCtx: svcCtx,
  20. }
  21. }
  22. func (l *BindMobileLogic) BindMobile(req types.BindMobileRequest) (*types.BindMobileResponse, error) {
  23. mobile, err := l.svcCtx.Wechat.DecryptMobile(l.SessionKey, req.EncryptedData, req.Iv)
  24. if err != nil {
  25. logx.Error(err)
  26. return nil, err
  27. }
  28. _, err = l.svcCtx.SqlConn.Exec(`update user set
  29. mobile = ? where id = ?`, mobile, l.UserId)
  30. if err != nil {
  31. logx.Error(err)
  32. return nil, err
  33. }
  34. return &types.BindMobileResponse{
  35. Id: l.UserId,
  36. }, nil
  37. }