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"` MaterialData MaterialData `json:"material_data"` } type MaterialData 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"` Text string `json:"text"` DefaultValue string `json:"default_value"` } type Website struct { IfShow bool `json:"if_show"` Text string `json:"text"` DefaultValue string `json:"default_value"` } type Address struct { IfShow bool `json:"if_show"` Text string `json:"text"` DefaultValue string `json:"default_value"` } type Slogan struct { IfShow bool `json:"if_show"` Text string `json:"text"` DefaultValue string `json:"default_value"` } type Phone struct { IfShow bool `json:"if_show"` Text string `json:"text"` DefaultValue string `json:"default_value"` } 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, MaterialData: MaterialData{ Logo: Logo{ Material: "/image/logo/aHnT1_rzubdwax_scale.png", }, }, } 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" && !v.Visible { return GetTemplateSwitchInfoRsp{ Id: templateId, Material: templateMaterialImg, MaterialData: MaterialData{ Logo: Logo{ Material: "/image/logo/aHnT1_rzubdwax_scale.png", }, }, } } switch v.Tag { case "Phone": //电话 returnData.MaterialData.Phone = Phone{ IfShow: v.Visible, Text: v.Text, DefaultValue: "000 xxx xxx 1111", } case "Address": //地址 returnData.MaterialData.Address = Address{ IfShow: v.Visible, Text: v.Text, DefaultValue: "USA", } case "Website": returnData.MaterialData.Website = Website{ IfShow: v.Visible, Text: v.Text, DefaultValue: "https://www.xxxxxx.com", } case "QRcode": returnData.MaterialData.QRcode = QRcode{ IfShow: v.Visible, Text: v.Text, DefaultValue: "qrcode xxxxxxx", } case "Slogan": returnData.MaterialData.Slogan = Slogan{ IfShow: v.Visible, Text: v.Text, DefaultValue: "slogan xxxxxxx", } } } return returnData }