This commit is contained in:
haomingming 2026-01-06 17:09:55 +08:00
parent c786568d99
commit e840e99388

View File

@ -453,13 +453,30 @@ func (r *OrderProductDao) GetOrderProductExportListSearch(req requests.OrderProd
// 当前搜索数据
if req.Type == 1 {
// 医生姓名
// 医生姓名 - 同时查询原医生和抄方医生
if req.DoctorName != "" {
subQuery := global.Db.Model(&model.UserDoctor{}).
// 原医生查询条件
originalDoctorSubQuery := global.Db.Model(&model.UserDoctor{}).
Select("doctor_id").
Where("user_name LIKE ?", "%"+req.DoctorName+"%")
query = query.Where(gorm.Expr("doctor_id IN (?)", subQuery))
// 抄方医生查询条件
transferDoctorSubQuery := global.Db.Model(&model.UserDoctor{}).
Select("doctor_id").
Where("user_name LIKE ?", "%"+req.DoctorName+"%")
// 查询抄方医生对应的问诊订单ID
inquirySubQuery := global.Db.Model(&model.OrderInquiry{}).
Select("order_inquiry_id").
Where(gorm.Expr("doctor_id IN (?)", transferDoctorSubQuery))
// 使用 OR 条件:原医生匹配 OR 抄方医生匹配
// 通过嵌套 Where 子查询把 OR 条件包在一组括号里,避免影响其它条件
orCond := global.Db.
Where(gorm.Expr("doctor_id IN (?)", originalDoctorSubQuery)).
Or(gorm.Expr("order_inquiry_id IN (?)", inquirySubQuery))
query = query.Where(orCond)
}
// 患者姓名-就诊人