package controllers import ( "encoding/json" "strconv" "server/models" "github.com/beego/beego/v2/server/web" ) type TenantController struct { web.Controller } // GetAllTenants 获取所有租户 func (c *TenantController) GetAllTenants() { tenants, err := models.GetTenantList() if err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "获取租户列表失败: " + err.Error(), } } else { c.Data["json"] = map[string]interface{}{ "success": true, "message": "获取租户列表成功", "data": tenants, } } c.ServeJSON() } // CreateTenant 新增租户 func (c *TenantController) CreateTenant() { var tenant models.Tenant if err := json.Unmarshal(c.Ctx.Input.RequestBody, &tenant); err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "解析租户数据失败: " + err.Error(), } c.ServeJSON() return } err := models.CreateTenant(&tenant) if err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "创建租户失败: " + err.Error(), } } else { c.Data["json"] = map[string]interface{}{ "success": true, "message": "租户创建成功", "data": tenant, } } c.ServeJSON() } // UpdateTenant 编辑租户 func (c *TenantController) UpdateTenant() { idStr := c.Ctx.Input.Param(":id") id, err := strconv.Atoi(idStr) if err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "无效的租户ID", } c.ServeJSON() return } var data map[string]interface{} if err := json.Unmarshal(c.Ctx.Input.RequestBody, &data); err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "解析更新数据失败: " + err.Error(), } c.ServeJSON() return } err = models.UpdateTenant(id, data) if err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "编辑租户失败: " + err.Error(), } } else { c.Data["json"] = map[string]interface{}{ "success": true, "message": "租户编辑成功", } } c.ServeJSON() } // DeleteTenant 删除租户 func (c *TenantController) DeleteTenant() { idStr := c.Ctx.Input.Param(":id") id, err := strconv.Atoi(idStr) if err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "无效的租户ID", } c.ServeJSON() return } err = models.DeleteTenant(id) if err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "删除租户失败: " + err.Error(), } } else { c.Data["json"] = map[string]interface{}{ "success": true, "message": "租户删除成功", } } c.ServeJSON() } // AuditTenant 审核租户 func (c *TenantController) AuditTenant() { idStr := c.Ctx.Input.Param(":id") id, err := strconv.Atoi(idStr) if err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "无效的租户ID", } c.ServeJSON() return } // 解析 JSON 请求体 var auditData struct { AuditStatus string `json:"audit_status"` AuditComment string `json:"audit_comment"` AuditBy string `json:"audit_by"` } if err := json.Unmarshal(c.Ctx.Input.RequestBody, &auditData); err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "解析审核数据失败: " + err.Error(), } c.ServeJSON() return } if auditData.AuditStatus == "" { c.Data["json"] = map[string]interface{}{ "success": false, "message": "审核状态不能为空", } c.ServeJSON() return } err = models.AuditTenant(id, auditData.AuditStatus, auditData.AuditComment, auditData.AuditBy) if err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "审核租户失败: " + err.Error(), } } else { c.Data["json"] = map[string]interface{}{ "success": true, "message": "审核成功", } } c.ServeJSON() } // GetTenantDetail 查看租户详情 func (c *TenantController) GetTenantDetail() { idStr := c.Ctx.Input.Param(":id") id, err := strconv.Atoi(idStr) if err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "无效的租户ID", } c.ServeJSON() return } tenant, err := models.GetTenantById(id) if err != nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "获取租户详情失败: " + err.Error(), } } else if tenant == nil { c.Data["json"] = map[string]interface{}{ "success": false, "message": "租户不存在", } } else { c.Data["json"] = map[string]interface{}{ "success": true, "message": "获取租户详情成功", "data": tenant, } } c.ServeJSON() }