71 lines
2.4 KiB
Go
71 lines
2.4 KiB
Go
|
|
package entities
|
||
|
|
|
||
|
|
import (
|
||
|
|
"time"
|
||
|
|
|
||
|
|
"gorm.io/gorm"
|
||
|
|
)
|
||
|
|
|
||
|
|
// UserInvoiceInfo 用户开票信息实体
|
||
|
|
type UserInvoiceInfo struct {
|
||
|
|
ID string `gorm:"primaryKey;type:varchar(36)" json:"id"`
|
||
|
|
UserID string `gorm:"uniqueIndex;type:varchar(36);not null" json:"user_id"`
|
||
|
|
|
||
|
|
// 开票信息字段
|
||
|
|
CompanyName string `gorm:"type:varchar(200);not null" json:"company_name"` // 公司名称
|
||
|
|
TaxpayerID string `gorm:"type:varchar(50);not null" json:"taxpayer_id"` // 纳税人识别号
|
||
|
|
BankName string `gorm:"type:varchar(100)" json:"bank_name"` // 开户银行
|
||
|
|
BankAccount string `gorm:"type:varchar(50)" json:"bank_account"` // 银行账号
|
||
|
|
CompanyAddress string `gorm:"type:varchar(500)" json:"company_address"` // 企业地址
|
||
|
|
CompanyPhone string `gorm:"type:varchar(20)" json:"company_phone"` // 企业电话
|
||
|
|
ReceivingEmail string `gorm:"type:varchar(100);not null" json:"receiving_email"` // 发票接收邮箱
|
||
|
|
|
||
|
|
// 元数据
|
||
|
|
CreatedAt time.Time `json:"created_at"`
|
||
|
|
UpdatedAt time.Time `json:"updated_at"`
|
||
|
|
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// TableName 指定表名
|
||
|
|
func (UserInvoiceInfo) TableName() string {
|
||
|
|
return "user_invoice_info"
|
||
|
|
}
|
||
|
|
|
||
|
|
// IsComplete 检查开票信息是否完整
|
||
|
|
func (u *UserInvoiceInfo) IsComplete() bool {
|
||
|
|
return u.CompanyName != "" && u.TaxpayerID != "" && u.ReceivingEmail != ""
|
||
|
|
}
|
||
|
|
|
||
|
|
// IsCompleteForSpecialInvoice 检查专票信息是否完整
|
||
|
|
func (u *UserInvoiceInfo) IsCompleteForSpecialInvoice() bool {
|
||
|
|
return u.CompanyName != "" && u.TaxpayerID != "" && u.BankName != "" &&
|
||
|
|
u.BankAccount != "" && u.CompanyAddress != "" && u.CompanyPhone != "" &&
|
||
|
|
u.ReceivingEmail != ""
|
||
|
|
}
|
||
|
|
|
||
|
|
// GetMissingFields 获取缺失的字段
|
||
|
|
func (u *UserInvoiceInfo) GetMissingFields() []string {
|
||
|
|
var missing []string
|
||
|
|
if u.CompanyName == "" {
|
||
|
|
missing = append(missing, "公司名称")
|
||
|
|
}
|
||
|
|
if u.TaxpayerID == "" {
|
||
|
|
missing = append(missing, "纳税人识别号")
|
||
|
|
}
|
||
|
|
if u.BankName == "" {
|
||
|
|
missing = append(missing, "开户银行")
|
||
|
|
}
|
||
|
|
if u.BankAccount == "" {
|
||
|
|
missing = append(missing, "银行账号")
|
||
|
|
}
|
||
|
|
if u.CompanyAddress == "" {
|
||
|
|
missing = append(missing, "企业地址")
|
||
|
|
}
|
||
|
|
if u.CompanyPhone == "" {
|
||
|
|
missing = append(missing, "企业电话")
|
||
|
|
}
|
||
|
|
if u.ReceivingEmail == "" {
|
||
|
|
missing = append(missing, "发票接收邮箱")
|
||
|
|
}
|
||
|
|
return missing
|
||
|
|
}
|