hospital-admin-api/api/dao/doctorWithdrawalOrder.go

63 lines
1.7 KiB
Go

package dao
import (
"gorm.io/gorm"
"hospital-admin-api/api/model"
"hospital-admin-api/api/requests"
"hospital-admin-api/global"
)
type DoctorWithdrawalOrderDao struct {
}
// GetDoctorWithdrawalOrderById 获取医生提现关联订单数据-id
func (r *DoctorWithdrawalOrderDao) GetDoctorWithdrawalOrderById(withdrawalBankId int64) (m *model.DoctorWithdrawalBank, err error) {
err = global.Db.First(&m, withdrawalBankId).Error
if err != nil {
return nil, err
}
return m, nil
}
// GetDoctorWithdrawalOrderByWithdrawalId 获取医生提现关联订单数据-提现id
func (r *DoctorWithdrawalOrderDao) GetDoctorWithdrawalOrderByWithdrawalId(withdrawalId int64) (m *model.DoctorWithdrawalBank, err error) {
err = global.Db.Where("withdrawal_id = ?", withdrawalId).First(&m).Error
if err != nil {
return nil, err
}
return m, nil
}
// GetDoctorWithdrawalOrderPageSearch 获取医生提现列表-分页
func (r *DoctorWithdrawalOrderDao) GetDoctorWithdrawalOrderPageSearch(req requests.GetDoctorWithdrawalOrderPage, page, pageSize int) (m []*model.DoctorWithdrawalOrder, total int64, err error) {
var totalRecords int64
// 构建查询条件
query := global.Db.Model(&model.DoctorWithdrawalOrder{})
// 医生
query = query.Preload("UserDoctor", func(db *gorm.DB) *gorm.DB {
return db.Omit("open_id", "union_id", "wx_session_key")
})
// 订单
query = query.Preload("OrderInquiry")
// 患者
query = query.Preload("OrderInquiry.User")
// 排序
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
}