bindmobilelogic.go 957 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  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 mobile = ? where id = ?`, mobile, l.UserId)
  29. if err != nil {
  30. logx.Error(err)
  31. return nil, err
  32. }
  33. return &types.BindMobileResponse{
  34. Id: l.UserId,
  35. }, nil
  36. }