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 }