123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- 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"
- "net/url"
- "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"
- fileName := ""
- formUrl := l.r.Form.Get("url")
- u, err := url.Parse(formUrl)
- if err != nil {
- fmt.Println("Failed to parse URL:", err)
- return
- }
- queryValues, _ := url.ParseQuery(u.RawQuery)
- fileName = queryValues.Get("fileId")
- index := strings.Index(fileName, "-")
- // 截取 "-" 后边的内容
- fileName = fileName[index+1:]
- if fileName == "" {
- return &types.BiResp{Error_code: -1, Error_msg: "附件名称不能为空,url参数有误"}, nil
- }
- 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: fileName,
- FileSize: fileSize,
- })
- data := gconv.Map(gconv.UnsafeBytesToStr(res.Data))
- return &types.BiResp{Error_code: res.ErrorCode, Error_msg: res.ErrorMsg, Data: data}, err
- }
|