121 lines
3.1 KiB
Go
121 lines
3.1 KiB
Go
package dao
|
|
|
|
import (
|
|
"errors"
|
|
"gorm.io/gorm"
|
|
"hospital-admin-api/api/model"
|
|
"hospital-admin-api/api/requests"
|
|
"hospital-admin-api/global"
|
|
"strings"
|
|
)
|
|
|
|
type DoctorWithdrawalOrderDao struct {
|
|
}
|
|
|
|
// GetDoctorWithdrawalOrderById 获取医生提现关联订单数据-id
|
|
func (r *DoctorWithdrawalOrderDao) GetDoctorWithdrawalOrderById(withdrawalBankId int64) (m *model.DoctorWithdrawalOrder, 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.DoctorWithdrawalOrder, err error) {
|
|
err = global.Db.Where("withdrawal_id = ?", withdrawalId).Find(&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{})
|
|
|
|
if req.WithdrawalId != "" {
|
|
query = query.Where("withdrawal_id = ?", req.WithdrawalId)
|
|
}
|
|
|
|
// 医生
|
|
query = query.Preload("UserDoctor", func(db *gorm.DB) *gorm.DB {
|
|
return db.Omit("open_id", "union_id", "wx_session_key")
|
|
})
|
|
|
|
// 订单
|
|
query = query.Preload("Order")
|
|
|
|
// 订单-问诊
|
|
query = query.Preload("Order.OrderInquiry")
|
|
|
|
// 订单-服务包
|
|
query = query.Preload("Order.OrderServicePackage")
|
|
|
|
// 患者
|
|
query = query.Preload("Order.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
|
|
}
|
|
|
|
// GetDoctorWithdrawalOrderExportListSearch 获取医生提现关联订单列表-导出
|
|
func (r *DoctorWithdrawalOrderDao) GetDoctorWithdrawalOrderExportListSearch(req requests.DoctorWithdrawalOrderExportList) (m []*model.DoctorWithdrawalOrder, err error) {
|
|
// 构建查询条件
|
|
query := global.Db.Model(&model.DoctorWithdrawalOrder{})
|
|
|
|
if req.WithdrawalId != "" {
|
|
query = query.Where("withdrawal_id = ?", req.WithdrawalId)
|
|
}
|
|
|
|
// 医生
|
|
query = query.Preload("UserDoctor", func(db *gorm.DB) *gorm.DB {
|
|
return db.Omit("open_id", "union_id", "wx_session_key")
|
|
})
|
|
|
|
// 订单
|
|
query = query.Preload("Order")
|
|
|
|
// 订单-问诊
|
|
query = query.Preload("Order.OrderInquiry")
|
|
|
|
// 订单-服务包
|
|
query = query.Preload("Order.OrderServicePackage")
|
|
|
|
// 患者
|
|
query = query.Preload("Order.User")
|
|
|
|
// 排序
|
|
query = query.Order("created_at desc")
|
|
|
|
// 当前选择数据
|
|
if req.Type == 2 {
|
|
if req.Id == "" {
|
|
return nil, errors.New("未提供需导出数据编号")
|
|
}
|
|
|
|
id := strings.Split(req.Id, ",")
|
|
query = query.Where("withdrawal_order_id IN (?)", id)
|
|
}
|
|
|
|
err = query.Find(&m).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return m, nil
|
|
}
|