69 lines
1.9 KiB
Go
69 lines
1.9 KiB
Go
package faq
|
|
|
|
import (
|
|
"context"
|
|
"go-common/app/interface/main/creative/conf"
|
|
"go-common/app/interface/main/creative/dao/faq"
|
|
faqMdl "go-common/app/interface/main/creative/model/faq"
|
|
"go-common/app/interface/main/creative/service"
|
|
"go-common/library/log"
|
|
"go-common/library/sync/pipeline/fanout"
|
|
)
|
|
|
|
//Service struct
|
|
type Service struct {
|
|
c *conf.Config
|
|
faq *faq.Dao
|
|
cache *fanout.Fanout
|
|
}
|
|
|
|
//New get service
|
|
func New(c *conf.Config, rpcdaos *service.RPCDaos) *Service {
|
|
s := &Service{
|
|
c: c,
|
|
faq: faq.New(c),
|
|
cache: fanout.New("faq-service"),
|
|
}
|
|
return s
|
|
}
|
|
|
|
// Pre fn
|
|
func (s *Service) Pre(c context.Context) (res map[string]*faqMdl.Faq) {
|
|
res = make(map[string]*faqMdl.Faq)
|
|
var (
|
|
total int
|
|
err error
|
|
resD []*faqMdl.Detail
|
|
)
|
|
res["app_edit_faq"] = &faqMdl.Faq{
|
|
State: false,
|
|
QuestionTypeID: faqMdl.PhoneFaqQuesTypeID,
|
|
QuestionTypeName: faqMdl.PhoneFaqName,
|
|
URL: s.c.H5Page.FAQVideoEditor,
|
|
}
|
|
if resD, total, err = s.faq.DetailCache(c, faqMdl.PhoneFaqQuesTypeID, 1, 1, 2); err != nil || len(resD) == 0 {
|
|
if _, total, err = s.faq.Detail(context.Background(), faqMdl.PhoneFaqQuesTypeID, 1, 1, 2); err != nil {
|
|
log.Error("s.faq.Detail(%s,%d,%d,%d) error(%v)", faqMdl.PhoneFaqQuesTypeID, 1, 1, 2, err)
|
|
}
|
|
}
|
|
if total > 0 {
|
|
res["app_edit_faq"].State = true
|
|
}
|
|
return
|
|
}
|
|
|
|
// Detail fn
|
|
func (s *Service) Detail(c context.Context, qTypeID string, keyFlag, pn, ps int) (resD []*faqMdl.Detail, total int, err error) {
|
|
if resD, total, err = s.faq.DetailCache(c, qTypeID, keyFlag, pn, ps); err != nil || len(resD) == 0 {
|
|
if resD, total, err = s.faq.Detail(context.Background(), qTypeID, keyFlag, pn, ps); err != nil {
|
|
log.Error("s.faq.Detail(%s,%d,%d,%d) error(%v)", qTypeID, keyFlag, pn, ps, err)
|
|
}
|
|
if len(resD) > 0 {
|
|
s.cache.Do(c, func(c context.Context) {
|
|
s.faq.SetDetailCache(context.Background(), qTypeID, keyFlag, pn, ps, total, resD)
|
|
})
|
|
}
|
|
}
|
|
return
|
|
}
|