198 lines
7.5 KiB
Go
198 lines
7.5 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
|
||
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"` // 医生姓名
|
||
DoctorCardNumMask string `json:"doctor_card_num_mask"` // 医生证件号码(掩码)
|
||
DoctorBankCard *DoctorBankCardDto `json:"doctor_bank_card"` // 加载医生银行卡数据
|
||
DoctorWithdrawalBank *DoctorWithdrawalBankDto `json:"doctor_withdrawal_bank"` // 医生提现表-关联银行
|
||
BankName string `json:"bank_name"` // 提现银行名称
|
||
BankCity string `json:"bank_city"` // 提现银行开户行城市
|
||
DoctorUserId string `json:"doctor_user_id"` // 医生user_id
|
||
}
|
||
|
||
func GetDoctorWithdrawalDto(m *model.DoctorWithdrawal) *DoctorWithdrawalDto {
|
||
return &DoctorWithdrawalDto{
|
||
WithdrawalId: fmt.Sprintf("%d", m.WithdrawalId),
|
||
DoctorId: fmt.Sprintf("%d", m.DoctorId),
|
||
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),
|
||
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: "",
|
||
PaymentStatus: v.PaymentStatus,
|
||
PaymentTime: v.PaymentTime,
|
||
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)
|
||
}
|
||
|
||
if v.DoctorWithdrawalBank != nil {
|
||
// 加载提现银行名称
|
||
if v.DoctorWithdrawalBank.BasicBank != nil {
|
||
response.LoadBankName(v.DoctorWithdrawalBank.BasicBank)
|
||
}
|
||
|
||
// 加载开户行城市名称
|
||
response.LoadBankCity(v.DoctorWithdrawalBank)
|
||
}
|
||
|
||
// 将转换后的结构体添加到新切片中
|
||
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 {
|
||
r.ExamineBy = ""
|
||
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 {
|
||
r.PaymentBy = ""
|
||
if paymentBy != 0 {
|
||
adminUserDao := dao.AdminUserDao{}
|
||
adminUser, err := adminUserDao.GetAdminUserFirstById(paymentBy)
|
||
if err == nil && adminUser != nil {
|
||
r.PaymentBy = adminUser.NickName
|
||
}
|
||
}
|
||
return r
|
||
}
|
||
|
||
// LoadDoctorCardNumMask 加载医生证件号码(掩码)
|
||
func (r *DoctorWithdrawalDto) LoadDoctorCardNumMask(m *model.UserDoctorInfo) *DoctorWithdrawalDto {
|
||
if m != nil {
|
||
r.DoctorCardNumMask = m.CardNumMask
|
||
}
|
||
return r
|
||
}
|
||
|
||
// LoadBankName 加载提现银行名称
|
||
func (r *DoctorWithdrawalDto) LoadBankName(m *model.BasicBank) *DoctorWithdrawalDto {
|
||
if m != nil {
|
||
r.BankName = m.BankName
|
||
}
|
||
return r
|
||
}
|
||
|
||
// LoadBankCity 加载开户行城市名称
|
||
func (r *DoctorWithdrawalDto) LoadBankCity(m *model.DoctorWithdrawalBank) *DoctorWithdrawalDto {
|
||
if m != nil {
|
||
r.BankCity = m.Province + m.City + m.County
|
||
}
|
||
return r
|
||
}
|
||
|
||
// LoadDoctorWithdrawalBank 加载提现关联银行数据
|
||
func (r *DoctorWithdrawalDto) LoadDoctorWithdrawalBank(m *model.DoctorWithdrawalBank) *DoctorWithdrawalDto {
|
||
if m != nil {
|
||
r.DoctorWithdrawalBank = GetDoctorWithdrawalBankDto(m)
|
||
}
|
||
return r
|
||
}
|
||
|
||
// LoadBasicBank 加载基础银行数据
|
||
func (r *DoctorWithdrawalDto) LoadBasicBank(m *model.BasicBank) *DoctorWithdrawalDto {
|
||
if m != nil {
|
||
r.DoctorWithdrawalBank.BasicBank = GetBasicBankDto(m)
|
||
}
|
||
return r
|
||
}
|
||
|
||
// LoadDoctorUserId 加载医生user_id
|
||
func (r *DoctorWithdrawalDto) LoadDoctorUserId(m *model.User) *DoctorWithdrawalDto {
|
||
if m != nil {
|
||
r.DoctorUserId = fmt.Sprintf("%d", m.UserId)
|
||
}
|
||
return r
|
||
}
|