package db import ( "context" "youngee_b_api/model/gorm_model" "youngee_b_api/model/http_model" "gorm.io/gorm" ) func CreateEnterprise(ctx context.Context, newEnterprise gorm_model.Enterprise) (*int64, error) { db := GetReadDB(ctx) err := db.Create(&newEnterprise).Error if err != nil { return nil, err } return &newEnterprise.EnterpriseID, nil } //用户ID查找 func GetEnterpriseByUID(ctx context.Context, userID int64) (*gorm_model.Enterprise, error) { db := GetReadDB(ctx) enterprise := gorm_model.Enterprise{} err := db.Where("user_id = ?", userID).First(&enterprise).Error if err != nil { if err == gorm.ErrRecordNotFound { return nil, nil } else { return nil, err } } return &enterprise, nil } //企业ID查找 func GetEnterpriseByEnterpriseID(ctx context.Context, EnterpriseID int64) (*gorm_model.Enterprise, error) { db := GetReadDB(ctx) enterprise := gorm_model.Enterprise{} err := db.Where("enterprise_id = ?", EnterpriseID).First(&enterprise).Error if err != nil { if err == gorm.ErrRecordNotFound { return nil, nil } else { return nil, err } } return &enterprise, nil } // GetEnterpriseBalance 获取企业可用余额等信息 func GetEnterpriseBalance(ctx context.Context, EnterpriseID int64) (*http_model.EnterpriseBalanceData, error) { db := GetReadDB(ctx) enterprise := gorm_model.Enterprise{} err := db.Where("enterprise_id = ?", EnterpriseID).First(&enterprise).Error if err != nil { if err == gorm.ErrRecordNotFound { return nil, nil } else { return nil, err } } res := &http_model.EnterpriseBalanceData{ Balance: enterprise.Balance, FrozenBalance: enterprise.FrozenBalance, AvailableBalance: enterprise.AvailableBalance, } return res, nil } // 支付-修改企业账户余额 func UpdateEnterpriseBalance(ctx context.Context, EnterpriseID int64, balance int64, availableBalance int64, frozenBalance int64) (*int64, error) { db := GetReadDB(ctx) err := db.Model(gorm_model.Enterprise{}).Where("enterprise_id", EnterpriseID). Updates(map[string]interface{}{"balance": gorm.Expr("balance + ?", balance), "available_balance": gorm.Expr("available_balance + ?", availableBalance), "frozen_balance": gorm.Expr("frozen_balance + ?", frozenBalance)}).Error if err != nil { return nil, err } enterprise := gorm_model.Enterprise{} err = db.Model(gorm_model.Enterprise{}).Where("enterprise_id", EnterpriseID).Scan(&enterprise).Error if err != nil { return nil, err } return &enterprise.Balance, nil }