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,53 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_test",
"go_library",
)
go_test(
name = "go_default_test",
srcs = ["http_test.go"],
embed = [":go_default_library"],
rundir = ".",
tags = ["automanaged"],
deps = ["//app/service/main/up/conf:go_default_library"],
)
go_library(
name = "go_default_library",
srcs = [
"http.go",
"logcredit.go",
],
importmap = "go-common/app/service/main/upcredit/http",
importpath = "go-common/app/service/main/upcredit/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/upcredit/conf:go_default_library",
"//app/service/main/upcredit/model/calculator:go_default_library",
"//app/service/main/upcredit/model/upcrmmodel:go_default_library",
"//app/service/main/upcredit/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/permit: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,67 @@
package http
import (
"go-common/app/service/main/upcredit/conf"
"go-common/app/service/main/upcredit/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/permit"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
idfSvc *verify.Verify
//Svc service.
Svc *service.Service
authSrc *permit.Permit
)
// Init init account service.
func Init(c *conf.Config) {
// service
initService(c)
// init internal router
innerEngine := bm.DefaultServer(c.BM.Inner)
setupInnerEngine(innerEngine)
// init internal server
if err := innerEngine.Start(); err != nil {
log.Error("httpx.Serve2 error(%v)", err)
panic(err)
}
}
func initService(c *conf.Config) {
idfSvc = verify.New(nil)
Svc = service.New(c)
authSrc = permit.New(c.Auth)
}
// innerRouter
func setupInnerEngine(e *bm.Engine) {
// monitor ping
e.GET("/monitor/ping", ping)
// base
var base *bm.RouterGroup
if conf.Conf.IsTest {
base = e.Group("/x/internal/upcredit")
} else {
base = e.Group("/x/internal/upcredit", idfSvc.Verify)
}
{
base.GET("/test", test)
base.POST("/log/add", logCredit)
base.GET("/log/get", logGet)
base.GET("/score/get", scoreGet)
base.POST("/score/recalc", recalc)
base.POST("/score/calc_section", calcSection)
}
}
// ping check server ok.
func ping(ctx *bm.Context) {
}

View File

@@ -0,0 +1,17 @@
package http
import (
"flag"
"path/filepath"
"time"
"go-common/app/service/main/up/conf"
)
func init() {
dir, _ := filepath.Abs("../cmd/upcredit-service.toml")
flag.Set("conf", dir)
conf.Init()
// Init(conf.Conf)
time.Sleep(time.Second)
}

View File

@@ -0,0 +1,210 @@
package http
import (
"encoding/json"
"fmt"
"go-common/app/service/main/upcredit/model/calculator"
"go-common/app/service/main/upcredit/model/upcrmmodel"
"go-common/app/service/main/upcredit/service"
"go-common/library/ecode"
"go-common/library/log"
"go-common/library/net/http/blademaster"
"io/ioutil"
"time"
)
func logCredit(c *blademaster.Context) {
var data interface{}
var err error
var errMsg string
var r = new(upcrmmodel.ArgCreditLogAdd)
switch {
default:
var body, _ = ioutil.ReadAll(c.Request.Body)
if err = json.Unmarshal(body, r); err != nil {
log.Error("request argument json decode fail, err=%v", err)
errMsg = fmt.Sprintf("wrong argument, %s, body={%s}", err.Error(), string(body))
err = ecode.RequestErr
break
}
err = Svc.LogCredit(c, r)
}
if err != nil {
service.BmHTTPErrorWithMsg(c, err, errMsg)
} else {
c.JSON(data, err)
}
}
func recalc(c *blademaster.Context) {
var data interface{}
var err error
var errMsg string
var r = new(struct {
TableNum int `form:"tablenum"`
CalcDate string `form:"date"`
AllTable bool `form:"all_table" default:"false"`
})
switch {
default:
if err = c.Bind(r); err != nil {
log.Error("param error")
err = ecode.RequestErr
break
}
var calc = calculator.New(Svc.CreditScoreInputChan)
var date = time.Time{}
if r.CalcDate != "" {
date, _ = time.Parse("2006-01-02", r.CalcDate)
} else {
date = time.Now()
}
if r.AllTable {
Svc.CalcSvc.AddCalcJob(date)
} else {
go calc.CalcLogTable(r.TableNum, date, nil)
}
log.Info("start calculate process, req=%+v", r)
}
if err != nil {
service.BmHTTPErrorWithMsg(c, err, errMsg)
} else {
c.JSON(data, err)
}
}
func scoreGet(c *blademaster.Context) {
var data interface{}
var err error
var errMsg string
var r = new(upcrmmodel.ArgMidDate)
switch {
default:
if err = c.Bind(r); err != nil {
log.Error("param error")
err = ecode.RequestErr
break
}
var arg = upcrmmodel.GetScoreParam{
Mid: r.Mid,
ScoreType: r.ScoreType,
}
var now = time.Now()
if r.Days > 60 {
r.Days = 60
}
if r.FromDate != "" {
arg.FromDate, err = time.Parse(upcrmmodel.DateStr, r.FromDate)
if err != nil {
errMsg = err.Error()
err = ecode.RequestErr
break
}
}
if r.ToDate != "" {
arg.ToDate, err = time.Parse(upcrmmodel.DateStr, r.FromDate)
if err != nil {
errMsg = err.Error()
err = ecode.RequestErr
break
}
}
if r.Days != 0 {
var y, m, d = now.Date()
arg.ToDate = time.Date(y, m, d, 0, 0, 0, 0, now.Location())
arg.FromDate = arg.ToDate.AddDate(0, 0, -r.Days)
}
var result, e = Svc.GetCreditScore(c, &arg)
err = e
if err != nil {
log.Error("fail to get credit score, req=%+v, err=%+v", arg, err)
break
}
data = map[string]interface{}{
"score_list": result,
}
log.Info("get credit score, req=%+v, datalen=%d", r, len(result))
}
if err != nil {
service.BmHTTPErrorWithMsg(c, err, errMsg)
} else {
c.JSON(data, err)
}
}
func logGet(c *blademaster.Context) {
var data interface{}
var err error
var errMsg string
var r = new(upcrmmodel.ArgGetLogHistory)
switch {
default:
if err = c.Bind(r); err != nil {
log.Error("param error")
errMsg = "param error"
err = ecode.RequestErr
break
}
var result, e = Svc.GetCreditLog(c, r)
err = e
if err != nil {
errMsg = err.Error()
log.Error("fail to get credit log, req=%+v, err=%+v", r, err)
break
}
data = map[string]interface{}{
"log_list": result,
}
log.Info("get credit log ok, req=%+v, datalen=%d", r, len(result))
}
if err != nil {
service.BmHTTPErrorWithMsg(c, err, errMsg)
} else {
c.JSON(data, err)
}
}
func calcSection(c *blademaster.Context) {
var data interface{}
var err error
var errMsg string
var r = new(struct {
CalcDate string `form:"date"`
})
switch {
default:
if err = c.Bind(r); err != nil {
log.Error("param error")
err = ecode.RequestErr
break
}
var date = time.Time{}
if r.CalcDate != "" {
date, _ = time.Parse("2006-01-02", r.CalcDate)
} else {
date = time.Now().AddDate(0, 0, -1)
}
var job = &service.CalcStatisticJob{
ID: 1,
Date: date,
Svc: Svc.CalcSvc,
}
Svc.CalcSvc.JobChannel <- job
log.Info("start calculate process, req=%+v, job=%+v", r, job)
}
if err != nil {
service.BmHTTPErrorWithMsg(c, err, errMsg)
} else {
c.JSON(data, err)
}
}
func test(c *blademaster.Context) {
Svc.Test()
}