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,44 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"factor.go",
"http.go",
"report.go",
"setting.go",
"stat.go",
"user.go",
],
importpath = "go-common/app/admin/main/spy/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/admin/main/spy/conf:go_default_library",
"//app/admin/main/spy/model:go_default_library",
"//app/admin/main/spy/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",
],
)
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,230 @@
package http
import (
"strconv"
"strings"
"time"
"go-common/app/admin/main/spy/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func factors(c *bm.Context) {
var (
data []*model.Factors
err error
)
data, err = spySrv.Factors(c)
if err != nil {
log.Error("spySrv.Factors error(%v)", err)
c.JSON(data, err)
return
}
c.JSON(data, err)
}
func updateFactor(c *bm.Context) {
var (
params = c.Request.Form
idsStr = params.Get("ids")
name = params.Get("name")
fs []*model.Factor
err error
)
if name == "" {
c.JSON(nil, ecode.RequestErr)
return
}
idsArr := strings.Split(idsStr, ",")
for _, idStr := range idsArr {
id, theErr := strconv.ParseInt(idStr, 10, 64)
if theErr != nil {
c.JSON(nil, ecode.RequestErr)
return
}
factorVal, theErr := strconv.ParseFloat(params.Get("id_"+idStr), 32)
if theErr != nil || factorVal < 0 || factorVal > 1 {
c.JSON(nil, ecode.RequestErr)
return
}
fs = append(fs, &model.Factor{ID: id, FactorVal: float32(factorVal)})
}
err = spySrv.UpdateFactor(c, fs, name)
if err != nil {
log.Error("spySrv.UpdateFactor(%v) error(%v)", fs, err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func addFactor(c *bm.Context) {
var (
params = c.Request.Form
nickname = params.Get("nick_name")
serviceID int64
eventID int64
groupID int64
riskLevel int64
factorVal float64
categoryID int64
err error
)
if serviceID, err = strconv.ParseInt(params.Get("service_id"), 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if eventID, err = strconv.ParseInt(params.Get("event_id"), 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if groupID, err = strconv.ParseInt(params.Get("group_id"), 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if riskLevel, err = strconv.ParseInt(params.Get("risk_level"), 10, 8); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if factorVal, err = strconv.ParseFloat(params.Get("factor_val"), 32); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if categoryID, err = strconv.ParseInt(params.Get("category_id"), 10, 8); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if factorVal > 1 || factorVal <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if riskLevel < 1 || riskLevel > 10 {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySrv.AddFactor(c, &model.Factor{
NickName: nickname,
ServiceID: serviceID,
EventID: eventID,
GroupID: groupID,
RiskLevel: int8(riskLevel),
FactorVal: float32(factorVal),
CTime: time.Now(),
CategoryID: int8(categoryID),
})
if err != nil {
log.Error("spySrv.AddFactor error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func addEvent(c *bm.Context) {
var (
params = c.Request.Form
name = params.Get("name")
nickName = params.Get("nick_name")
err error
serviceID int64
status int64
)
if serviceID, err = strconv.ParseInt(params.Get("service_id"), 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if status, err = strconv.ParseInt(params.Get("status"), 10, 8); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySrv.AddEvent(c, &model.Event{
Name: name,
NickName: nickName,
ServiceID: serviceID,
Status: int8(status),
CTime: time.Now(),
MTime: time.Now(),
})
if err != nil {
log.Error("spySrv.AddEvent error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func addService(c *bm.Context) {
var (
params = c.Request.Form
name = params.Get("name")
nickName = params.Get("nick_name")
err error
status int64
)
if status, err = strconv.ParseInt(params.Get("status"), 10, 8); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySrv.AddService(c, &model.Service{
Name: name,
NickName: nickName,
Status: int8(status),
CTime: time.Now(),
MTime: time.Now(),
})
if err != nil {
log.Error("spySrv.AddService error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func addGroup(c *bm.Context) {
var (
params = c.Request.Form
name = params.Get("name")
err error
)
err = spySrv.AddGroup(c, &model.FactorGroup{
Name: name,
CTime: time.Now(),
})
if err != nil {
log.Error("spySrv.AddGroup error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func updateEventName(c *bm.Context) {
var (
params = c.Request.Form
nickname string
id int64
err error
)
nickname = params.Get("nickname")
if err != nil || len(nickname) > model.MaxRemarkLen {
c.JSON(nil, ecode.RequestErr)
return
}
id, err = strconv.ParseInt(params.Get("id"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySrv.UpdateEventName(c, &model.Event{
ID: id,
NickName: nickname,
})
if err != nil {
log.Error("spySrv.UpdateEventName error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}

View File

@@ -0,0 +1,99 @@
package http
import (
"net/http"
"go-common/app/admin/main/spy/conf"
"go-common/app/admin/main/spy/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
spySrv *service.Service
vfySvc *verify.Verify
)
// Init init http sever instance.
func Init(c *conf.Config) {
initService(c)
// init inner router
engine := bm.DefaultServer(c.HTTPServer)
innerRouter(engine)
// init inner server
if err := engine.Start(); err != nil {
log.Error("engine.Start error(%v)", err)
panic(err)
}
}
// innerRouter init inner router.
func innerRouter(e *bm.Engine) {
// health check
e.Ping(ping)
spy := e.Group("/x/admin/spy", vfySvc.Verify)
score := spy.Group("/score")
score.GET("/query", userInfo)
score.GET("/record", historyPage)
score.POST("/base/reset", resetBase)
score.POST("/base/refresh", refreshBase)
score.POST("/event/reset", resetEvent)
spy.POST("/stat/clear", clearCount)
factor := spy.Group("/factor")
factor.GET("/list", factors)
factor.POST("/add", addFactor)
factor.POST("/modify", updateFactor)
spy.POST("/event/add", addEvent)
spy.POST("/event/modify", updateEventName)
spy.POST("/service/add", addService)
spy.POST("/group/add", addGroup)
setting := spy.Group("/setting")
setting.GET("/list", settingList)
setting.POST("/add", updateSetting)
sin := spy.Group("/sin")
sin.POST("/state/update", updateStatState)
sin.POST("/quantity/update", updateStatQuantity)
sin.POST("/delete", deleteStat)
sin.POST("/remark/add", addRemark)
sin.GET("/remark/list", remarkList)
sin.GET("/page", statPage)
spy.GET("/report", report)
spyWithoutAuth := e.Group("/x/admin/spy/internal")
spyWithoutAuth.POST("/event/add", addEvent)
spyWithoutAuth.POST("/event/modify", updateEventName)
scoreWithoutAuth := spyWithoutAuth.Group("/score")
scoreWithoutAuth.GET("/query", userInfo)
scoreWithoutAuth.GET("/record", historyPage)
scoreWithoutAuth.POST("/base/reset", resetBase)
scoreWithoutAuth.POST("/base/refresh", refreshBase)
scoreWithoutAuth.POST("/event/reset", resetEvent)
factorWithoutAuth := spyWithoutAuth.Group("/factor")
factorWithoutAuth.GET("/list", factors)
factorWithoutAuth.POST("/add", addFactor)
factorWithoutAuth.POST("/modify", updateFactor)
}
// ping check server ok.
func ping(c *bm.Context) {
if err := spySrv.Ping(c); err != nil {
log.Error("spy admin ping error(%v)", err)
c.JSON(nil, err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}
func initService(c *conf.Config) {
spySrv = service.New(c)
vfySvc = verify.New(nil)
}

View File

@@ -0,0 +1,31 @@
package http
import (
"strconv"
"go-common/app/admin/main/spy/model"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func report(c *bm.Context) {
var (
params = c.Request.Form
pn, ps int
err error
data *model.ReportPage
)
if ps, err = strconv.Atoi(params.Get("ps")); err != nil {
ps = model.DefPs
}
if pn, err = strconv.Atoi(params.Get("pn")); err != nil {
pn = model.DefPn
}
data, err = spySrv.ReportList(c, ps, pn)
if err != nil {
log.Error("spySrv.ReportList error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, err)
}

View File

@@ -0,0 +1,40 @@
package http
import (
"go-common/app/admin/main/spy/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func settingList(c *bm.Context) {
var (
err error
data []*model.Setting
)
if data, err = spySrv.SettingList(c); err != nil {
c.JSON(nil, err)
return
}
c.JSON(data, err)
}
func updateSetting(c *bm.Context) {
var (
err error
params = c.Request.Form
name = params.Get("name")
prop = params.Get("prop")
val = params.Get("val")
)
if name == "" || prop == "" || val == "" {
c.JSON(nil, ecode.RequestErr)
return
}
if err = spySrv.UpdateSetting(c, name, prop, val); err != nil {
log.Error("s.UpdateSetting(%s,%s,%s) error(%v)", name, prop, val, err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}

View File

@@ -0,0 +1,197 @@
package http
import (
"strconv"
"go-common/app/admin/main/spy/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func updateStatState(c *bm.Context) {
var (
params = c.Request.Form
state int64
id int64
operater string
err error
)
state, err = strconv.ParseInt(params.Get("state"), 10, 8)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
id, err = strconv.ParseInt(params.Get("id"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
operater = params.Get("operater")
if operater == "" {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySrv.UpdateState(c, int8(state), id, operater)
if err != nil {
log.Error("spySrv.UpdateState error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func updateStatQuantity(c *bm.Context) {
var (
params = c.Request.Form
count int64
id int64
operater string
err error
)
count, err = strconv.ParseInt(params.Get("count"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
id, err = strconv.ParseInt(params.Get("id"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
operater = params.Get("operater")
if operater == "" {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySrv.UpdateStatQuantity(c, count, id, operater)
if err != nil {
log.Error("spySrv.UpdateStatQuantity error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, err)
}
func deleteStat(c *bm.Context) {
var (
params = c.Request.Form
id int64
operater string
err error
)
id, err = strconv.ParseInt(params.Get("id"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
operater = params.Get("operater")
if operater == "" {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySrv.DeleteStat(c, 1, id, operater)
if err != nil {
log.Error("spySrv.DeleteStat error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, err)
}
func addRemark(c *bm.Context) {
var (
params = c.Request.Form
remark string
id int64
operater string
err error
)
remark = params.Get("remark")
if err != nil || len(remark) > model.MaxRemarkLen {
c.JSON(nil, ecode.RequestErr)
return
}
id, err = strconv.ParseInt(params.Get("id"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
operater = params.Get("operater")
if operater == "" {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySrv.AddLog2(c, &model.Log{
RefID: id,
Name: operater,
Module: model.UpdateStat,
Context: remark,
})
if err != nil {
log.Error("spySrv.AddLog2 error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, err)
}
func remarkList(c *bm.Context) {
var (
params = c.Request.Form
id int64
err error
data []*model.Log
)
id, err = strconv.ParseInt(params.Get("id"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
data, err = spySrv.LogList(c, id, model.UpdateStat)
if err != nil {
log.Error("spySrv.logList error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, err)
}
func statPage(c *bm.Context) {
var (
params = c.Request.Form
id int64
mid int64
t int64
ps, pn int
err error
data *model.StatPage
)
id, err = strconv.ParseInt(params.Get("id"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
t, err = strconv.ParseInt(params.Get("type"), 10, 8)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if int8(t) == model.AccountType {
mid = id
id = 0
}
if ps, err = strconv.Atoi(params.Get("ps")); err != nil {
ps = model.DefPs
}
if pn, err = strconv.Atoi(params.Get("pn")); err != nil {
pn = model.DefPn
}
data, err = spySrv.StatPage(c, mid, id, int8(t), pn, ps)
if err != nil {
log.Error("spySrv.StatPage error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, err)
}

View File

@@ -0,0 +1,160 @@
package http
import (
"strconv"
"go-common/app/admin/main/spy/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func userInfo(c *bm.Context) {
var (
params = c.Request.Form
mid int64
err error
)
mid, err = strconv.ParseInt(params.Get("mid"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
data, err := spySrv.UserInfo(c, mid)
if err != nil {
log.Error("spySrv.UserInfo error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, err)
}
func historyPage(c *bm.Context) {
var (
params = c.Request.Form
mid int64
pn, ps int
err error
data *model.HistoryPage
)
mid, err = strconv.ParseInt(params.Get("mid"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if ps, err = strconv.Atoi(params.Get("ps")); err != nil {
ps = model.DefPs
}
if pn, err = strconv.Atoi(params.Get("pn")); err != nil {
pn = model.DefPn
}
q := &model.HisParamReq{Mid: mid, Pn: pn, Ps: ps}
data, err = spySrv.HisoryPage(c, q)
if err != nil {
log.Error("spySrv.HisoryPage error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, err)
}
func resetBase(c *bm.Context) {
var (
params = c.Request.Form
name = params.Get("name")
mid int64
err error
)
if name == "" {
c.JSON(nil, ecode.RequestErr)
return
}
mid, err = strconv.ParseInt(params.Get("mid"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySrv.ResetBase(c, mid, name)
if err != nil {
log.Error("spySrv.ResetBase error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, err)
}
func refreshBase(c *bm.Context) {
var (
params = c.Request.Form
name = params.Get("name")
mid int64
err error
)
if name == "" {
c.JSON(nil, ecode.RequestErr)
return
}
mid, err = strconv.ParseInt(params.Get("mid"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySrv.RefreshBase(c, mid, name)
if err != nil {
log.Error("spySrv.RefreshBase error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, err)
}
func resetEvent(c *bm.Context) {
var (
params = c.Request.Form
name = params.Get("name")
mid int64
err error
)
if name == "" {
c.JSON(nil, ecode.RequestErr)
return
}
mid, err = strconv.ParseInt(params.Get("mid"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySrv.ResetEvent(c, mid, name)
if err != nil {
log.Error("spySrv.ResetEvent error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, err)
}
func clearCount(c *bm.Context) {
var (
params = c.Request.Form
name = params.Get("name")
mid int64
err error
)
if name == "" {
c.JSON(nil, ecode.RequestErr)
return
}
mid, err = strconv.ParseInt(params.Get("mid"), 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySrv.ClearCount(c, mid, name)
if err != nil {
log.Error("spySrv.ClearCount error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, err)
}