Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"dynamic.go",
"http.go",
],
importpath = "go-common/app/service/main/dynamic/http",
tags = ["automanaged"],
deps = [
"//app/service/main/archive/api:go_default_library",
"//app/service/main/dynamic/conf:go_default_library",
"//app/service/main/dynamic/service:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/middleware/verify:go_default_library",
"//library/xstr:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,126 @@
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))
}

View File

@@ -0,0 +1,54 @@
package http
import (
"net/http"
"go-common/app/service/main/dynamic/conf"
"go-common/app/service/main/dynamic/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
dySvc *service.Service
vfySvr *verify.Verify
)
// Init init.
func Init(c *conf.Config, s *service.Service) {
vfySvr = verify.New(c.Verify)
dySvc = s
engineInner := bm.DefaultServer(c.HTTPServer)
innerRouter(engineInner)
// init inner serve
if err := engineInner.Start(); err != nil {
log.Error("engineInner.Start error(%v)", err)
panic(err)
}
}
// innerRouter init inner router.
func innerRouter(e *bm.Engine) {
e.Ping(ping)
e.Register(register)
group := e.Group("/x/dynamic", bm.CORS())
{
group.GET("/tag", vfySvr.Verify, regionTagArcs)
group.GET("/region", vfySvr.Verify, regionArcs)
group.GET("/regions", vfySvr.Verify, regionsArcs)
group.GET("/region/total", vfySvr.Verify, regionTotal)
}
}
// ping check server ok.
func ping(c *bm.Context) {
if err := dySvc.Ping(c); err != nil {
log.Error("dynamic service ping error")
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}
func register(c *bm.Context) {
c.JSON(nil, nil)
}