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

102 lines
2.5 KiB
Go

package http
import (
"go-common/app/interface/main/web/conf"
"go-common/app/interface/main/web/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func helpList(c *bm.Context) {
var (
rs []*model.HelpList
err error
)
v := new(struct {
PTypeID string `form:"parentTypeId" validate:"required"`
})
if err = c.Bind(v); err != nil {
return
}
if rs, err = webSvc.HelpList(c, v.PTypeID); err != nil {
c.JSON(nil, ecode.Degrade)
return
}
c.JSON(rs, nil)
}
func helpDetail(c *bm.Context) {
var (
total int
detail []*model.HelpDeatil
list []*model.HelpList
err error
)
v := new(struct {
PTypeID string `form:"questionTypeId" validate:"required"`
KeyFlag int `form:"keyFlag" default:"1" validate:"min=1"`
FID string `form:"fId"`
Pn int `form:"pn" default:"1" validate:"min=1"`
Ps int `form:"ps" default:"15" validate:"min=1"`
})
if err = c.Bind(v); err != nil {
return
}
if v.Ps > conf.Conf.Rule.MaxHelpPageSize {
v.Ps = conf.Conf.Rule.MaxHelpPageSize
}
if detail, list, total, err = webSvc.HelpDetail(c, v.FID, v.PTypeID, v.KeyFlag, v.Pn, v.Ps); err != nil {
c.JSON(nil, ecode.Degrade)
log.Error("webSvc.HelpDetail(%s,%d,%d,%d) error(%v)", v.PTypeID, v.KeyFlag, v.Pn, v.Ps, err)
return
}
data := make(map[string]interface{}, 2)
rsDetail := make(map[string]interface{}, 2)
page := map[string]int{
"num": v.Pn,
"size": v.Ps,
"total": total,
}
rsDetail["items"] = detail
rsDetail["page"] = page
data["detail"] = rsDetail
data["list"] = list
c.JSON(data, nil)
}
func helpSearch(c *bm.Context) {
var (
total int
list []*model.HelpDeatil
err error
)
v := new(struct {
PTypeID string `form:"questionTypeId" default:"-1"`
KeyWords string `form:"keyWords" validate:"required"`
KeyFlag int `form:"keyFlag" default:"1" validate:"min=1"`
Pn int `form:"pn" default:"1" validate:"min=1"`
Ps int `form:"ps" default:"15" validate:"min=1"`
})
if err = c.Bind(v); err != nil {
return
}
if v.Ps > conf.Conf.Rule.MaxHelpPageSize {
v.Ps = conf.Conf.Rule.MaxHelpPageSize
}
if list, total, err = webSvc.HelpSearch(c, v.PTypeID, v.KeyWords, v.KeyFlag, v.Pn, v.Ps); err != nil {
c.JSON(nil, err)
log.Error("webSvc.HelpDetail(%s,%d,%d,%d) error(%v)", v.KeyWords, v.KeyFlag, v.Pn, v.Ps, err)
return
}
data := make(map[string]interface{}, 2)
page := map[string]int{
"num": v.Pn,
"size": v.Ps,
"total": total,
}
data["page"] = page
data["list"] = list
c.JSON(data, nil)
}