go-common/app/admin/main/videoup/http/oversea.go
2019-04-22 18:49:16 +08:00

280 lines
6.0 KiB
Go

package http
import (
"encoding/json"
"go-common/app/admin/main/videoup/model/oversea"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"strconv"
"strings"
)
// policyGroups 策略组列表
func policyGroups(c *bm.Context) {
var (
uid int64
err error
data *oversea.PolicyGroupData
)
v := new(struct {
UName string `form:"username"`
GroupID int64 `form:"group_id"`
Type int8 `form:"type"`
State int8 `form:"state" default:"-1"`
Pn int64 `form:"pn" default:"1"`
Ps int64 `form:"ps" default:"20"`
Order string `form:"order"`
Sort string `form:"sort"`
})
if err = c.Bind(v); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if v.UName != "" {
if uid, err = vdaSvc.GetUID(c, v.UName); err != nil {
log.Warn("vdaSvc.GetUID(%s) error(%v)", v.UName, err)
c.JSON(nil, ecode.RequestErr)
return
}
}
data, err = vdaSvc.PolicyGroups(c, uid, v.GroupID, v.Type, v.State, v.Ps, v.Pn, v.Order, v.Sort)
if err != nil {
log.Error("vdaSvc.PolicyGroups() err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(data, err)
}
// archiveGroups 稿件的策略组
func archiveGroups(c *bm.Context) {
var (
err error
)
v := new(struct {
Aid int64 `form:"aid" validate:"required"`
})
if err = c.Bind(v); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
groups, err := vdaSvc.ArchiveGroups(c, v.Aid)
if err != nil {
log.Error("vdaSvc.ArchiveGroups() err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(groups, err)
}
// addPolicyGroup 添加策略组
func addPolicyGroup(c *bm.Context) {
var (
v = new(struct {
Name string `form:"name" validate:"required"`
Type int8 `form:"type" validate:"required"`
Remark string `form:"remark" default:""`
})
group = &oversea.PolicyGroup{}
uid, _ = getUIDName(c)
err error
)
if uid == 0 {
c.JSON(nil, ecode.Unauthorized)
return
}
if err = c.Bind(v); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if v.Name == "" {
c.JSON(nil, ecode.RequestErr)
return
}
group.Name = v.Name
group.Type = v.Type
group.UID = uid
group.Remark = v.Remark
err = vdaSvc.AddPolicyGroup(c, group)
if err != nil {
log.Error("vdaSvc.AddPolicyGroup() err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(group, nil)
}
// editPolicyGroup 编辑策略组
func editPolicyGroup(c *bm.Context) {
var (
v = new(struct {
ID int64 `form:"id" validate:"required"`
Name string `form:"name" validate:"required"`
Remark string `form:"remark" default:""`
})
attrs = make(map[string]interface{})
uid, _ = getUIDName(c)
err error
)
if uid == 0 {
c.JSON(nil, ecode.Unauthorized)
return
}
if err = c.Bind(v); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
attrs["name"] = v.Name
attrs["uid"] = uid
attrs["remark"] = v.Remark
err = vdaSvc.UpdatePolicyGroup(c, v.ID, attrs)
if err != nil {
log.Error("vdaSvc.UpdatePolicyGroup() err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, nil)
}
// delPolicyGroups 删除策略组
func delPolicyGroups(c *bm.Context) {
upPolicyGroupStates(c, oversea.StateDeleted)
}
// restorePolicyGroups 恢复策略组
func restorePolicyGroups(c *bm.Context) {
upPolicyGroupStates(c, oversea.StateOK)
}
// upPolicyGroupStates 修改策略组状态
func upPolicyGroupStates(c *bm.Context, state int8) {
var (
v = new(struct {
IDStr string `form:"ids" validate:"required"`
})
attrs = make(map[string]interface{})
intIDs []int64
strIDs []string
uid, _ = getUIDName(c)
err error
)
if uid == 0 {
c.JSON(nil, ecode.Unauthorized)
return
}
if err = c.Bind(v); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
strIDs = strings.Split(v.IDStr, ",")
intIDs = make([]int64, len(strIDs))
for i, id := range strIDs {
intIDs[i], err = strconv.ParseInt(id, 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
}
attrs["state"] = state
attrs["uid"] = uid
err = vdaSvc.UpdatePolicyGroups(c, intIDs, attrs)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, nil)
}
// policies 策略组下的策略
func policies(c *bm.Context) {
var (
err error
v = new(struct {
Gid int64 `form:"group_id" validate:"required"`
})
)
if err = c.Bind(v); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if v.Gid == 0 {
c.JSON(nil, ecode.RequestErr)
return
}
items, err := vdaSvc.PolicyItems(c, v.Gid)
if err != nil {
log.Error("vdaSvc.PolicyItems() err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(items, nil)
}
// addPolicies 添加策略
func addPolicies(c *bm.Context) {
var (
err error
v = new(struct {
Gid int64 `form:"group_id" validate:"required"`
JSON string `form:"items" validate:"required"`
})
items []*oversea.PolicyParams
uid, _ = getUIDName(c)
)
if err = c.Bind(v); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if err = json.Unmarshal([]byte(v.JSON), &items); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if v.Gid == 0 {
c.JSON(nil, ecode.RequestErr)
return
}
err = vdaSvc.AddPolicies(c, uid, v.Gid, items)
if err != nil {
log.Error("vdaSvc.AddPolicies() err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, nil)
}
// delPolicies 删除策略
func delPolicies(c *bm.Context) {
var (
v = new(struct {
Gid int64 `form:"group_id" validate:"required"`
IDStr string `form:"ids" validate:"required"`
})
uid, _ = getUIDName(c)
intIDs []int64
strIDs []string
err error
)
if err = c.Bind(v); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
strIDs = strings.Split(v.IDStr, ",")
intIDs = make([]int64, len(strIDs))
for i, id := range strIDs {
intIDs[i], err = strconv.ParseInt(id, 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
}
err = vdaSvc.DelPolices(c, uid, v.Gid, intIDs)
if err != nil {
log.Error("vdaSvc.DelPolices() err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, nil)
}