infofileuploadlogic.go 1.6 KB

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