280 lines
6.0 KiB
Go
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)
|
||
|
}
|