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,43 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"http.go",
"medal.go",
"pendant.go",
],
importpath = "go-common/app/service/main/usersuit/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/usersuit/conf:go_default_library",
"//app/service/main/usersuit/model:go_default_library",
"//app/service/main/usersuit/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/net/metadata: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,79 @@
package http
import (
"net/http"
"go-common/app/service/main/usersuit/conf"
"go-common/app/service/main/usersuit/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
usersuitSvc *service.Service
vfySvc *verify.Verify
)
// Init init http sever instance.
func Init(c *conf.Config, s *service.Service) {
usersuitSvc = s
vfySvc = verify.New(c.Verify)
// init inner router
innerEngine := bm.DefaultServer(c.BM)
innerRouter(innerEngine)
// init inner server
if err := innerEngine.Start(); err != nil {
log.Error("xhttp.Serve inner error(%v)", err)
panic(err)
}
}
// innerRouter init inner router.
func innerRouter(e *bm.Engine) {
// health check
e.Ping(ping)
e.Register(register)
group := e.Group("/x/internal/pendant", vfySvc.Verify)
{
group.GET("/groupInfo", groupInfo)
group.GET("/groupInfoByID", groupInfoByID)
group.GET("/pendantByID", pendantByID)
group.GET("/vipGroup", vipGroup)
group.GET("/entryGroup", entryGroup)
group.GET("/pointRecommend", pointRecommend)
group.GET("/package", packageInfo)
group.GET("/equipment", equipment)
group.GET("/orderHistory", orderHistory)
group.POST("/order", order)
group.POST("/equip", equip)
group.POST("/multiGrantByMid", multiGrantByMid)
group.POST("/multiGrantByPid", multiGrantByPid)
}
e.POST("/x/internal/pendant/callback", pendantCallback)
medal := e.Group("/x/internal/medal", vfySvc.Verify)
{
medal.GET("/my", medalMy)
medal.GET("/all", medalAllInfo)
medal.GET("/info", medalInfo)
medal.GET("/popup", medalPopup)
medal.GET("/user", medalUser)
medal.GET("/check", medalCheck)
medal.GET("/activated", medalActivated)
medal.POST("/install", medalInstall)
medal.POST("/grant", medalGet)
}
}
// ping check server ok.
func ping(c *bm.Context) {
if err := usersuitSvc.Ping(c); err != nil {
log.Error("usersuit-service service ping error (%+v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}
// register check server ok.
func register(c *bm.Context) {
c.JSON(map[string]interface{}{}, nil)
}

View File

@@ -0,0 +1,120 @@
package http
import (
"go-common/app/service/main/usersuit/model"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/metadata"
)
func medalInfo(c *bm.Context) {
var (
err error
info *model.MedalInfo
arg = new(model.ArgMIDNID)
)
if err = c.Bind(arg); err != nil {
return
}
if info, err = usersuitSvc.MedalInfo(c, arg.MID, arg.NID); err != nil {
c.JSON(nil, err)
return
}
c.JSON(info, nil)
}
func medalGet(c *bm.Context) {
var (
err error
arg = new(model.ArgMIDNID)
)
if err = c.Bind(arg); err != nil {
return
}
if err = usersuitSvc.MedalGet(c, arg.MID, arg.NID); err != nil {
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func medalCheck(c *bm.Context) {
var (
err error
info *model.MedalCheck
arg = new(model.ArgMIDNID)
)
if err = c.Bind(arg); err != nil {
return
}
if info, err = usersuitSvc.MedalCheck(c, arg.MID, arg.NID); err != nil {
c.JSON(nil, err)
return
}
c.JSON(info, nil)
}
func medalActivated(c *bm.Context) {
var (
err error
arg = new(model.ArgMID)
)
if err = c.Bind(arg); err != nil {
return
}
c.JSON(usersuitSvc.MedalActivated(c, arg.MID))
}
func medalMy(c *bm.Context) {
var (
err error
arg = new(model.ArgMID)
)
if err = c.Bind(arg); err != nil {
return
}
c.JSON(usersuitSvc.MedalMyInfo(c, arg.MID))
}
func medalAllInfo(c *bm.Context) {
var (
err error
arg = new(model.ArgMID)
)
if err = c.Bind(arg); err != nil {
return
}
c.JSON(usersuitSvc.MedalAllInfo(c, arg.MID))
}
func medalPopup(c *bm.Context) {
var (
err error
arg = new(model.ArgMID)
)
if err = c.Bind(arg); err != nil {
return
}
c.JSON(usersuitSvc.MedalPopup(c, arg.MID))
}
func medalInstall(c *bm.Context) {
var (
err error
arg = new(model.ArgMedalInstall)
)
if err = c.Bind(arg); err != nil {
return
}
c.JSON(nil, usersuitSvc.MedalInstall(c, arg.Mid, arg.Nid, arg.IsActivated))
}
func medalUser(c *bm.Context) {
var (
err error
arg = new(model.ArgMID)
)
if err = c.Bind(arg); err != nil {
return
}
c.JSON(usersuitSvc.MedalUserInfo(c, arg.MID, metadata.String(c, metadata.RemoteIP)))
}

View File

@@ -0,0 +1,399 @@
package http
import (
"strconv"
"go-common/app/service/main/usersuit/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/xstr"
)
const (
_paySuccess = "1"
)
// groupInfo get group info
func groupInfo(c *bm.Context) {
c.JSON(usersuitSvc.GroupInfo(c))
}
// groupInfoByID get group info
func groupInfoByID(c *bm.Context) {
var (
err error
gid int64
params = c.Request.Form
gidstr = params.Get("gid")
)
if gidstr == "" {
c.JSON(nil, ecode.RequestErr)
return
}
if gid, err = strconv.ParseInt(gidstr, 10, 64); err != nil || gid < 0 {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(usersuitSvc.GroupInfoByID(c, gid))
}
// vipGroup return vip group info
func vipGroup(c *bm.Context) {
c.JSON(usersuitSvc.GroupInfoByID(c, 31))
}
// entryGroup return vip group info
func entryGroup(c *bm.Context) {
c.JSON(usersuitSvc.GroupInfoByID(c, 30))
}
// pointRecommend get pendant which has point pay type
func pointRecommend(c *bm.Context) {
var (
err error
mid int64
params = c.Request.Form
midstr = params.Get("mid")
)
if midstr == "" {
c.JSON(nil, ecode.RequestErr)
return
}
if mid, err = strconv.ParseInt(midstr, 10, 64); err != nil || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(usersuitSvc.PendantPoint(c, mid))
}
// pendantByID return pendant info
func pendantByID(c *bm.Context) {
var (
err error
pid int64
params = c.Request.Form
pidstr = params.Get("pid")
)
if pidstr == "" {
c.JSON(nil, ecode.RequestErr)
return
}
if pid, err = strconv.ParseInt(pidstr, 10, 64); err != nil || pid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(usersuitSvc.PendantInfo(c, pid))
}
// orderHistory query order history
func orderHistory(c *bm.Context) {
var (
err error
t int64
history *model.ArgOrderHistory
data []*model.PendantOrderInfo
count map[string]int64
req = c.Request
params = req.Form
midStr = params.Get("mid")
pidStr = params.Get("pid")
orderID = params.Get("orderID")
payID = params.Get("payID")
payType = params.Get("payType")
status = params.Get("status")
startTime = params.Get("start_time")
endTime = params.Get("end_time")
page = params.Get("page")
)
if midStr == "" {
c.JSON(nil, ecode.RequestErr)
return
}
history = new(model.ArgOrderHistory)
if history.Mid, err = strconv.ParseInt(midStr, 10, 64); err != nil || history.Mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if pidStr != "" {
if t, err = strconv.ParseInt(pidStr, 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
history.Pid = t
}
if orderID != "" {
history.OrderID = orderID
}
if payID != "" {
history.PayID = payID
}
if payType != "" {
if t, err = strconv.ParseInt(payType, 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
history.PayType = int32(t)
}
if status != "" {
if t, err = strconv.ParseInt(status, 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
history.Status = int32(t)
}
if startTime != "" {
if t, err = strconv.ParseInt(startTime, 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
history.StartTime = t
}
if endTime != "" {
if t, err = strconv.ParseInt(endTime, 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
history.EndTime = t
}
if page != "" {
if t, err = strconv.ParseInt(page, 10, 64); err != nil {
history.Page = 1
}
history.Page = t
} else {
history.Page = 1
}
if data, count, err = usersuitSvc.OrderHistory(c, history); err != nil {
log.Error("usersuitSvc.History error(%v)", err)
c.JSON(nil, err)
return
}
c.JSONMap(map[string]interface{}{
"data": data,
"count": count,
}, nil)
}
// packageInfo get user package
func packageInfo(c *bm.Context) {
var (
err error
mid int64
req = c.Request
midStr = req.Form.Get("mid")
)
if midStr == "" {
c.JSON(nil, ecode.RequestErr)
return
}
if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(usersuitSvc.PackageInfo(c, mid))
}
// equipment get current equipped pendant
func equipment(c *bm.Context) {
var (
err error
mid int64
req = c.Request
params = req.Form
midStr = params.Get("mid")
)
if midStr == "" {
c.JSON(nil, ecode.RequestErr)
return
}
if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(usersuitSvc.Equipment(c, mid))
}
// order order pendant
func order(c *bm.Context) {
var (
err error
mid, pid, expires, tp int64
orderData *model.PayInfo
req = c.Request
params = req.Form
midStr = params.Get("mid")
pidStr = params.Get("pid")
expiresStr = params.Get("expires")
typeStr = params.Get("moneytype")
)
if midStr == "" || pidStr == "" || expiresStr == "" || typeStr == "" {
c.JSON(nil, ecode.RequestErr)
return
}
if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if pid, err = strconv.ParseInt(pidStr, 10, 64); err != nil || pid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if expires, err = strconv.ParseInt(expiresStr, 10, 64); err != nil || expires < 1 {
c.JSON(nil, ecode.RequestErr)
return
}
if tp, err = strconv.ParseInt(typeStr, 10, 64); err != nil || tp < 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if orderData, err = usersuitSvc.OrderPendant(c, mid, pid, expires, tp); err != nil {
c.JSON(nil, err)
return
}
if orderData != nil && orderData.PayURL != "" {
c.JSON(orderData, nil)
}
}
// multiGrant batch grant pendant
func multiGrantByMid(c *bm.Context) {
var (
err error
pid, expire int64
mids []int64
req = c.Request
params = req.Form
midStr = params.Get("mids")
pidStr = params.Get("pid")
expireStr = params.Get("expire")
)
if midStr == "" || pidStr == "" || expireStr == "" {
c.JSON(nil, ecode.RequestErr)
return
}
if mids, err = xstr.SplitInts(midStr); err != nil || len(mids) == 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if pid, err = strconv.ParseInt(pidStr, 10, 64); err != nil || pid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if expire, err = strconv.ParseInt(expireStr, 10, 64); err != nil || expire <= 0 || expire > 3650 {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, usersuitSvc.BatchGrantPendantByMid(c, pid, expire, mids))
}
// multiGrant batch grant pendant
func multiGrantByPid(c *bm.Context) {
var (
err error
mid int64
pids, expires []int64
req = c.Request
params = req.Form
midStr = params.Get("mid")
pidStr = params.Get("pids")
expireStr = params.Get("expires")
)
if midStr == "" || pidStr == "" || expireStr == "" {
c.JSON(nil, ecode.RequestErr)
return
}
if pids, err = xstr.SplitInts(pidStr); err != nil || len(pids) == 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if expires, err = xstr.SplitInts(expireStr); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, usersuitSvc.BatchGrantPendantByPid(c, mid, expires, pids))
}
// equip euqip pendant
func equip(c *bm.Context) {
var (
err error
mid, pid, status, source int64
req = c.Request
params = req.Form
midStr = params.Get("mid")
pidStr = params.Get("pid")
statusStr = params.Get("status")
sourceStr = params.Get("source") // 挂件来源可选默认00 未知1背包2大会员
)
if midStr == "" || pidStr == "" || statusStr == "" {
c.JSON(nil, ecode.RequestErr)
return
}
if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if pid, err = strconv.ParseInt(pidStr, 10, 64); err != nil || pid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if status, err = strconv.ParseInt(statusStr, 10, 64); err != nil || (status != 1 && status != 2) {
c.JSON(nil, ecode.RequestErr)
return
}
source = model.ParseSource(sourceStr)
c.JSON(nil, usersuitSvc.EquipPendant(c, mid, pid, int8(status), source))
}
// pendantCallback pay callback func
func pendantCallback(c *bm.Context) {
var (
err error
sFlag int64
arg *model.PendantOrderInfo
req = c.Request
params = req.Form
success = params.Get("isSuccess") // NOTE : how to fixed 1
orderID = params.Get("out_trade_no")
payID = params.Get("trade_no")
status = params.Get("trade_status")
)
if success == "" || orderID == "" || payID == "" || status == "" {
c.JSON(nil, ecode.RequestErr)
return
}
if status != _paySuccess {
c.JSON(nil, nil)
return
}
arg = &model.PendantOrderInfo{OrderID: orderID, PayID: payID}
if sFlag, err = strconv.ParseInt(status, 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
arg.Stauts = int32(sFlag)
arg.IsCallback = 1
c.JSON(nil, usersuitSvc.PendantCallback(c, arg))
}