新增修改商品状态(上/下架)
This commit is contained in:
parent
2eb9a7bbe2
commit
fc9f6588cc
@ -229,3 +229,42 @@ func (r *Product) PutProduct(c *gin.Context) {
|
|||||||
|
|
||||||
responses.Ok(c)
|
responses.Ok(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PutProductStatus 修改商品状态(上/下架)
|
||||||
|
func (r *Product) PutProductStatus(c *gin.Context) {
|
||||||
|
productRequest := requests.ProductRequest{}
|
||||||
|
req := productRequest.PutProductStatus
|
||||||
|
if err := c.ShouldBind(&req); err != nil {
|
||||||
|
responses.FailWithMessage(err.Error(), c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 参数验证
|
||||||
|
if err := global.Validate.Struct(req); err != nil {
|
||||||
|
responses.FailWithMessage(utils.Translate(err), c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
id := c.Param("product_id")
|
||||||
|
if id == "" {
|
||||||
|
responses.FailWithMessage("缺少参数", c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将 id 转换为 int64 类型
|
||||||
|
productId, err := strconv.ParseInt(id, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
responses.Fail(c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 业务处理
|
||||||
|
productService := service.ProductService{}
|
||||||
|
_, err = productService.PutProductStatus(productId, req)
|
||||||
|
if err != nil {
|
||||||
|
responses.FailWithMessage(err.Error(), c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
responses.Ok(c)
|
||||||
|
}
|
||||||
|
|||||||
@ -105,6 +105,11 @@ func (r *ProductDao) GetProductPageSearch(req requests.GetProductPage, page, pag
|
|||||||
query = query.Where("product_type = ?", req.ProductType)
|
query = query.Where("product_type = ?", req.ProductType)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 商品状态
|
||||||
|
if req.ProductStatus != nil {
|
||||||
|
query = query.Where("product_status = ?", req.ProductStatus)
|
||||||
|
}
|
||||||
|
|
||||||
// 平台商品id
|
// 平台商品id
|
||||||
if req.ProductPlatformId != "" {
|
if req.ProductPlatformId != "" {
|
||||||
query = query.Where("product_platform_id = ?", req.ProductPlatformId)
|
query = query.Where("product_platform_id = ?", req.ProductPlatformId)
|
||||||
|
|||||||
@ -5,6 +5,7 @@ type ProductRequest struct {
|
|||||||
GetProductPage // 获取系统商品列表-分页
|
GetProductPage // 获取系统商品列表-分页
|
||||||
AddProduct // 新增商品
|
AddProduct // 新增商品
|
||||||
PutProduct // 修改商品
|
PutProduct // 修改商品
|
||||||
|
PutProductStatus // 修改商品状态(上/下架)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPlatformProductPage 获取平台商品列表-分页
|
// GetPlatformProductPage 获取平台商品列表-分页
|
||||||
@ -33,6 +34,7 @@ type GetProductPage struct {
|
|||||||
LicenseNumber string `json:"license_number" form:"license_number" label:"批准文号"` // 批准文号
|
LicenseNumber string `json:"license_number" form:"license_number" label:"批准文号"` // 批准文号
|
||||||
Manufacturer string `json:"manufacturer" form:"manufacturer" label:"生产厂家"` // 生产厂家
|
Manufacturer string `json:"manufacturer" form:"manufacturer" label:"生产厂家"` // 生产厂家
|
||||||
ProductRemarks string `json:"product_remarks" form:"product_remarks" label:"商品备注"` // 商品备注
|
ProductRemarks string `json:"product_remarks" form:"product_remarks" label:"商品备注"` // 商品备注
|
||||||
|
ProductStatus *int `json:"product_status" form:"product_status" label:"商品状态"` // 商品状态(1:正常 2:下架)
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddProduct 新增商品
|
// AddProduct 新增商品
|
||||||
@ -55,6 +57,7 @@ type AddProduct struct {
|
|||||||
FrequencyUse string `json:"frequency_use" form:"frequency_use" label:"使用频率" validate:"required"` // 使用频率(例:1天3次)
|
FrequencyUse string `json:"frequency_use" form:"frequency_use" label:"使用频率" validate:"required"` // 使用频率(例:1天3次)
|
||||||
AvailableDays float64 `json:"available_days" form:"available_days" label:"可用天数" validate:"required"` // 可用天数(3)
|
AvailableDays float64 `json:"available_days" form:"available_days" label:"可用天数" validate:"required"` // 可用天数(3)
|
||||||
ProductRemarks string `json:"product_remarks" form:"product_remarks" label:"商品备注" validate:"required"` // 商品备注
|
ProductRemarks string `json:"product_remarks" form:"product_remarks" label:"商品备注" validate:"required"` // 商品备注
|
||||||
|
ProductStatus *int `json:"product_status" form:"product_status" label:"商品状态" validate:"required oneof=1 2"` // 商品状态(1:正常 2:下架)
|
||||||
}
|
}
|
||||||
|
|
||||||
// PutProduct 修改商品
|
// PutProduct 修改商品
|
||||||
@ -68,3 +71,8 @@ type PutProduct struct {
|
|||||||
AvailableDays float64 `json:"available_days" form:"available_days" label:"可用天数" validate:"required"` // 可用天数(3)
|
AvailableDays float64 `json:"available_days" form:"available_days" label:"可用天数" validate:"required"` // 可用天数(3)
|
||||||
ProductRemarks string `json:"product_remarks" form:"product_remarks" label:"商品备注" validate:"required"` // 商品备注
|
ProductRemarks string `json:"product_remarks" form:"product_remarks" label:"商品备注" validate:"required"` // 商品备注
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PutProductStatus 修改商品状态(上/下架)
|
||||||
|
type PutProductStatus struct {
|
||||||
|
ProductStatus *int `json:"product_status" form:"product_status" label:"商品状态" validate:"required oneof=1 2"` // 商品状态(1:正常 2:下架)
|
||||||
|
}
|
||||||
|
|||||||
@ -667,6 +667,9 @@ func privateRouter(r *gin.Engine, api controller.Api) {
|
|||||||
// 修改商品
|
// 修改商品
|
||||||
productGroup.PUT("/:product_id", api.Product.PutProduct)
|
productGroup.PUT("/:product_id", api.Product.PutProduct)
|
||||||
|
|
||||||
|
// 修改商品状态(上/下架)
|
||||||
|
productGroup.PUT("/status/:product_id", api.Product.PutProductStatus)
|
||||||
|
|
||||||
// 平台商品
|
// 平台商品
|
||||||
platformGroup := productGroup.Group("/platform")
|
platformGroup := productGroup.Group("/platform")
|
||||||
{
|
{
|
||||||
|
|||||||
@ -97,6 +97,7 @@ func (r *ProductService) AddProduct(userId string, req requests.AddProduct) (boo
|
|||||||
// 新增商品表
|
// 新增商品表
|
||||||
product := &model.Product{
|
product := &model.Product{
|
||||||
ProductPlatformId: productPlatform.ProductPlatformId,
|
ProductPlatformId: productPlatform.ProductPlatformId,
|
||||||
|
ProductStatus: *req.ProductStatus,
|
||||||
ProductName: req.ProductName,
|
ProductName: req.ProductName,
|
||||||
CommonName: req.CommonName,
|
CommonName: req.CommonName,
|
||||||
ProductPrice: req.ProductPrice,
|
ProductPrice: req.ProductPrice,
|
||||||
@ -159,7 +160,7 @@ func (r *ProductService) AddProduct(userId string, req requests.AddProduct) (boo
|
|||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// PutProduct 修改医生
|
// PutProduct 修改商品
|
||||||
func (r *ProductService) PutProduct(productId int64, req requests.PutProduct) (bool, error) {
|
func (r *ProductService) PutProduct(productId int64, req requests.PutProduct) (bool, error) {
|
||||||
// 获取商品数据
|
// 获取商品数据
|
||||||
productDao := dao.ProductDao{}
|
productDao := dao.ProductDao{}
|
||||||
@ -233,3 +234,41 @@ func (r *ProductService) PutProduct(productId int64, req requests.PutProduct) (b
|
|||||||
tx.Commit()
|
tx.Commit()
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PutProductStatus 修改商品状态(上/下架)
|
||||||
|
func (r *ProductService) PutProductStatus(productId int64, req requests.PutProductStatus) (bool, error) {
|
||||||
|
// 获取商品数据
|
||||||
|
productDao := dao.ProductDao{}
|
||||||
|
product, err := productDao.GetProductById(productId)
|
||||||
|
if err != nil || product == nil {
|
||||||
|
return false, errors.New("商品数据错误")
|
||||||
|
}
|
||||||
|
|
||||||
|
if product.ProductStatus == *req.ProductStatus {
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 商品数据
|
||||||
|
productData := make(map[string]interface{}) // 医生数据
|
||||||
|
productData["product_status"] = req.ProductStatus
|
||||||
|
|
||||||
|
// 开始事务
|
||||||
|
tx := global.Db.Begin()
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
tx.Rollback()
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
// 修改商品数据
|
||||||
|
if len(productData) != 0 {
|
||||||
|
err = productDao.EditProductByUserId(tx, productId, productData)
|
||||||
|
if err != nil {
|
||||||
|
tx.Rollback()
|
||||||
|
return false, errors.New("操作失败")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tx.Commit()
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user