|
|
|
|
package handler
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"server/call"
|
|
|
|
|
"server/common"
|
|
|
|
|
"server/config"
|
|
|
|
|
"server/modules/backend/app"
|
|
|
|
|
"server/modules/backend/bdb"
|
|
|
|
|
"server/modules/backend/values"
|
|
|
|
|
"server/util"
|
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
|
|
"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")
|
|
|
|
|
req.Folder = c.PostForm("folder")
|
|
|
|
|
if req.Folder != "" && !strings.HasSuffix(req.Folder, "/") {
|
|
|
|
|
req.Folder += "/"
|
|
|
|
|
}
|
|
|
|
|
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)
|
|
|
|
|
if err != nil {
|
|
|
|
|
a.Code = values.CodeRetry
|
|
|
|
|
log.Error("UploadOSS PutObject err:%v", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
rsp.Url = fmt.Sprintf("https://%s/%s/%s%s", ossConf.Domain, ossConf.ObjectName, req.Folder, file.Filename)
|
|
|
|
|
}
|