123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- package service
- import (
- dbSql "database/sql"
- "strconv"
- "strings"
- "crazy-fox-backend-api/config"
- "crazy-fox-backend-api/model"
- "crazy-fox-backend-api/repo"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
- )
- // fansService 粉丝也配置
- type fansService struct{}
- var FansItemTitle = model.ItemTitle{
- Item: "Game",
- Title: "FansPage",
- }
- func (This *fansService) Config() (model.FansConfig, error) {
- var (
- err error
- Ok bool
- fansConfig model.FansConfig
- basicConfig model.TBasicConfig
- channelConfig model.FansChannelConfig
- )
- if basicConfig, err = repo.Config.GetBasicConf(FansItemTitle); err != nil {
- if !errors.Is(err, dbSql.ErrNoRows) { // 查询异常
- return fansConfig, err
- } else { // 为空则赋值默认值
- fansConfig = model.FansConfig{
- OpenChannel: 1,
- OpenType: 1,
- ShowType: []int64{},
- MaxEveryDay: 3,
- MaxTotal: 4,
- ChannelsConfig: map[string]model.FansChannelConfig{},
- }
- }
- } else {
- if err = jsoniter.Unmarshal([]byte(basicConfig.Content), &fansConfig); err != nil {
- return fansConfig, err
- }
- }
- fansChannels := config.FansChannels
- channelConfigs := make(map[string]model.FansChannelConfig)
- for i, channel := range fansChannels { // 保证每个渠道都有数据
- if channelConfig, Ok = fansConfig.ChannelsConfig[strconv.Itoa(int(i))]; !Ok {
- channelConfig = model.FansChannelConfig{
- DirName: strings.ToLower(channel),
- BtnAction: "1",
- Url: "",
- Language: model.FansLangConfig{
- TitleKey: "RECOMMEND." + strings.ToUpper(channel) + ".TITLE",
- ContentKey: "RECOMMEND." + strings.ToUpper(channel) + ".CONTENT",
- ButtonKey: "RECOMMEND." + strings.ToUpper(channel) + ".BUTTON",
- },
- }
- } else {
- if channelConfig.BtnAction != "1" {
- channelConfig.BtnAction = "2"
- }
- }
- channelConfigs[strconv.Itoa(int(i))] = channelConfig
- }
- fansConfig.ChannelsConfig = channelConfigs
- return fansConfig, nil
- }
- func (This *fansService) Save(fansConf model.FansConfig) error {
- var (
- err error
- basicConfig model.TBasicConfig
- )
- for k, channelConf := range fansConf.ChannelsConfig {
- if channelConf.BtnAction == "2" {
- channelConf.BtnAction = channelConf.Url
- }
- fansConf.ChannelsConfig[k] = channelConf
- }
- content, err := jsoniter.Marshal(fansConf)
- if err != nil {
- return err
- }
- basicConfig, err = repo.Config.GetBasicConf(FansItemTitle)
- if err != nil {
- // 为空则新增记录
- basicConfig = model.TBasicConfig{
- Id: 0,
- ItemTitle: FansItemTitle,
- Content: string(content),
- Memo: "粉丝页弹窗配置",
- }
- if _, err = repo.Insert(&basicConfig); err != nil {
- return err
- }
- } else {
- basicConfig.Content = string(content)
- if err = repo.Config.UpdateBasicConf(basicConfig); err != nil {
- return err
- }
- }
- if err = Config.SaveJson(fansConf, FansItemTitle.Title); err != nil {
- return err
- }
- return nil
- }
|