From dceaa0aedfff0d537e4c87292c0415a8555ebd60 Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Fri, 22 Dec 2023 17:22:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E5=95=86=E5=93=81=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/controller/product.go | 32 +++++++++++++++++++++++++++ api/dao/productPlatform.go | 45 ++++++++++++++++++++++++++++++++++++++ api/requests/product.go | 11 ++++++++++ api/router/router.go | 2 +- 4 files changed, 89 insertions(+), 1 deletion(-) diff --git a/api/controller/product.go b/api/controller/product.go index 0bd9604..30f366c 100644 --- a/api/controller/product.go +++ b/api/controller/product.go @@ -268,3 +268,35 @@ func (r *Product) PutProductStatus(c *gin.Context) { responses.Ok(c) } + +// GetPlatformProductList 获取平台商品列表 +func (r *Product) GetPlatformProductList(c *gin.Context) { + productRequest := requests.ProductRequest{} + req := productRequest.GetPlatformProductList + 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 + } + + productPlatformDao := dao.ProductPlatformDao{} + productPlatform, err := productPlatformDao.GetPlatformProductListSearch(req) + if err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + // 处理返回值 + productPlatforms := dto.GetProductPlatformListDto(productPlatform) + if err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + responses.OkWithData(productPlatforms, c) +} diff --git a/api/dao/productPlatform.go b/api/dao/productPlatform.go index 3d72640..97d6366 100644 --- a/api/dao/productPlatform.go +++ b/api/dao/productPlatform.go @@ -114,3 +114,48 @@ func (r *ProductPlatformDao) GetPlatformProductPageSearch(req requests.GetPlatfo } return m, totalRecords, nil } + +// GetPlatformProductListSearch 获取平台商品列表 +func (r *ProductPlatformDao) GetPlatformProductListSearch(req requests.GetPlatformProductList) (m []*model.ProductPlatform, err error) { + // 构建查询条件 + query := global.Db.Model(&model.ProductPlatform{}) + + // 商品名称 + if req.ProductName != "" { + query = query.Where("product_name LIKE ?", "%"+req.ProductName+"%") + } + + // 药品类型 + if req.ProductType != nil { + query = query.Where("product_type = ?", req.ProductType) + } + + // 处方平台编码 + if req.ProductPlatformCode != "" { + query = query.Where("product_platform_code LIKE ?", "%"+req.ProductPlatformCode+"%") + } + + // 药店编码 + if req.ProductPharmacyCode != "" { + query = query.Where("product_pharmacy_code LIKE ?", "%"+req.ProductPharmacyCode+"%") + } + + // 批准文号 + if req.LicenseNumber != "" { + query = query.Where("license_number LIKE ?", "%"+req.LicenseNumber+"%") + } + + // 生产厂家 + if req.Manufacturer != "" { + query = query.Where("manufacturer LIKE ?", "%"+req.Manufacturer+"%") + } + + // 排序 + query = query.Order("created_at desc") + + err = query.Scopes(model.Paginate(1, 10)).Find(&m).Error + if err != nil { + return nil, err + } + return m, nil +} diff --git a/api/requests/product.go b/api/requests/product.go index faefb57..00216c8 100644 --- a/api/requests/product.go +++ b/api/requests/product.go @@ -6,6 +6,7 @@ type ProductRequest struct { AddProduct // 新增商品 PutProduct // 修改商品 PutProductStatus // 修改商品状态(上/下架) + GetPlatformProductList // 获取平台商品列表 } // GetPlatformProductPage 获取平台商品列表-分页 @@ -20,6 +21,16 @@ type GetPlatformProductPage struct { Manufacturer string `json:"manufacturer" form:"manufacturer" label:"生产厂家"` // 生产厂家 } +// GetPlatformProductList 获取平台商品列表 +type GetPlatformProductList struct { + ProductName string `json:"product_name" form:"product_name" label:"商品名称"` // 商品名称 + ProductType *int `json:"product_type" form:"product_type" label:"药品类型"` // 药品类型(0:未知 1:中成药 2:西药) + ProductPlatformCode string `json:"product_platform_code" form:"product_platform_code" label:"处方平台编码"` // 处方平台商品编码 + ProductPharmacyCode string `json:"product_pharmacy_code" form:"product_pharmacy_code" label:"药店编码"` // 第三方药店商品编码 + LicenseNumber string `json:"license_number" form:"license_number" label:"批准文号"` // 批准文号 + Manufacturer string `json:"manufacturer" form:"manufacturer" label:"生产厂家"` // 生产厂家 +} + // GetProductPage 获取系统商品列表-分页 type GetProductPage struct { Page int `json:"page" form:"page" label:"页码"` diff --git a/api/router/router.go b/api/router/router.go index bec8fea..59751df 100644 --- a/api/router/router.go +++ b/api/router/router.go @@ -680,7 +680,7 @@ func privateRouter(r *gin.Engine, api controller.Api) { platformGroup.GET("/:product_platform_id", api.Product.GetProductPlatform) // 获取平台商品列表 - platformGroup.GET("/list", api.UserDoctor.GetUserDoctorList) + platformGroup.GET("/list", api.Product.GetPlatformProductList) } } }