package logic import ( "app.yhyue.com/moapp/jybase/common" "bp.jydev.jianyu360.cn/BaseService/biService/rpc/biservice" "context" "fmt" "github.com/gogf/gf/v2/util/gconv" "io" "net/http" "strings" "bp.jydev.jianyu360.cn/BaseService/biService/api/internal/svc" "bp.jydev.jianyu360.cn/BaseService/biService/api/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type UpFileLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext r *http.Request } func NewUpFileLogic(ctx context.Context, svcCtx *svc.ServiceContext, r *http.Request) *UpFileLogic { return &UpFileLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, r: r, } } func (l *UpFileLogic) UpFile(req *types.UpFileReq) (resp *types.BiResp, err error) { file, header, _ := l.r.FormFile("file") defer file.Close() bt, _ := io.ReadAll(file) size := fmt.Sprintf("%.4f", common.Float64All(header.Size)/1024) for { if strings.HasSuffix(size, "0") { size = strings.TrimRight(size, "0") continue } if strings.HasSuffix(size, ".") { size = strings.TrimRight(size, ".") break } break } fileSize := size + "KB" res, err := l.svcCtx.BiServiceRpc.UpFile(l.ctx, &biservice.UpFileReq{ AppId: req.AppId, UserId: req.BaseUserId, PositionId: req.PositionId, EntUserId: req.EntUserId, EntId: req.EntId, Stype: req.FileType, File: bt, FileName: req.FileName, FileSize: fileSize, }) data := gconv.Map(gconv.UnsafeBytesToStr(res.Data)) return &types.BiResp{Error_code: res.ErrorCode, Error_msg: res.ErrorMsg, Data: data}, err }