Files
bl/modules/base/service/base_sys_param.go

93 lines
1.9 KiB
Go

package service
import (
"context"
"blazing/cool"
"blazing/modules/base/model"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/text/gstr"
)
type BaseSysParamService struct {
*cool.Service
}
func NewBaseSysParamService() *BaseSysParamService {
return &BaseSysParamService{
&cool.Service{
Model: model.NewBaseSysParam(),
},
// Service: cool.NewService(model.NewBaseSysParam()),
}
}
// HtmlByKey 根据配置参数key获取网页内容(富文本)
func (s *BaseSysParamService) HtmlByKey(key string) string {
var (
html = "<html><body>@content</body></html>"
)
m := cool.DBM(s.Model)
record, err := m.Where("keyName = ?", key).One()
if err != nil {
html = gstr.Replace(html, "@content", err.Error())
return html
}
if record.IsEmpty() {
html = gstr.Replace(html, "@content", "keyName notfound")
return html
}
html = gstr.Replace(html, "@content", record["data"].String())
return html
}
// ModifyAfter 修改后
func (s *BaseSysParamService) ModifyAfter(ctx context.Context, method string, param g.MapStrAny) (err error) {
var (
m = cool.DBM(s.Model)
)
result, err := m.All()
if err != nil {
return
}
for _, v := range result {
key := "param:" + v["keyName"].String()
value := v["data"].String()
err = cool.CacheManager.Set(ctx, key, value, 0)
if err != nil {
return
}
}
return
}
// DataByKey 根据配置参数key获取数据
func (s *BaseSysParamService) DataByKey(ctx context.Context, key string) (data string, err error) {
var (
m = cool.DBM(s.Model)
)
rKey := "param:" + key
dataCache, err := cool.CacheManager.Get(ctx, rKey)
if err != nil {
return
}
if !dataCache.IsEmpty() {
data = dataCache.String()
return
}
record, err := m.Where("keyName = ?", key).One()
if err != nil {
return
}
if record.IsEmpty() {
return
}
data = record["data"].String()
err = cool.CacheManager.Set(ctx, rKey, data, 0)
return
}