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.
109 lines
2.5 KiB
109 lines
2.5 KiB
package http |
|
|
|
import ( |
|
"time" |
|
|
|
"go-common/app/interface/main/web-goblin/conf" |
|
webmdl "go-common/app/interface/main/web-goblin/model/web" |
|
"go-common/library/ecode" |
|
bm "go-common/library/net/http/blademaster" |
|
) |
|
|
|
const ( |
|
_lmt = 10000 |
|
_pgcFull = "pgcfull" |
|
_pgcIncre = "pgcincre" |
|
_ugcFull = "ugcfull" |
|
_ugcIncre = "ugcincre" |
|
) |
|
|
|
func ugcfull(c *bm.Context) { |
|
var ( |
|
err error |
|
items []*webmdl.Mi |
|
) |
|
v := new(struct { |
|
Pn int64 `form:"pn" validate:"min=1"` |
|
Ps int64 `form:"ps" validate:"min=1,max=50"` |
|
Source string `form:"bsource" validate:"required"` |
|
}) |
|
if err = c.Bind(v); err != nil { |
|
return |
|
} |
|
if !accessCard(_ugcFull, v.Source) { |
|
c.JSON(nil, ecode.AccessDenied) |
|
return |
|
} |
|
source := "?bsource=" + v.Source |
|
if items, err = srvWeb.UgcFull(c, v.Pn, v.Ps, source); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
data := make(map[string]interface{}, 5) |
|
data["app_name"] = _appName |
|
data["package_name"] = _packageName |
|
data["update_time"] = time.Now().Format("2006-01-02 15:04:05") |
|
data["source"] = v.Source |
|
data["shortvideos"] = items |
|
c.JSONMap(data, nil) |
|
} |
|
|
|
func ugcincre(c *bm.Context) { |
|
var ( |
|
err error |
|
item []*webmdl.Mi |
|
) |
|
v := new(struct { |
|
Pn int `form:"pn" validate:"min=1"` |
|
Ps int `form:"ps" validate:"min=1,max=50"` |
|
StartTs int64 `form:"start_ts" validate:"required"` |
|
EndTs int64 `form:"end_ts" validate:"required"` |
|
Source string `form:"bsource" validate:"required"` |
|
}) |
|
if err = c.Bind(v); err != nil { |
|
return |
|
} |
|
if !accessCard(_ugcIncre, v.Source) { |
|
c.JSON(nil, ecode.AccessDenied) |
|
return |
|
} |
|
if v.StartTs >= v.EndTs || v.EndTs-v.StartTs >= conf.Conf.OutSearch.Rspan { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if v.Ps*v.Pn > _lmt { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
source := "?bsource=" + v.Source |
|
if item, err = srvWeb.UgcIncre(c, v.Pn, v.Ps, v.StartTs, v.EndTs, source); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
data := make(map[string]interface{}, 5) |
|
data["app_name"] = _appName |
|
data["package_name"] = _packageName |
|
data["update_time"] = time.Now().Format("2006-01-02 15:04:05") |
|
data["source"] = v.Source |
|
data["shortvideos"] = item |
|
c.JSONMap(data, nil) |
|
} |
|
|
|
func accessCard(flag, arg string) bool { |
|
var ( |
|
b = false |
|
m = map[string][]string{ |
|
_pgcFull: conf.Conf.OutSearch.AcPgcFull, |
|
_pgcIncre: conf.Conf.OutSearch.AcPgcIncre, |
|
_ugcFull: conf.Conf.OutSearch.AcUgcFull, |
|
_ugcIncre: conf.Conf.OutSearch.AcUgcIncre, |
|
} |
|
) |
|
for _, v := range m[flag] { |
|
if v == arg { |
|
b = true |
|
break |
|
} |
|
} |
|
return b |
|
}
|
|
|