| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package dao
-
- import (
- "context"
- "fmt"
-
- "git.x2erp.com/qdy/go-svc-configure/internal/tables"
- "github.com/jmoiron/sqlx"
- )
-
- // CreateTenant 创建租户
- func CreateTenant(ctx context.Context, tx *sqlx.Tx, tenantID, name, creator string) (int64, error) {
- id := fmt.Sprintf("tenant.%s", tenantID)
-
- query := `
- INSERT INTO config_tenant
- (id, tenant_id, name, creator, created_at)
- VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)
- `
-
- result, err := tx.ExecContext(ctx, query, id, tenantID, name, creator)
- if err != nil {
- return -1, fmt.Errorf("创建租户失败: %v", err)
- }
-
- return ValidateResultRowsAffected(result, err, 1)
- }
-
- // GetTenantByTenantID 根据租户ID查询租户
- func GetTenantByTenantID(ctx context.Context, db *sqlx.DB, tenantID string) (*tables.TenantDB, error) {
- var tenant tables.TenantDB
-
- query := `
- SELECT id, tenant_id, name, creator, created_at
- FROM config_tenant
- WHERE tenant_id = ?
- `
-
- err := db.GetContext(ctx, &tenant, query, tenantID)
- if err != nil {
- return nil, fmt.Errorf("查询租户失败: %v", err)
- }
-
- return &tenant, nil
- }
-
- // ListTenants 查询租户列表
- func ListTenants(ctx context.Context, db *sqlx.DB) ([]tables.TenantDB, error) {
- var tenants []tables.TenantDB
-
- query := `
- SELECT id, tenant_id, name, creator, created_at
- FROM config_tenant
- ORDER BY created_at DESC
- `
-
- err := db.SelectContext(ctx, &tenants, query)
- if err != nil {
- return nil, fmt.Errorf("查询租户列表失败: %v", err)
- }
-
- return tenants, nil
- }
-
- // UpdateTenant 更新租户信息
- func UpdateTenant(ctx context.Context, tx *sqlx.Tx, tenantID, name string) (int64, error) {
- query := `
- UPDATE config_tenant
- SET name = ?
- WHERE tenant_id = ?
- `
-
- result, err := tx.ExecContext(ctx, query, name, tenantID)
- if err != nil {
- return -1, fmt.Errorf("更新租户失败: %v", err)
- }
-
- return ValidateResultRowsAffected(result, err, 1)
- }
-
- // DeleteTenant 删除租户
- func DeleteTenant(ctx context.Context, tx *sqlx.Tx, tenantID string) (int64, error) {
- query := `DELETE FROM config_tenant WHERE tenant_id = ?`
-
- result, err := tx.ExecContext(ctx, query, tenantID)
- if err != nil {
- return -1, fmt.Errorf("删除租户失败: %v", err)
- }
-
- return ValidateResultRowsAffected(result, err, 1)
- }
-
- // CheckTenantExists 检查租户是否存在
- func CheckTenantExists(ctx context.Context, db *sqlx.DB, tenantID string) (bool, error) {
- var count int
- query := `SELECT COUNT(*) FROM config_tenant WHERE tenant_id = ?`
-
- err := db.GetContext(ctx, &count, query, tenantID)
- if err != nil {
- return false, fmt.Errorf("检查租户存在性失败: %v", err)
- }
-
- return count > 0, nil
- }
|