get_qrcode_logic.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package whatsapp
  2. import (
  3. "context"
  4. "wechat-api/hook/aliyun"
  5. "wechat-api/internal/svc"
  6. "wechat-api/internal/types"
  7. "github.com/zeromicro/go-zero/core/logx"
  8. )
  9. type GetQrcodeLogic struct {
  10. logx.Logger
  11. ctx context.Context
  12. svcCtx *svc.ServiceContext
  13. }
  14. func NewGetQrcodeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetQrcodeLogic {
  15. return &GetQrcodeLogic{
  16. Logger: logx.WithContext(ctx),
  17. ctx: ctx,
  18. svcCtx: svcCtx}
  19. }
  20. func (l *GetQrcodeLogic) GetQrcode(req *types.GetQrcodeReq) (*types.GetQrcodeResp, error) {
  21. resp := types.GetQrcodeResp{}
  22. result, err := aliyun.GetCamsQrcode(*req.Phone, *req.WaId)
  23. l.Logger.Infof("result=%v err=%v\n", result, err)
  24. if err != nil {
  25. resp.Msg = err.Error()
  26. resp.Code = 1
  27. } else {
  28. if result.Body.Data != nil {
  29. for _, v := range result.Body.Data {
  30. generateQrImage := "PNG"
  31. if v.GenerateQrImage != nil {
  32. generateQrImage = *v.GenerateQrImage
  33. }
  34. resp.Data.Data = append(resp.Data.Data, types.Qrcode{
  35. Phone: *v.PhoneNumber,
  36. QrdlCode: *v.QrdlCode,
  37. GenerateQrImage: generateQrImage,
  38. PrefilledMessage: *v.PrefilledMessage,
  39. DeepLinkUrl: *v.DeepLinkUrl,
  40. QrImageUrl: *v.QrImageUrl,
  41. })
  42. }
  43. }
  44. resp.Data.Total = uint64(len(resp.Data.Data))
  45. }
  46. return &resp, nil
  47. }