hospital-admin-api/api/dto/DoctorWithdrawal.go

198 lines
7.5 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}