【Go实战 | 电商平台】(8) 创建商品

news/2024/10/18 7:45:27/

文章目录

  • 写在前面
  • 1. 创建商品
    • 1.1 路由接口注册
    • 1.2 接口函数编写
      • 1.2.1 service层
      • 1.2.2 api层
    • 1.3 服务函数编写
    • 1.4 验证服务

写在前面

与前一章一样,我们这个步骤也是需要jwt鉴权的,因为你要知道是谁创建了商品,所以我们要在请求头上加上 token 连同 data 的信息一起传来创建商品

1. 创建商品

1.1 路由接口注册

  • post 请求
authed.POST("product", api.CreateProduct)

1.2 接口函数编写

1.2.1 service层

  • 定义一个创建商品的服务结构体
type CreateProductService struct {Name          string `form:"name" json:"name"`CategoryID    int    `form:"category_id" json:"category_id"`Title         string `form:"title" json:"title" bind:"required,min=2,max=100"`Info          string `form:"info" json:"info" bind:"max=1000"`ImgPath       string `form:"img_path" json:"img_path"`Price         string `form:"price" json:"price"`DiscountPrice string `form:"discount_price" json:"discount_price"`
}
  • 定义一个创建商品的create方法

传入进来的有id是上传者的idfilefileSize 是上传的商品图片以及其图片大小。

func (service *CreateProductService)Create(id uint,file multipart.File,fileSize int64) serializer.Response {...
}

1.2.2 api层

  • 定义创建商品的对象
createProductService := service.CreateProductService{}
  • 获取token,并解析当前对象的id
claim ,_ := util.ParseToken(c.GetHeader("Authorization"))
  • 获取传送过来的文件
file , fileHeader ,_ := c.Request.FormFile("file")
  • 绑定上下文数据
c.ShouldBind(&createProductService)
  • 执行创建对象下的create()方法,传入用户的id文件以及文件大小
res := createProductService.Create(claim.ID,file,fileSize)

1.3 服务函数编写

编写创建商品的服务函数

  • 验证用户
	var boss model.Usermodel.DB.Model(&model.User{}).First(&boss,id)
  • 上传图片到七牛云
status , info := util.UploadToQiNiu(file,fileSize)if status != 200 {return serializer.Response{Status:  status  ,Data:      e.GetMsg(status),Error:info,}}
  • 获取分类
model.DB.Model(&model.Category{}).First(&category,service.CategoryID)
  • 构建商品对象
product := model.Product{Name:          service.Name,Category: 	   category,CategoryID:    uint(service.CategoryID),Title:         service.Title,Info:          service.Info,ImgPath:       info,Price:         service.Price,DiscountPrice: service.DiscountPrice,BossID:        int(id),BossName:      boss.UserName,BossAvatar:    boss.Avatar,}
  • 在数据库中创建
err := model.DB.Create(&product).Errorif err != nil {logging.Info(err)code = e.ErrorDatabasereturn serializer.Response{Status: code,Msg:    e.GetMsg(code),Error:  err.Error(),}}
  • 返回序列化的商品信息
	return serializer.Response{Status: code,Data:   serializer.BuildProduct(product),Msg:    e.GetMsg(code),}

1.4 验证服务

  • 发送请求

在这里插入图片描述

  • 请求响应

在这里插入图片描述


http://www.ppmy.cn/news/411508.html

相关文章

《东京食尸鬼》主题曲unravel(日文汉字、假名及翻译、罗马音)

2014年七月新番《东京食尸鬼》的OP,由日本乐团凛として时雨的成员TK(本名:北嶋彻)所作。 没有看动漫之前,我听这首歌,还不能领会。看着动漫就算不知道歌词意思,也让我有一种撕心裂肺的感觉&…

获得淘宝商品评论

{以下是行业内了解到的一些情况,本帖只展示部分代码,需要更多API调试请移步注册API账号} "items": { "totalpage": "1", "total_results": "20", "page_size"…

Go 1.18 发行说明(翻译)

文章目录 1.Introduction to Go 1.182.Changes to the language2.1 泛型(Generics)2.2 Bug 修复(Bug fixes) 3.Ports3.1 AMD643.2 RISC-V3.3 Linux3.4 Windows3.5 iOS3.6 FreeBSD 4.Tools4.1 模糊测试4.2 Go 命令4.2.1 go getgo g…

使用翻译器扫描图片后,里面的日文可以被翻译出来吗?

说起来,真心要命,最近公司新接了一个项目,还挺大的,虽说利润不低,老板给的福利承诺也不小,但是有一个问题却让小北非常的无奈,那便是对方是日本公司,好多资料都是日文的,…

淘宝API 商品详情接口 - 外贸多语翻译商品详情店铺分类开放平台接口

万邦淘宝/天猫获得淘宝商品详情 API onebound.taobao.item_get 功能:获取宝/天猫宝贝详情、原价促销价、销量、库存、视频地址、商品主图、sku价格信息等 1、注册万邦开放平台账号 注册地址: https://console.open.onebound.cn/console/?isteven.csdn 2、获取…

2020淘宝双十一快速刷金币工具

就在今日的00:00分,2020天猫双十一预售正式开始,同时今年的双十一活动养猫分20亿正式上线。下面一条就教大家怎么快速刷到双十一喵币,从而给猫咪快速升级。 1.自动点击掉金币 细心的同学同学可能已经发现,当我们去点…

淘宝自动刷喵币!靠这一个脚本就够了

点击上方“Github爱好者社区”,选择星标 回复“资料”,获取小编整理的一份资料 开源最前线(ID:OpenSourceTop) 猿妹综合整理 一年一度的双十一大促又来了,原以为今年总算不需要帮忙盖楼了,奈何还…

日文图片翻译器扫描_微信如何巧变中英文翻译器?三招教你解决翻译难题

阅读本文前,请您先点击上面的“创投说吧”,再点击“关注”,这样您就可以继续免费收到文章了。每天都会有分享,都是免费订阅,请您放心关注注:本文转载自网络,不代表本平台立场,仅供读…