71 lines
1.6 KiB
Go
71 lines
1.6 KiB
Go
package http
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"go-common/app/interface/main/account/model"
|
|
"go-common/library/ecode"
|
|
"go-common/library/log"
|
|
bm "go-common/library/net/http/blademaster"
|
|
)
|
|
|
|
// stat get invite stat.
|
|
func inviteStat(c *bm.Context) {
|
|
mid, _ := c.Get("mid")
|
|
var err error
|
|
var stat *model.RichInviteStat
|
|
if stat, err = usSvc.Stat(c, mid.(int64)); err != nil {
|
|
log.Error("memberService.Stat(%d) error(%v)", mid, err)
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(stat, nil)
|
|
}
|
|
|
|
// buy buy invite code.
|
|
func buy(c *bm.Context) {
|
|
mid, _ := c.Get("mid")
|
|
var err error
|
|
var num int64
|
|
req := c.Request.Form
|
|
numStr := req.Get("num")
|
|
if num, err = strconv.ParseInt(numStr, 10, 64); err != nil {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
geeParam := new(model.GeeCheckRequest)
|
|
if err = c.Bind(geeParam); err != nil {
|
|
return
|
|
}
|
|
geeParam.MID = mid.(int64)
|
|
if isPass := geetestSvr.Validate(c, geeParam); !isPass {
|
|
c.JSON(nil, ecode.CaptchaErr)
|
|
return
|
|
}
|
|
var invs []*model.RichInvite
|
|
if invs, err = usSvc.Buy(c, mid.(int64), num); err != nil {
|
|
log.Error("memberService.Buy(%d, %d) error(%v)", mid, num, err)
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(invs, nil)
|
|
}
|
|
|
|
// apply apply invite code.
|
|
func apply(c *bm.Context) {
|
|
mid, _ := c.Get("mid")
|
|
var err error
|
|
var num int64
|
|
code := c.Request.Form.Get("invite_code")
|
|
if code == "" {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
if err = usSvc.Apply(c, mid.(int64), code, c.Request.Header.Get("Cookie")); err != nil {
|
|
log.Error("memberService.Apply(%d, %d) error(%v)", mid, num, err)
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(nil, nil)
|
|
}
|