package dao import ( "gorm.io/gorm" "hospital-admin-api/api/model" "hospital-admin-api/api/requests" "hospital-admin-api/global" ) type ProductPlatformDao struct { } // GetProductPlatformById 获取平台商品数据-平台商品id func (r *ProductPlatformDao) GetProductPlatformById(productPlatformId int64) (m *model.ProductPlatform, err error) { err = global.Db.First(&m, productPlatformId).Error if err != nil { return nil, err } return m, nil } // GetProductPlatformList 获取平台商品列表 func (r *ProductPlatformDao) GetProductPlatformList(maps interface{}) (m []*model.ProductPlatform, err error) { err = global.Db.Where(maps).Find(&m).Error if err != nil { return nil, err } return m, nil } // DeleteProductPlatform 删除平台商品 func (r *ProductPlatformDao) DeleteProductPlatform(tx *gorm.DB, maps interface{}) error { err := tx.Where(maps).Delete(&model.ProductPlatform{}).Error if err != nil { return err } return nil } // EditProductPlatform 修改平台商品 func (r *ProductPlatformDao) EditProductPlatform(tx *gorm.DB, maps interface{}, data interface{}) error { err := tx.Model(&model.ProductPlatform{}).Where(maps).Updates(data).Error if err != nil { return err } return nil } // EditProductPlatformByUserId 修改平台商品-平台商品id func (r *ProductPlatformDao) EditProductPlatformByUserId(tx *gorm.DB, productPlatformId int64, data interface{}) error { err := tx.Model(&model.ProductPlatform{}).Where("product_platform_id = ?", productPlatformId).Updates(data).Error if err != nil { return err } return nil } // AddProductPlatform 新增平台商品 func (r *ProductPlatformDao) AddProductPlatform(tx *gorm.DB, model *model.ProductPlatform) (*model.ProductPlatform, error) { if err := tx.Create(model).Error; err != nil { return nil, err } return model, nil } // GetPlatformProductPageSearch 获取平台商品列表-分页 func (r *ProductPlatformDao) GetPlatformProductPageSearch(req requests.GetPlatformProductPage, page, pageSize int) (m []*model.ProductPlatform, total int64, err error) { var totalRecords int64 // 构建查询条件 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") // 查询总数量 if err := query.Count(&totalRecords).Error; err != nil { return nil, 0, err } err = query.Scopes(model.Paginate(page, pageSize)).Find(&m).Error if err != nil { return nil, 0, err } 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, 20)).Find(&m).Error if err != nil { return nil, err } return m, nil }