文章目录
1. 更新商品
1.1 路由接口注册
1.2 接口函数编写
1.2.1 service层
1.2.2 api层
1.3 服务函数编写
1.4 验证服务
authed.PUT("product/:id", api.UpdateProduct)
创建更新商品的服务
type UpdateProductService struct {
ID uint `form:"id" json:"id"`
Name string `form:"name" json:"name"`
CategoryID int `form:"category_id" json:"category_id"`
Title string `form:"title" json:"title" binding:"required,min=2,max=100"`
Info string `form:"info" json:"info" binding:"max=1000"`
ImgPath string `form:"img_path" json:"img_path"`
Price string `form:"price" json:"price"`
DiscountPrice string `form:"discount_price" json:"discount_price"`
OnSale bool `form:"on_sale" json:"on_sale"`
Num string `form:"num" json:"num"`
}
创建更新的商品服务的方法
func (service *UpdateProductService) Update(id string) serializer.Response {
...
}
创建一个更新商品服务的对象
updateProductService := service.UpdateProductService{}
上下文绑定更新商品服务对象
c.ShouldBind(&updateProductService)
调用这个更新服务对象的方法,注意这个id是路由上面的那个id
res := updateProductService.Update(c.Param("id"))
上下文返回
c.JSON(200, res)
完整代码
func UpdateProduct(c *gin.Context) {
updateProductService := service.UpdateProductService{}
if err := c.ShouldBind(&updateProductService); err == nil {
res := updateProductService.Update(c.Param("id"))
c.JSON(200, res)
} else {
c.JSON(200, ErrorResponse(err))
logging.Info(err)
}
}
找到商品分类
var category model.Category
model.DB.Model(&model.Category{}).First(&category,service.CategoryID)
找到该商品
var product model.Product
model.DB.Model(&model.Product{}).First(&product,id)
修改商品信息
product.Name=service.Name
product.Category=category
product.CategoryID=uint(service.CategoryID)
product.Title=service.Title
product.Info=service.Info
product.ImgPath=service.ImgPath
product.Price=service.Price
product.DiscountPrice=service.DiscountPrice
product.OnSale=service.OnSale
保存数据库中
err := model.DB.Save(&product).Error
返回信息
return serializer.Response{
Status: code,
Msg: e.GetMsg(code),
}
发送请求
响应返回