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.
126 lines
2.9 KiB
126 lines
2.9 KiB
package http |
|
|
|
import ( |
|
"strconv" |
|
|
|
"go-common/app/service/main/archive/api" |
|
"go-common/app/service/main/dynamic/conf" |
|
"go-common/library/ecode" |
|
"go-common/library/log" |
|
bm "go-common/library/net/http/blademaster" |
|
"go-common/library/xstr" |
|
) |
|
|
|
func regionTotal(c *bm.Context) { |
|
c.JSON(dySvc.RegionTotal(c), nil) |
|
} |
|
|
|
// regionTagArcs get new arcs of region and hot tag |
|
func regionTagArcs(c *bm.Context) { |
|
var ( |
|
count int |
|
rid, tagID int64 |
|
pn, ps int64 |
|
arcs []*api.Arc |
|
err error |
|
) |
|
query := c.Request.Form |
|
ridStr := query.Get("rid") |
|
tagIDStr := query.Get("tag_id") |
|
pnStr := query.Get("pn") |
|
psStr := query.Get("ps") |
|
if rid, err = strconv.ParseInt(ridStr, 10, 64); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if tagID, err = strconv.ParseInt(tagIDStr, 10, 64); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if pn, err = strconv.ParseInt(pnStr, 10, 64); err != nil || pn < 1 { |
|
pn = 1 |
|
} |
|
if ps, err = strconv.ParseInt(psStr, 10, 64); err != nil || ps < 1 { |
|
ps = int64(conf.Conf.Rule.NumArcs) |
|
} |
|
if arcs, count, err = dySvc.RegionTagArcs3(c, int32(rid), tagID, int(pn), int(ps)); err != nil { |
|
c.JSON(nil, err) |
|
log.Error("dySvc.RegionTagArcs(%d,%d) error(%v)", rid, tagID, err) |
|
return |
|
} |
|
data := make(map[string]interface{}, 2) |
|
page := map[string]int{ |
|
"num": int(pn), |
|
"size": int(ps), |
|
"count": count, |
|
} |
|
data["page"] = page |
|
data["archives"] = arcs |
|
c.JSON(data, nil) |
|
} |
|
|
|
// regionArcs get new arcs of region. |
|
func regionArcs(c *bm.Context) { |
|
var ( |
|
count int |
|
rid int64 |
|
pn, ps int64 |
|
arcs []*api.Arc |
|
err error |
|
) |
|
query := c.Request.Form |
|
ridStr := query.Get("rid") |
|
pnStr := query.Get("pn") |
|
psStr := query.Get("ps") |
|
if rid, err = strconv.ParseInt(ridStr, 10, 64); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if pn, err = strconv.ParseInt(pnStr, 10, 64); err != nil || pn < 1 { |
|
pn = 1 |
|
} |
|
if ps, err = strconv.ParseInt(psStr, 10, 64); err != nil || ps < 1 { |
|
ps = int64(conf.Conf.Rule.NumArcs) |
|
} |
|
if arcs, count, err = dySvc.RegionArcs3(c, int32(rid), int(pn), int(ps)); err != nil { |
|
c.JSON(nil, err) |
|
log.Error("dySvc.RegionArcs(%d) error(%v)", rid, err) |
|
return |
|
} |
|
data := make(map[string]interface{}, 2) |
|
page := map[string]int{ |
|
"num": int(pn), |
|
"size": int(ps), |
|
"count": count, |
|
} |
|
data["page"] = page |
|
data["archives"] = arcs |
|
c.JSON(data, nil) |
|
} |
|
|
|
// regionsArcs get batch new arcs of region. |
|
func regionsArcs(c *bm.Context) { |
|
var ( |
|
ridStr string |
|
count int |
|
rids []int32 |
|
ridsTmp []int64 |
|
err error |
|
) |
|
query := c.Request.Form |
|
if count, err = strconv.Atoi(query.Get("count")); err != nil || count < 1 { |
|
count = conf.Conf.Rule.NumIndexArcs |
|
} |
|
if ridStr = query.Get("rids"); ridStr == "" { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if ridsTmp, err = xstr.SplitInts(ridStr); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
for _, rid := range ridsTmp { |
|
rids = append(rids, int32(rid)) |
|
} |
|
c.JSON(dySvc.RegionsArcs3(c, rids, count)) |
|
}
|
|
|