印度包网
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.
 
 
 

131 lines
2.7 KiB

package handler
import (
"fmt"
"server/call"
"server/common"
"server/config"
"server/modules/backend/app"
"server/modules/backend/bdb"
"server/modules/backend/values"
"server/util"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"github.com/gin-gonic/gin"
"github.com/liangdas/mqant/log"
)
var (
bucket *oss.Bucket
)
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)
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
var list []values.User
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)
}
}
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")
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+file.Filename, f)
if err != nil {
a.Code = values.CodeRetry
log.Error("UploadOSS PutObject err:%v", err)
return
}
rsp.Url = fmt.Sprintf("https://%s.%s/%s", ossConf.BucketName, ossConf.Endpoint, ossConf.ObjectName+file.Filename)
}