go-common/app/interface/main/account/http/member.go
2019-04-22 18:49:16 +08:00

134 lines
2.8 KiB
Go

package http
import (
"io/ioutil"
"net/http"
"go-common/app/interface/main/account/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func identifyInfo(c *bm.Context) {
mid, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.RequestErr)
return
}
var (
resData struct {
Status model.IdentifyStatus `json:"identification"`
}
status int8
err error
)
if status, err = realnameSvc.Status(c, mid.(int64)); err != nil {
log.Error("%+v", err)
c.JSON(nil, err)
return
}
switch status {
case 1:
resData.Status = model.IdentifyOK
case 0:
resData.Status = model.IdentifyNotOK
}
c.JSON(resData, nil)
}
func submitOffical(c *bm.Context) {
mid, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.RequestErr)
return
}
params := new(model.OfficialApply)
if err := c.Bind(params); err != nil {
return
}
c.JSON(nil, memberSvc.SubmitOfficial(c, mid.(int64), params))
}
func officialDoc(c *bm.Context) {
mid, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(memberSvc.OfficialDoc(c, mid.(int64)))
}
func officialConditions(c *bm.Context) {
mid, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(memberSvc.OfficialConditions(c, mid.(int64)))
}
func uploadImage(c *bm.Context) {
midI, _ := c.Get("mid")
mid := midI.(int64)
log.Infov(c, log.KV("log", "account-interface: upload image"), log.KV("mid", mid))
file, _, err := c.Request.FormFile("file")
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
defer file.Close()
bs, err := ioutil.ReadAll(file)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
ftype := http.DetectContentType(bs)
if ftype != "image/jpeg" && ftype != "image/jpg" && ftype != "image/png" && ftype != "image/gif" {
log.Error("account-interface: file type not allow file type(%s, mid: %v)", ftype, mid)
c.JSON(nil, ecode.RequestErr)
return
}
url, err := memberSvc.UploadImage(c, ftype, bs)
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"url": url,
"size": len(bs),
}, nil)
}
func mobileVerify(c *bm.Context) {
midI, _ := c.Get("mid")
arg := &model.ArgMobileVerify{}
if err := c.Bind(arg); err != nil {
return
}
if arg.Country == 0 {
arg.Country = 86
}
c.JSON(nil, memberSvc.MobileVerify(c, midI.(int64), arg.Mobile, arg.Country))
}
func officialPermission(ctx *bm.Context) {
resp := &model.OfficialPermissionResponse{
DeniedRoles: []int8{},
Metadata: map[string]interface{}{},
}
ctx.JSON(resp, nil)
}
func monthlyOfficialSubmittedTimes(ctx *bm.Context) {
midI, _ := ctx.Get("mid")
ctx.JSON(memberSvc.MonthlyOfficialSubmittedTimes(ctx, midI.(int64)), nil)
}
func officialAutoFillDoc(ctx *bm.Context) {
midI, _ := ctx.Get("mid")
ctx.JSON(memberSvc.OfficialAutoFillDoc(ctx, midI.(int64)))
}