package service import ( "iot_manager_service/app/system/dao" "iot_manager_service/util" "time" ) // 租户管理服务 var TenantService = new(tenantService) type tenantService struct{} func (s *tenantService) GetTenantByPasskey(passKey string) (*dao.Tenant, error) { tenant := &dao.Tenant{ PassKey: passKey, } err := tenant.GetTenantByPasskey() if err != nil { return nil, err } return tenant, nil } func (s *tenantService) GetOne(tenantId int) (*dao.Tenant, error) { tenant := &dao.Tenant{ TenantId: tenantId, } err := tenant.GetTenant() if err != nil { return nil, err } return tenant, nil } func (s *tenantService) Get(id int64) (*dao.Tenant, error) { tenant := &dao.Tenant{ ID: id, } err := tenant.Get() if err != nil { return nil, err } return tenant, nil } func (s *tenantService) GetByDomain(domain string) (*dao.Tenant, error) { tenant := &dao.Tenant{ Domain: domain, } err := tenant.GetByDomain() if err != nil { return nil, err } return tenant, nil } func (s *tenantService) List(tenantId int, tenantName, linkman string, current, size int) ([]dao.Tenant, error) { tenant := &dao.Tenant{} offset := (current - 1) * size limit := size if tenantId > 0 { tenant.TenantId = tenantId } if tenantName != "" { tenant.TenantName = tenantName } if linkman != "" { tenant.Linkman = linkman } tenants, err := tenant.GetTenants(offset, limit) if err != nil { return nil, err } return tenants, nil } func (s *tenantService) Submit(req dao.Tenant) *util.Errors { tenant := &req if tenant.ID == 0 { tenant.PassKey = util.RandomString(8) if tenant.IsExist() { tenant.PassKey = util.RandomString(8) } err := tenant.Save() if err != nil { return util.FailResponse(err.Error(), nil) } return util.SuccessResponse(util.Succeeded, nil) } err := tenant.Update() if err != nil { return util.FailResponse(err.Error(), nil) } return util.SuccessResponse(util.Succeeded, nil) } func (s *tenantService) GetList() ([]dao.Tenant, error) { tenant := &dao.Tenant{} tenants, err := tenant.GetAll() if err != nil { return nil, err } return tenants, nil } func (s *tenantService) Remove(id int64) *util.Errors { tenant := &dao.Tenant{ ID: id, IsDeleted: 1, UpdateUser: id, // todo 使用登录态 UpdateTime: time.Now(), } err := tenant.Remove() if err != nil { return util.FailResponse(err.Error(), nil) } return nil }