package common import ( "bindbox-game/internal/pkg/core" ) type ConfigResponse struct { SubscribeTemplates map[string]string `json:"subscribe_templates"` ContactServiceQRCode string `json:"contact_service_qrcode"` // 客服二维码 } // GetPublicConfig 获取公开配置(包含订阅模板ID) // @Summary 获取公开配置 // @Description 获取小程序前端需要用到的公开配置,如订阅消息模板ID // @Tags 公共 // @Accept json // @Produce json // @Success 200 {object} ConfigResponse // @Router /api/app/config/public [get] func (h *handler) GetPublicConfig() core.HandlerFunc { return func(ctx core.Context) { // 查询配置 var subscribeTemplateID string var serviceQRCode string configs, err := h.readDB.SystemConfigs.WithContext(ctx.RequestContext()). Where(h.readDB.SystemConfigs.ConfigKey.In("wechat.lottery_result_template_id", "contact.service_qrcode")). Find() if err == nil { for _, cfg := range configs { switch cfg.ConfigKey { case "wechat.lottery_result_template_id": subscribeTemplateID = cfg.ConfigValue case "contact.service_qrcode": serviceQRCode = cfg.ConfigValue } } } rsp := ConfigResponse{ SubscribeTemplates: map[string]string{ "lottery_result": subscribeTemplateID, }, ContactServiceQRCode: serviceQRCode, } ctx.Payload(rsp) } }