infofileuploadlogic.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package logic
  2. import (
  3. IC "app.yhyue.com/moapp/jyInfo/rpc/consumer/init"
  4. model "app.yhyue.com/moapp/jyInfo/rpc/model/oss"
  5. "bytes"
  6. "context"
  7. "strings"
  8. "time"
  9. "app.yhyue.com/moapp/jyInfo/rpc/consumer/consumerinfo"
  10. "app.yhyue.com/moapp/jyInfo/rpc/consumer/internal/svc"
  11. mc "app.yhyue.com/moapp/jybase/common"
  12. "github.com/zeromicro/go-zero/core/logx"
  13. )
  14. type InfoFileUploadLogic struct {
  15. ctx context.Context
  16. svcCtx *svc.ServiceContext
  17. logx.Logger
  18. }
  19. func NewInfoFileUploadLogic(ctx context.Context, svcCtx *svc.ServiceContext) *InfoFileUploadLogic {
  20. return &InfoFileUploadLogic{
  21. ctx: ctx,
  22. svcCtx: svcCtx,
  23. Logger: logx.WithContext(ctx),
  24. }
  25. }
  26. // 上传附件
  27. func (l *InfoFileUploadLogic) InfoFileUpload(in *consumerinfo.InfoFileUploadReq) (*consumerinfo.InfoFileUploadResp, error) {
  28. var resp consumerinfo.InfoFileUploadResp
  29. //model.InitOss()
  30. key := model.GetHashKey(in.File) + model.TypeByExt(in.FileName)
  31. t1 := time.Now()
  32. b, err := model.OssPutObject(key, bytes.NewReader(in.File), mc.InterfaceToStr(IC.C.Oss.OssBucketName))
  33. logx.Info("----------", time.Since(t1))
  34. fileSize := mc.InterfaceToStr(in.FileSize/1024) + "KB"
  35. if err == nil && b {
  36. var data consumerinfo.InfoFileUploadData
  37. data.Filename = in.FileName
  38. data.Size = fileSize
  39. data.Fid = key
  40. data.Ossurl = IC.C.Oss.OssUrl
  41. ftypes := strings.Split(in.FileName, ".")
  42. var ftype string
  43. if len(ftypes) > 0 && len(ftypes) == 2 {
  44. ftype = strings.Split(in.FileName, ".")[1]
  45. }
  46. data.Ftype = ftype
  47. resp.Data = &data
  48. return &resp, err
  49. }
  50. resp.ErrCode = -1
  51. resp.ErrMsg = "上传失败"
  52. return &resp, nil
  53. }