135 lines
5.4 KiB
Go
135 lines
5.4 KiB
Go
package dto
|
||
|
||
import (
|
||
"fmt"
|
||
"hospital-admin-api/api/dao"
|
||
"hospital-admin-api/api/model"
|
||
)
|
||
|
||
type DoctorWithdrawalDto struct {
|
||
WithdrawalId string `json:"withdrawal_id"` // 主键id
|
||
DoctorId string `json:"doctor_id"` // 医生id;NOT NULL
|
||
BankId string `json:"bank_id"` // 银行id
|
||
AccountName string `json:"account_name"` // 银行卡姓名;NOT NULL
|
||
BankCardCode string `json:"bank_card_code"` // 银行卡号
|
||
BankCardCodeFour string `json:"bank_card_code_four"` // 银行卡号(后四位);NOT NULL
|
||
AppliedWithdrawalAmount float64 `json:"applied_withdrawal_amount"` // 提现金额
|
||
ActualWithdrawalAmount float64 `json:"actual_withdrawal_amount"` // 实际提现金额
|
||
IncomeTax float64 `json:"income_tax"` // 提现所得税金额
|
||
ExamineStatus int `json:"examine_status"` // 审核状态(1:审核中 2:审核通过 3:审核未通过)
|
||
ExamineFailReason string `json:"examine_fail_reason"` // 审核失败原因
|
||
ExamineTime model.LocalTime `json:"examine_time"` // 审核日期
|
||
ExamineBy string `json:"examine_by"` // 审核人员id(后台用户id)
|
||
PaymentStatus int `json:"payment_status"` // 财务打款状态(0:否 1:是)
|
||
PaymentTime model.LocalTime `json:"payment_time"` // 财务打款时间
|
||
PaymentBy string `json:"payment_by"` // 财务打款人员id(后台用户id)
|
||
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
||
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
||
DoctorName string `json:"doctor_name"` // 医生姓名
|
||
}
|
||
|
||
func GetDoctorWithdrawalDto(m *model.DoctorWithdrawal) *DoctorWithdrawalDto {
|
||
return &DoctorWithdrawalDto{
|
||
WithdrawalId: fmt.Sprintf("%d", m.WithdrawalId),
|
||
DoctorId: fmt.Sprintf("%d", m.DoctorId),
|
||
BankId: fmt.Sprintf("%d", m.BankId),
|
||
AccountName: m.AccountName,
|
||
BankCardCode: m.BankCardCode,
|
||
BankCardCodeFour: m.BankCardCodeFour,
|
||
AppliedWithdrawalAmount: m.AppliedWithdrawalAmount,
|
||
ActualWithdrawalAmount: m.ActualWithdrawalAmount,
|
||
IncomeTax: m.IncomeTax,
|
||
ExamineStatus: m.ExamineStatus,
|
||
ExamineFailReason: m.ExamineFailReason,
|
||
ExamineTime: m.ExamineTime,
|
||
ExamineBy: fmt.Sprintf("%d", m.ExamineBy),
|
||
PaymentStatus: m.PaymentStatus,
|
||
PaymentTime: m.PaymentTime,
|
||
PaymentBy: fmt.Sprintf("%d", m.PaymentBy),
|
||
CreatedAt: m.CreatedAt,
|
||
UpdatedAt: m.UpdatedAt,
|
||
}
|
||
}
|
||
|
||
func GetDoctorWithdrawalListDto(m []*model.DoctorWithdrawal) []*DoctorWithdrawalDto {
|
||
// 处理返回值
|
||
responses := make([]*DoctorWithdrawalDto, len(m))
|
||
|
||
if len(m) > 0 {
|
||
for i, v := range m {
|
||
response := &DoctorWithdrawalDto{
|
||
WithdrawalId: fmt.Sprintf("%d", v.WithdrawalId),
|
||
DoctorId: fmt.Sprintf("%d", v.DoctorId),
|
||
BankId: fmt.Sprintf("%d", v.BankId),
|
||
AccountName: v.AccountName,
|
||
BankCardCode: v.BankCardCode,
|
||
BankCardCodeFour: v.BankCardCodeFour,
|
||
AppliedWithdrawalAmount: v.AppliedWithdrawalAmount,
|
||
ActualWithdrawalAmount: v.ActualWithdrawalAmount,
|
||
IncomeTax: v.IncomeTax,
|
||
ExamineStatus: v.ExamineStatus,
|
||
ExamineFailReason: v.ExamineFailReason,
|
||
ExamineTime: v.ExamineTime,
|
||
ExamineBy: fmt.Sprintf("%d", v.ExamineBy),
|
||
PaymentStatus: v.PaymentStatus,
|
||
PaymentTime: v.PaymentTime,
|
||
PaymentBy: fmt.Sprintf("%d", v.PaymentBy),
|
||
CreatedAt: v.CreatedAt,
|
||
UpdatedAt: v.UpdatedAt,
|
||
}
|
||
|
||
// 加载医生名称
|
||
if v.UserDoctor != nil {
|
||
response.LoadDoctorName(v.UserDoctor)
|
||
}
|
||
|
||
// 加载审核人员
|
||
if v.ExamineBy != 0 {
|
||
response.LoadExamineByName(v.ExamineBy)
|
||
}
|
||
|
||
// 加载打款人员
|
||
if v.PaymentBy != 0 {
|
||
response.LoadPaymentByName(v.PaymentBy)
|
||
}
|
||
|
||
// 将转换后的结构体添加到新切片中
|
||
responses[i] = response
|
||
}
|
||
}
|
||
|
||
return responses
|
||
}
|
||
|
||
// LoadDoctorName 加载医生名称
|
||
func (r *DoctorWithdrawalDto) LoadDoctorName(m *model.UserDoctor) *DoctorWithdrawalDto {
|
||
if m != nil {
|
||
r.DoctorName = m.UserName
|
||
}
|
||
return r
|
||
}
|
||
|
||
// LoadExamineByName 加载审核人员名称
|
||
func (r *DoctorWithdrawalDto) LoadExamineByName(examineBy int64) *DoctorWithdrawalDto {
|
||
if examineBy != 0 {
|
||
adminUserDao := dao.AdminUserDao{}
|
||
adminUser, err := adminUserDao.GetAdminUserFirstById(examineBy)
|
||
if err == nil && adminUser != nil {
|
||
r.ExamineBy = adminUser.NickName
|
||
}
|
||
}
|
||
return r
|
||
}
|
||
|
||
// LoadPaymentByName 加载打款人员名称
|
||
func (r *DoctorWithdrawalDto) LoadPaymentByName(paymentBy int64) *DoctorWithdrawalDto {
|
||
if paymentBy != 0 {
|
||
adminUserDao := dao.AdminUserDao{}
|
||
adminUser, err := adminUserDao.GetAdminUserFirstById(paymentBy)
|
||
if err == nil && adminUser != nil {
|
||
r.PaymentBy = adminUser.NickName
|
||
}
|
||
}
|
||
return r
|
||
}
|