Files
hospital-admin-api/api/dao/doctorPharmacy.go
T
2026-09-07 14:07:00 +08:00

72 lines
2.3 KiB
Go

package dao
import (
"gorm.io/gorm"
"hospital-admin-api/api/model"
"hospital-admin-api/global"
)
type DoctorPharmacyDao struct{}
// GetDoctorPharmacyListByDoctorId 获取医生绑定的药房列表(带预加载药房详情)
func (r *DoctorPharmacyDao) GetDoctorPharmacyListByDoctorId(doctorId int64) (m []*model.DoctorPharmacy, err error) {
err = global.Db.Preload("Pharmacy").Where("doctor_id = ? AND status = 1", doctorId).Order("is_default desc, created_at desc").Find(&m).Error
if err != nil {
return nil, err
}
return m, nil
}
// GetDoctorPharmacyByDoctorAndPharmacy 获取某医生与某药房的绑定关系
func (r *DoctorPharmacyDao) GetDoctorPharmacyByDoctorAndPharmacy(doctorId, pharmacyId int64) (m *model.DoctorPharmacy, err error) {
err = global.Db.Where("doctor_id = ? AND pharmacy_id = ?", doctorId, pharmacyId).First(&m).Error
if err != nil {
return nil, err
}
return m, nil
}
// AddDoctorPharmacy 新增绑定
func (r *DoctorPharmacyDao) AddDoctorPharmacy(tx *gorm.DB, m *model.DoctorPharmacy) (*model.DoctorPharmacy, error) {
if err := tx.Create(m).Error; err != nil {
return nil, err
}
return m, nil
}
// DeleteDoctorPharmacy 删除绑定记录
func (r *DoctorPharmacyDao) DeleteDoctorPharmacy(tx *gorm.DB, maps interface{}) error {
err := tx.Where(maps).Delete(&model.DoctorPharmacy{}).Error
if err != nil {
return err
}
return nil
}
// DeleteDoctorPharmacyByDoctorAndPharmacy 解绑指定医生和指定药房
func (r *DoctorPharmacyDao) DeleteDoctorPharmacyByDoctorAndPharmacy(tx *gorm.DB, doctorId, pharmacyId int64) error {
err := tx.Where("doctor_id = ? AND pharmacy_id = ?", doctorId, pharmacyId).Delete(&model.DoctorPharmacy{}).Error
if err != nil {
return err
}
return nil
}
// ResetDoctorDefaultPharmacy 重置医生的默认药房(设为非默认)
func (r *DoctorPharmacyDao) ResetDoctorDefaultPharmacy(tx *gorm.DB, doctorId int64) error {
err := tx.Model(&model.DoctorPharmacy{}).Where("doctor_id = ?", doctorId).Update("is_default", 0).Error
if err != nil {
return err
}
return nil
}
// SetDefaultPharmacy 设指定药房为默认
func (r *DoctorPharmacyDao) SetDefaultPharmacy(tx *gorm.DB, doctorId, pharmacyId int64) error {
err := tx.Model(&model.DoctorPharmacy{}).Where("doctor_id = ? AND pharmacy_id = ?", doctorId, pharmacyId).Update("is_default", 1).Error
if err != nil {
return err
}
return nil
}