You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.6 KiB
70 lines
1.6 KiB
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) |
|
}
|
|
|