Files
wechat_ipad_pro/api/service/fileService.go
2026-02-17 13:06:23 +08:00

50 lines
1.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package service
import (
"encoding/base64"
"strconv"
"strings"
"xiawan/wx/api/req"
"xiawan/wx/api/vo"
"xiawan/wx/clientsdk/baseinfo"
"xiawan/wx/srv/wxface"
)
// UploadAppAttachService 上传文件服务
func UploadAppAttachService(queryKey string, m req.UploadAppAttachModel) vo.DTO {
return checkExIdPerformNoCreateConnect(queryKey, func(connect wxface.IWXConnect, newIWXConnect bool) vo.DTO {
// 获取基本信息
wxAccount := connect.GetWXAccount()
loginState := wxAccount.GetLoginState()
// 判断在线情况
if loginState == baseinfo.MMLoginStateNoLogin {
return vo.NewFail("该账号需要重新登录loginState == MMLoginStateNoLogin ")
} else if !connect.CheckOnLineStatus() {
return vo.NewFail("账号离线,自动上线失败loginState == " + strconv.Itoa(int(wxAccount.GetLoginState())))
}
// 获取请求管理器
reqInvoker := connect.GetWXReqInvoker()
// 处理文件数据
fileData := m.FileData
sFileBase := strings.Split(fileData, ",")
if len(sFileBase) > 1 {
fileData = sFileBase[1]
}
fileBytes, err := base64.StdEncoding.DecodeString(fileData)
if err != nil {
return vo.NewFail("文件解码失败:" + err.Error())
}
// 上传文件
resp, err := reqInvoker.UploadAppAttach(fileBytes)
if err != nil {
return vo.NewFail("上传文件失败:" + err.Error())
}
return vo.NewSuccessObj(resp, "上传文件成功")
})
}