fusenapi/utils/template_switch_info/template_switch.go
laodaming d986228964 fix
2023-11-23 15:04:17 +08:00

122 lines
3.3 KiB
Go

package template_switch_info
import (
"encoding/json"
"github.com/zeromicro/go-zero/core/logx"
)
type GetTemplateSwitchInfoRsp struct {
Id int64 `json:"id"`
Material string `json:"material"`
SwitchInfo SwitchInfo `json:"switch_info"`
CombineIsVisible bool `json:"combine_is_visible"` //合图总开关是否开启
}
type SwitchInfo struct {
QRcode QRcode `json:"QRcode"`
Website Website `json:"Website"`
Address Address `json:"Address"`
Phone Phone `json:"Phone"`
Slogan Slogan `json:"slogan"`
Logo Logo `json:"Logo"`
}
type QRcode struct {
IfShow bool `json:"if_show"`
UserDisabled bool `json:"user_disabled"`
Text string `json:"text"`
}
type Website struct {
IfShow bool `json:"if_show"`
UserDisabled bool `json:"user_disabled"`
Text string `json:"text"`
}
type Address struct {
IfShow bool `json:"if_show"`
UserDisabled bool `json:"user_disabled"`
Text string `json:"text"`
}
type Slogan struct {
IfShow bool `json:"if_show"`
UserDisabled bool `json:"user_disabled"`
Text string `json:"text"`
}
type Phone struct {
IfShow bool `json:"if_show"`
UserDisabled bool `json:"user_disabled"`
Text string `json:"text"`
}
type Logo struct {
Material string `json:"material"`
}
// 模板开关信息简单结构
type TemplateSimpleParseInfo struct {
MaterialList []MaterialItem `json:"materialList"`
}
type MaterialItem struct {
Type string `json:"type"`
Tag string `json:"tag"`
Visible bool `json:"visible"`
Text string `json:"text"`
}
// 获取模板开关信息
func GetTemplateSwitchInfo(templateId int64, templateJsonStr *string, templateMaterialImg string) GetTemplateSwitchInfoRsp {
returnData := GetTemplateSwitchInfoRsp{
Id: templateId,
Material: templateMaterialImg,
SwitchInfo: SwitchInfo{
QRcode: QRcode{
UserDisabled: true,
},
Website: Website{
UserDisabled: true,
},
Address: Address{
UserDisabled: true,
},
Phone: Phone{
UserDisabled: true,
},
Slogan: Slogan{
UserDisabled: true,
},
Logo: Logo{
Material: "/image/logo/aHnT1_rzubdwax_scale.png",
},
},
CombineIsVisible: false,
}
if templateJsonStr == nil || *templateJsonStr == "" {
return returnData
}
var templateJsonInfo TemplateSimpleParseInfo
if err := json.Unmarshal([]byte(*templateJsonStr), &templateJsonInfo); err != nil {
logx.Error("解析模板json获取DIY开关设置失败", err)
return returnData
}
for _, v := range templateJsonInfo.MaterialList {
if v.Type == "combine" {
returnData.CombineIsVisible = v.Visible
continue
}
switch v.Tag {
case "Phone": //电话
returnData.SwitchInfo.Phone.IfShow = v.Visible
returnData.SwitchInfo.Phone.Text = v.Text
case "Address": //地址
returnData.SwitchInfo.Address.IfShow = v.Visible
returnData.SwitchInfo.Address.Text = v.Text
case "Website":
returnData.SwitchInfo.Website.IfShow = v.Visible
returnData.SwitchInfo.Website.Text = v.Text
case "QRcode":
returnData.SwitchInfo.QRcode.IfShow = v.Visible
returnData.SwitchInfo.QRcode.Text = v.Text
case "Slogan":
returnData.SwitchInfo.Slogan.IfShow = v.Visible
returnData.SwitchInfo.Slogan.Text = v.Text
}
}
return returnData
}