400 lines
9.2 KiB
Go
400 lines
9.2 KiB
Go
|
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") // 挂件来源(可选):默认0,0 未知,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))
|
|||
|
}
|