go-common/app/admin/main/videoup/service/oversea.go

160 lines
4.5 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package service
import (
"go-common/app/admin/main/videoup/model/oversea"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/xstr"
)
// PolicyGroups get policy group
func (s *Service) PolicyGroups(c *bm.Context, uid, groupID int64, gType, state int8, count, page int64, order, sort string) (data *oversea.PolicyGroupData, err error) {
groups, total, err := s.oversea.PolicyGroups(c, uid, groupID, gType, state, count, page, order, sort)
if len(groups) != 0 {
s.mulIDtoName(c, groups, s.mng.GetNameByUID, "UID", "UserName")
}
data = &oversea.PolicyGroupData{
Items: groups,
Pager: &oversea.Pager{
Num: page,
Size: count,
Total: total,
},
}
return
}
// ArchiveGroups get policy group by archive id
func (s *Service) ArchiveGroups(c *bm.Context, aid int64) (groups []*oversea.PolicyGroup, err error) {
groups, err = s.oversea.ArchiveGroups(c, aid)
return
}
// AddPolicyGroup add policy group
func (s *Service) AddPolicyGroup(c *bm.Context, group *oversea.PolicyGroup) (err error) {
if err = s.oversea.AddPolicyGroup(c, group); err != nil {
return
}
s.sendPolicyLog(c, &oversea.PolicyGroup{}, group)
return
}
// UpdatePolicyGroup update policy group
func (s *Service) UpdatePolicyGroup(c *bm.Context, id int64, attrs map[string]interface{}) (err error) {
var (
oldG = &oversea.PolicyGroup{}
newG = &oversea.PolicyGroup{}
)
if oldG, err = s.oversea.PolicyGroup(c, id); err != nil {
return
}
if err = s.oversea.UpdatePolicyGroup(c, id, attrs); err != nil {
return
}
if newG, err = s.oversea.PolicyGroup(c, id); err != nil {
log.Error("s.oversea.PolicyGroup(%d) err(%v)", id, err)
err = nil
} else {
s.sendPolicyLog(c, oldG, newG)
}
return
}
// UpdatePolicyGroups multi update policy group
func (s *Service) UpdatePolicyGroups(c *bm.Context, ids []int64, attrs map[string]interface{}) (err error) {
var (
oldGs []*oversea.PolicyGroup
newGs []*oversea.PolicyGroup
newMap = make(map[int64]*oversea.PolicyGroup)
)
if oldGs, err = s.oversea.PolicyGroupsByIds(c, ids); err != nil {
return
}
if err = s.oversea.UpdatePolicyGroups(c, ids, attrs); err != nil {
return
}
if newGs, err = s.oversea.PolicyGroupsByIds(c, ids); err != nil {
log.Error("s.oversea.PolicyGroupsByIds(%d) err(%v)", ids, err)
err = nil
} else {
for _, v := range newGs {
newMap[v.ID] = v
}
for _, oldG := range oldGs {
newG := &oversea.PolicyGroup{}
if _, ok := newMap[oldG.ID]; ok {
newG = newMap[oldG.ID]
}
s.sendPolicyLog(c, oldG, newG)
}
}
return
}
// PolicyItems get polices by group id
func (s *Service) PolicyItems(c *bm.Context, gid int64) (items []*oversea.PolicyItem, err error) {
return s.oversea.PolicyItems(c, gid)
}
// AddPolicies add policies
func (s *Service) AddPolicies(c *bm.Context, uid, gid int64, items []*oversea.PolicyParams) (err error) {
var (
zids []int64
oldG = &oversea.PolicyGroup{}
newG = &oversea.PolicyGroup{}
)
if oldG, err = s.oversea.PolicyGroup(c, gid); err != nil {
return
}
policies := make([]oversea.PolicyItem, len(items))
for i, v := range items {
policies[i].ID = v.ID
policies[i].GroupID = gid
policies[i].PlayAuth = v.PlayAuth
policies[i].DownAuth = v.DownAuth
policies[i].AreaID = xstr.JoinInts(v.AreaIds)
policies[i].State = oversea.StateOK
zids, _ = s.oversea.ZoneIDs(c, v.AreaIds)
policies[i].ZoneID = xstr.JoinInts(zids)
}
if err = s.oversea.AddPolicies(c, policies); err != nil {
return
}
if err = s.oversea.UpdatePolicyGroup(c, gid, map[string]interface{}{"uid": uid}); err != nil {
log.Error("s.oversea.UpdatePolicyGroup(%d) err(%v)", gid, err)
err = nil
}
if newG, err = s.oversea.PolicyGroup(c, gid); err != nil {
log.Error("s.oversea.PolicyGroup(%d) err(%v)", gid, err)
err = nil
} else {
s.sendPolicyLog(c, oldG, newG)
}
return
}
// DelPolices soft delete policies
func (s *Service) DelPolices(c *bm.Context, uid, gid int64, ids []int64) (err error) {
var (
oldG = &oversea.PolicyGroup{}
newG = &oversea.PolicyGroup{}
)
if oldG, err = s.oversea.PolicyGroup(c, gid); err != nil {
return
}
if err = s.oversea.DelPolices(c, gid, ids); err != nil {
return
}
if err = s.oversea.UpdatePolicyGroup(c, gid, map[string]interface{}{"uid": uid}); err != nil {
log.Error("s.oversea.UpdatePolicyGroup(%d) err(%v)", gid, err)
err = nil
}
if newG, err = s.oversea.PolicyGroup(c, gid); err != nil {
log.Error("s.oversea.PolicyGroup(%d) err(%v)", gid, err)
err = nil
} else {
s.sendPolicyLog(c, oldG, newG)
}
return
}