欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > go 语言设置 商城首页

go 语言设置 商城首页

2025/2/23 10:15:22 来源:https://blog.csdn.net/qq_51110402/article/details/145590074  浏览:    关键词:go 语言设置 商城首页

1:前端传递的数据结构:

{"page_type": 10,"page_name": "商城首页","page_data": {"page": {"params": {"name": "商城首页","title": "萤火商城2.0","shareTitle": "分享标题"},"style": {"titleTextColor": "black","titleBackgroundColor": "#ffffff"},"name": "页面设置","type": "page"},"items": [{"name": "搜索框","type": "search","params": {"placeholder": "请输入关键字进行搜索"},"style": {"textAlign": "left","searchStyle": "square"}},{"name": "店铺公告","type": "notice","params": {"text": "萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]","link": null,"showIcon": true,"scrollable": true},"style": {"paddingTop": 0,"background": "#fffbe8","textColor": "#de8c17"}},{"name": "图片轮播","type": "banner","style": {"btnColor": "#ffffff","btnShape": "round","interval": 2.5},"data": [{"imgUrl": "http://www.yoshop.com/assets/store/img/diy/banner/01.png","link": null},{"imgUrl": "http://www.yoshop.com/assets/store/img/diy/banner/01.png","link": null}]},{"name": "导航组","type": "navBar","style": {"rowsNum": 4,"background": "#ffffff","paddingTop": 0,"textColor": "#666666"},"data": [{"imgUrl": "http://www.yoshop.com/assets/store/img/diy/navbar/01.png","imgName": "icon-1.png","link": null,"text": "按钮文字1"},{"imgUrl": "http://www.yoshop.com/assets/store/img/diy/navbar/01.png","imgName": "icon-2.jpg","link": null,"text": "按钮文字2"},{"imgUrl": "http://www.yoshop.com/assets/store/img/diy/navbar/01.png","imgName": "icon-3.jpg","link": null,"text": "按钮文字3"},{"imgUrl": "http://www.yoshop.com/assets/store/img/diy/navbar/01.png","imgName": "icon-4.jpg","link": null,"text": "按钮文字4"}]}]},"store_id": 10001,"is_delete": 0
}

后端的代码: 

package modelsimport ("database/sql/driver""fmt""github.com/goccy/go-json"
)type SysPage struct {ID         uint     `gorm:"primary_key;auto_increment" json:"id"`PageType   uint8    `gorm:"not_null;default:10" json:"page_type"` // 页面类型 (10 首页, 20 自定义页)PageName   string   `gorm:"type:varchar(255);not_null;default:''" json:"page_name"`PageData   PageData `gorm:"type:longtext;not_null" json:"page_data"`StoreID    uint     `gorm:"not_null;default:0" json:"store_id"`IsDelete   uint8    `gorm:"not_null;default:0" json:"is_delete"`CreateTime uint     `gorm:"not_null;default:0" json:"create_time"`UpdateTime uint     `gorm:"not_null;default:0" json:"update_time"`
}// PageData 是一个自定义类型,用于处理 JSON 数据
type PageData map[string]interface{}// Scan 实现 sql.Scanner 接口,用于从数据库读取 JSON 数据
func (pd *PageData) Scan(value interface{}) error {if value == nil {*pd = PageData{}return nil}bytes, ok := value.([]byte)if !ok {return fmt.Errorf("failed to unmarshal PageData: %v", value)}return json.Unmarshal(bytes, pd)
}// Value 实现 driver.Valuer 接口,用于将 JSON 数据写入数据库
func (pd PageData) Value() (driver.Value, error) {return json.Marshal(pd)
}func (SysPage) TableName() string {return "sys_page"
}package pageimport ("admin/common/database""admin/models""github.com/gin-gonic/gin""net/http""time"
)func Add(c *gin.Context) {var pageReq models.SysPageif c.Request.ContentLength == 0 {c.JSON(http.StatusBadRequest, gin.H{"error": "No data provided"})return}if err := c.ShouldBindJSON(&pageReq); err != nil {c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})return}page := models.SysPage{ID:         pageReq.ID,PageType:   pageReq.PageType,PageName:   pageReq.PageName,PageData:   pageReq.PageData,StoreID:    pageReq.StoreID,IsDelete:   pageReq.IsDelete,CreateTime: uint(time.Now().Unix()),UpdateTime: uint(time.Now().Unix()),}if err := database.DB.Debug().Create(&page).Error; err != nil {c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save the good"})return}c.JSON(http.StatusOK, gin.H{"msg": "create suceessfully!"})
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词