1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package service
- import (
- "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/entity"
- IC "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/init"
- "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/type/partnerlib"
- "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/util"
- "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/warn"
- "app.yhyue.com/moapp/jy_docs/services/model"
- "app.yhyue.com/moapp/jy_docs/services/partner"
- "app.yhyue.com/moapp/jybase/common"
- "app.yhyue.com/moapp/jyfs/rpc/filesystem"
- "encoding/json"
- "fmt"
- "net/url"
- "strings"
- "time"
- )
- type DRes struct {
- Msg string
- Code int64
- }
- func DocDownload(in *partnerlib.UserDownloadRequest) (res *partnerlib.UDRes, err error) {
- res = new(partnerlib.UDRes)
- var (
- b []byte
- isJson bool
- id = strings.ReplaceAll(in.DocId, fmt.Sprintf("%s-", entity.PartnerName), "")
- )
- h := NewHH(IC.I.Docin.Name, IC.I.Docin.Host, IC.I.Docin.DocDownload.Name, IC.I.Docin.DocDownload.Pathname, IC.I.Docin.DocDownload.Method, url.Values{
- "productId": []string{id},
- "userId": []string{common.InterfaceToStr(in.PositionId)},
- })
- b, err, isJson = h.HttpFunc()
- go h.SaveDocinLogger(b, err, "req")
- if err == nil {
- //豆丁同步数据到mongo
- go h.SaveDocinLogger(b, err, "res")
- if isJson {
- if err = json.Unmarshal(b, &res); err == nil {
- res.Msg = entity.Res[res.Msg]
- return
- }
- } else {
- //获取文件信息
- docInfo := partner.DocsFindOne(in.DocId)
- if docInfo.DocName != "" {
- //查看oss服务器是否已存在此文档
- if res.OssDocId = docInfo.OssDocId; res.OssDocId != "" {
- return
- }
- fileId := util.GetHashKey(b)
- ossId := fmt.Sprintf("%s.%s", fileId, docInfo.DocFileSuffix)
- //获取附件后上传oss
- fileRes := FileUpload(&filesystem.SaveFileReq{
- Domain: IC.C.OssInfo.BucketName,
- FileId: ossId,
- Meta: map[string]string{
- "docName": docInfo.DocName,
- "docSuffix": docInfo.DocFileSuffix,
- "docSize": fmt.Sprintf("%d", docInfo.DocFileSize),
- },
- RawFileContent: b,
- })
- if fileRes.OssDocId != "" {
- res.OssDocId = ossId
- //更新doc
- if errUpdate := partner.DocsUpdate(0, model.Doc{
- Id: in.DocId,
- OssDocId: res.OssDocId,
- OssPdfId: res.OssDocId,
- OssTxtId: fileId,
- UpdateDate: time.Now(),
- }); errUpdate != nil {
- warn.SendMsgByWXURL(fmt.Sprintf("文档id:%s,文档名称:%s 上传tidb doc 异常:%s", docInfo.Id, docInfo.DocName, err.Error()))
- }
- return
- } else {
- err = fmt.Errorf("文档上传失败")
- warn.SendMsgByWXURL(fmt.Sprintf("文档id:%s,文档名称:%s,上传到oss异常:%s", docInfo.Id, docInfo.DocName, err.Error()))
- }
- } else {
- err = fmt.Errorf("获取文档信息异常")
- }
- }
- }
- res.Msg = err.Error()
- res.Code = -1
- return
- }
|