package db import ( "context" "fmt" "github.com/sirupsen/logrus" "youngee_b_api/model/gorm_model" ) // CreateSubAccount 新建子账号 func CreateSubAccount(ctx context.Context, account gorm_model.YounggeeSubAccount) error { db := GetWriteDB(ctx) err := db.Create(&account).Error if err != nil { return err } return nil } // UpdateSubAccount 更新子账号 func UpdateSubAccount(ctx context.Context, account *gorm_model.YounggeeSubAccount) error { db := GetWriteDB(ctx) whereCondition := gorm_model.YounggeeSubAccount{SubAccountId: account.SubAccountId} err := db.Model(&gorm_model.YounggeeSubAccount{}).Where(whereCondition).Updates(account).Error if err != nil { return err } return nil } // DeleteSubAccount 删除子账号 func DeleteSubAccount(ctx context.Context, account gorm_model.YounggeeSubAccount) error { db := GetWriteDB(ctx) whereCondition := gorm_model.YounggeeSubAccount{SubAccountId: account.SubAccountId} err := db.Where(whereCondition).Delete(&gorm_model.YounggeeSubAccount{}).Error if err != nil { return err } return nil } // FindSubAccountByPhone 根据手机号码查询子账号 func FindSubAccountByPhone(ctx context.Context, phone string) (*gorm_model.YounggeeSubAccount, error) { db := GetReadDB(ctx) var total int64 var subAccount *gorm_model.YounggeeSubAccount whereCondition := gorm_model.YounggeeSubAccount{PhoneNumber: phone, SubAccountType: 3} err := db.Model(gorm_model.YounggeeSubAccount{}).Where(whereCondition).Find(&subAccount).Count(&total).Error if err != nil { return nil, err } fmt.Println(total) if total == 0 { return nil, err } return subAccount, nil } // FindSubAccountById 根据Id查询子账号 func FindSubAccountById(ctx context.Context, subAccountId int) (*gorm_model.YounggeeSubAccount, error) { db := GetReadDB(ctx) var total int64 var subAccount *gorm_model.YounggeeSubAccount whereCondition := gorm_model.YounggeeSubAccount{SubAccountId: subAccountId, SubAccountType: 3} err := db.Model(gorm_model.YounggeeSubAccount{}).Where(whereCondition).Find(&subAccount).Count(&total).Error if err != nil { return nil, err } fmt.Println(total) if total == 0 { return nil, err } return subAccount, nil } /* // FindSubAccountBySupplierId 根据服务商ID查找包含的所有子账号信息 func FindSubAccountBySupplierId(ctx context.Context, pageNum int32, pageSize int32, supplierId int, jobId int, accountStatus int, condition string) ([]*gorm_model.YounggeeSubAccount, int64, error) { db := GetReadDB(ctx) var total int64 var subAccount []*gorm_model.YounggeeSubAccount whereCondition := gorm_model.YounggeeSubAccount{SupplierId: supplierId, SubAccountType: 3, JobId: jobId, AccountStatus: accountStatus} err := db.Model(gorm_model.YounggeeSubAccount{}).Where(whereCondition).Find(&subAccount).Count(&total).Error if err != nil { return nil, 0, err } if total == 0 { return nil, 0, err } return subAccount, total, nil } */ // FindSubAccountBySupplierId 根据服务商ID查找包含的所有子账号信息 func FindSubAccountBySupplierId(ctx context.Context, pageNum int32, pageSize int32, supplierId int, jobId int, accountStatus int, condition string) ([]*gorm_model.YounggeeSubAccount, int64, error) { db := GetReadDB(ctx) query := db.Model(&gorm_model.YounggeeSubAccount{}). Where("supplier_id = ? and sub_account_type = ? and account_status = 1", supplierId, 3) if jobId != 0 { query = query.Where("job_id = ?", jobId) } if accountStatus != 0 { query = query.Where("account_status = ?", accountStatus) } if condition != "" { query = query.Where("sub_account_name LIKE ?", "%"+condition+"%") } // Get total count var total int64 if err := query.Count(&total).Error; err != nil { return nil, 0, err } if total == 0 { return nil, 0, nil } var subAccounts []*gorm_model.YounggeeSubAccount offset := (pageNum - 1) * pageSize if err := query.Offset(int(offset)).Limit(int(pageSize)).Find(&subAccounts).Error; err != nil { return nil, 0, err } return subAccounts, total, nil } // CountSubAccountUserByPhone 按照手机号码统计子账号数量 func CountSubAccountUserByPhone(ctx context.Context, phone string) (int64, error) { db := GetReadDB(ctx) var taskNum int64 err := db.Model(gorm_model.YounggeeSubAccount{}).Where("phone_number = ? and sub_account_type = 3", phone).Count(&taskNum).Error if err != nil { logrus.WithContext(ctx).Errorf("[CountSubAccountUserByPhone] error read mysql, err:%+v", err) return 0, err } return taskNum, nil }