infofileuploadlogic.go 1.5 KB

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