You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.8 KiB

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:"印业执照"` //营业执照
TaxPhoto string `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:"联系人"` //联系人
ContractMobile 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,
ContractMobile: data.ContractMobile,
TaxNumber: data.Taxpayer,
ContractName: data.Linkman,
CompanyName: data.CorporationName,
State: company.Wait,
CreatedAt: formatime.NewSecondNow(),
}
if data.TaxBillType == "一般纳税人" {
companyInfo.TaxPhoto = data.TaxPhoto
}
return mysql.Db.Transaction(func(tx *gorm.DB) error {
if tx.Create(&companyInfo).Error != nil {
return errors.New("提交失败")
}
return nil
})
}