package copartner import ( "errors" "fmt" "git.oa00.com/go/mysql" "github.com/golangkit/formatime" "github.com/shopspring/decimal" "gorm.io/gorm" "recook/internal/v2/model/company" "recook/internal/v2/model/recook/user" ) var CompanyLogic = &companyLogic{} type companyLogic struct { } type CompanyInfo struct { Phone string `binding:"required,len=11,startswith=1" label:"手机号"` //手机号 NikeName string `binding:"required" label:"昵称"` //昵称 BusinessLicense string `binding:"required" label:"印业执照"` //营业执照 CorporationName string `binding:"required" label:"企业名"` //企业名 TaxBillType string `binding:"required" label:"纳税类型"` //纳税类型 Taxpayer string `binding:"required" label:"纳税识别号"` //纳税识别号 OpeningBank string `binding:"required" label:"开户行"` //开户行 BankAccount string `binding:"required" label:"银行账户"` //银行账户 MakeTax decimal.Decimal `binding:"required" label:"开票税率"` //开票税率 Linkman string `binding:"required" label:"联系人"` //联系人 PEmail string `binding:"required" label:"联系人手机号或者邮箱"` //联系人手机号或者邮箱 } // Add @Title 添加合伙人 func (c *companyLogic) Add(data CompanyInfo) error { userInfoModel := user.RecookUserInfoModel{Mobile: data.Phone} mysql.Db.Where(&userInfoModel).First(&userInfoModel) if userInfoModel.Id > 0 { return fmt.Errorf("手机已存在") } userInfo := user.RecookUserInfoModel{Nickname: data.NikeName} mysql.Db.Where(&userInfo).First(&userInfoModel) if userInfo.Id > 0 { return fmt.Errorf("昵称已存在") } companyInfo := company.Info{ ShopName: data.NikeName, Mobile: data.Phone, BusinessPhoto: data.BusinessLicense, TaxBank: data.OpeningBank, TaxAccount: data.BankAccount, Tax: data.MakeTax, TaxType: data.TaxBillType, ContractEmail: data.PEmail, TaxNumber: data.Taxpayer, ContractName: data.Linkman, CompanyName: data.CorporationName, State: company.Wait, CreatedAt: formatime.NewSecondNow(), } return mysql.Db.Transaction(func(tx *gorm.DB) error { if tx.Create(&companyInfo).Error != nil { return errors.New("提交失败") } return nil }) }