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.
75 lines
1.5 KiB
75 lines
1.5 KiB
package http |
|
|
|
import ( |
|
"strconv" |
|
|
|
"go-common/app/service/main/archive/api" |
|
"go-common/library/ecode" |
|
bm "go-common/library/net/http/blademaster" |
|
) |
|
|
|
// regionArcs. |
|
func regionArcs(c *bm.Context) { |
|
params := c.Request.Form |
|
ridStr := params.Get("rid") |
|
tpStr := params.Get("type") |
|
pnStr := params.Get("pn") |
|
psStr := params.Get("ps") |
|
// check params |
|
rid, err := strconv.ParseInt(ridStr, 10, 64) |
|
if err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
var tp int64 |
|
if tpStr != "" { |
|
if tp, err = strconv.ParseInt(tpStr, 10, 64); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
} |
|
pn, err := strconv.Atoi(pnStr) |
|
if err != nil || pn < 1 { |
|
pn = 1 |
|
} |
|
ps, err := strconv.Atoi(psStr) |
|
if err != nil || ps < 1 || ps > 100 { |
|
ps = 20 |
|
} |
|
// service |
|
var ( |
|
as []*api.Arc |
|
count int |
|
) |
|
if tp == 0 { |
|
as, count, err = arcSvc.RegionArcs3(c, int16(rid), pn, ps) |
|
} else { |
|
as, count, err = arcSvc.RegionOriginArcs3(c, int16(rid), pn, ps) |
|
} |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
var res struct { |
|
Archives []*api.Arc `json:"archives"` |
|
Page struct { |
|
Count int `json:"count"` |
|
Num int `json:"num"` |
|
Size int `json:"size"` |
|
} `json:"page"` |
|
} |
|
res.Archives = as |
|
res.Page.Num = pn |
|
res.Page.Size = ps |
|
res.Page.Count = count |
|
c.JSON(res, nil) |
|
} |
|
|
|
// addRegionArc. |
|
func addRegionArc(c *bm.Context) { |
|
params := c.Request.Form |
|
ridStr := params.Get("rid") |
|
// check params |
|
rid, _ := strconv.ParseInt(ridStr, 10, 64) |
|
c.JSON(nil, arcSvc.AddRegionArcs(c, int16(rid))) |
|
}
|
|
|