印度包网
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

137 lines
2.9 KiB

1 year ago
package handler
import (
1 year ago
"fmt"
1 year ago
"server/call"
"server/common"
1 year ago
"server/config"
1 year ago
"server/modules/backend/app"
"server/modules/backend/bdb"
"server/modules/backend/values"
"server/util"
"strings"
1 year ago
1 year ago
"github.com/aliyun/aliyun-oss-go-sdk/oss"
1 year ago
"github.com/gin-gonic/gin"
"github.com/liangdas/mqant/log"
)
1 year ago
var (
bucket *oss.Bucket
)
1 year ago
func ProductList(c *gin.Context) {
a := app.NewApp(c)
defer func() {
a.Response()
}()
products := call.GetConfigPayProduct()
resp := &values.ProductListResp{List: products}
a.Data = resp
}
func ChannelList(c *gin.Context) {
a := app.NewApp(c)
defer func() {
a.Response()
}()
ret := call.GetChannelList()
if ret == nil {
a.Code = values.CodeRetry
return
}
resp := values.ChannelListResp{}
resp.List = make([]*common.Channel, 0)
1 year ago
for _, v := range ret {
if len(a.User.SChannels) > 0 {
if !util.SliceContain(a.User.SChannels, v.ChannelID) {
continue
}
}
resp.List = append(resp.List, v)
}
a.Data = resp
}
func UserInfo(c *gin.Context) {
a := app.NewApp(c)
defer func() {
a.Response()
}()
resp := values.UserInfoResp{Name: a.User.Name, Role: a.User.Role, Power: a.User.Power}
a.Data = resp
}
func AccountList(c *gin.Context) {
a := app.NewApp(c)
defer func() {
a.Response()
}()
ret := call.GetChannelList()
if ret == nil {
a.Code = values.CodeRetry
return
}
resp := &values.AccountListResp{}
a.Data = resp
1 year ago
var list []values.User
1 year ago
if err := bdb.BackDB.C().Find(&list).Error; err != nil {
log.Error("err:%v", err)
a.Code = values.CodeRetry
return
}
for _, v := range list {
resp.List = append(resp.List, v.Account)
}
}
1 year ago
func UploadOSS(c *gin.Context) {
a := app.NewApp(c)
defer func() {
a.Response()
}()
ossConf := config.GetConfig().Backend.Oss
req := new(values.UploadOSSReq)
req.ObjectName = c.PostForm("ObjectName")
req.Folder = c.PostForm("folder")
if req.Folder != "" && !strings.HasSuffix(req.Folder, "/") {
req.Folder += "/"
}
1 year ago
rsp := new(values.UploadOSSResp)
a.Data = rsp
file, err := c.FormFile("file")
if err != nil {
a.Code = values.CodeRetry
log.Error("UploadOSS err:%v", err)
return
}
f, err := file.Open()
if err != nil {
a.Code = values.CodeRetry
log.Error("UploadOSS err:%v", err)
return
}
defer f.Close()
if bucket == nil {
client, err := oss.New(ossConf.Endpoint, ossConf.AccessKeyId, ossConf.AccessKeySecret)
if err != nil {
a.Code = values.CodeRetry
log.Error("UploadOSS New err:%v", err)
return
}
bucket, err = client.Bucket(ossConf.BucketName)
if err != nil {
a.Code = values.CodeRetry
log.Error("UploadOSS Bucket err:%v", err)
return
}
}
err = bucket.PutObject(ossConf.ObjectName+req.Folder+file.Filename, f)
1 year ago
if err != nil {
a.Code = values.CodeRetry
log.Error("UploadOSS PutObject err:%v", err)
return
}
1 year ago
rsp.Url = fmt.Sprintf("https://%s/%s/%s%s", ossConf.Domain, ossConf.ObjectName, req.Folder, file.Filename)
1 year ago
}