added tenantcode to dashboard statistics cacahe key
This commit is contained in:
parent
0ded82e5cb
commit
76a355891f
|
@ -4,6 +4,7 @@ import eu.eudat.authorization.AuthorizationFlags;
|
|||
import eu.eudat.authorization.OwnedResource;
|
||||
import eu.eudat.authorization.Permission;
|
||||
import eu.eudat.commons.enums.*;
|
||||
import eu.eudat.commons.scope.tenant.TenantScope;
|
||||
import eu.eudat.commons.scope.user.UserScope;
|
||||
import eu.eudat.commons.types.dashborad.RecentActivityItemEntity;
|
||||
import eu.eudat.convention.ConventionService;
|
||||
|
@ -41,6 +42,7 @@ public class DashboardServiceImpl implements DashboardService {
|
|||
private final BuilderFactory builderFactory;
|
||||
private final QueryFactory queryFactory;
|
||||
private final UserScope userScope;
|
||||
private final TenantScope tenantScope;
|
||||
private final DashboardServiceProperties config;
|
||||
private final ElasticQueryHelperService elasticQueryHelperService;
|
||||
private final DashboardStatisticsCacheService dashboardStatisticsCacheService;
|
||||
|
@ -50,12 +52,14 @@ public class DashboardServiceImpl implements DashboardService {
|
|||
BuilderFactory builderFactory,
|
||||
QueryFactory queryFactory,
|
||||
UserScope userScope,
|
||||
TenantScope tenantScope,
|
||||
DashboardServiceProperties config, ElasticQueryHelperService elasticQueryHelperService, DashboardStatisticsCacheService dashboardStatisticsCacheService) {
|
||||
this.conventionService = conventionService;
|
||||
this.authorizationService = authorizationService;
|
||||
this.builderFactory = builderFactory;
|
||||
this.queryFactory = queryFactory;
|
||||
this.userScope = userScope;
|
||||
this.tenantScope = tenantScope;
|
||||
this.config = config;
|
||||
this.elasticQueryHelperService = elasticQueryHelperService;
|
||||
this.dashboardStatisticsCacheService = dashboardStatisticsCacheService;
|
||||
|
@ -138,7 +142,7 @@ public class DashboardServiceImpl implements DashboardService {
|
|||
public DashboardStatistics getMyDashboardStatistics() throws InvalidApplicationException {
|
||||
this.authorizationService.authorizeAtLeastOneForce(this.userScope.getUserIdSafe() != null ? List.of(new OwnedResource(this.userScope.getUserIdSafe())) : null);
|
||||
|
||||
DashboardStatisticsCacheService.DashboardStatisticsCacheValue cacheValue = this.dashboardStatisticsCacheService.lookup(this.dashboardStatisticsCacheService.buildKey(this.userScope.getUserId().toString().toLowerCase(Locale.ROOT)));
|
||||
DashboardStatisticsCacheService.DashboardStatisticsCacheValue cacheValue = this.dashboardStatisticsCacheService.lookup(this.dashboardStatisticsCacheService.buildKey(this.dashboardStatisticsCacheService.generateUserTenantCacheKey(this.userScope.getUserId(), this.tenantScope.getTenantCode())));
|
||||
if (cacheValue == null || cacheValue.getDashboardStatistics() == null) {
|
||||
DmpUserQuery dmpUserLookup = this.queryFactory.query(DmpUserQuery.class);
|
||||
dmpUserLookup.userIds(this.userScope.getUserId());
|
||||
|
@ -161,7 +165,7 @@ public class DashboardServiceImpl implements DashboardService {
|
|||
statistics.getReferenceTypeStatistics().add(referenceTypeStatistics);
|
||||
}
|
||||
}
|
||||
cacheValue = new DashboardStatisticsCacheService.DashboardStatisticsCacheValue(this.userScope.getUserId());
|
||||
cacheValue = new DashboardStatisticsCacheService.DashboardStatisticsCacheValue(this.userScope.getUserId(), this.tenantScope.getTenantCode());
|
||||
cacheValue.setPublic(false);
|
||||
cacheValue.setDashboardStatistics(statistics);
|
||||
this.dashboardStatisticsCacheService.put(cacheValue);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package eu.eudat.service.dashborad;
|
||||
|
||||
import eu.eudat.commons.scope.user.UserScope;
|
||||
import eu.eudat.model.DashboardStatistics;
|
||||
import gr.cite.tools.cache.CacheService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -19,12 +20,14 @@ public class DashboardStatisticsCacheService extends CacheService<DashboardStati
|
|||
this.isPublic = true;
|
||||
}
|
||||
|
||||
public DashboardStatisticsCacheValue(UUID userId) {
|
||||
public DashboardStatisticsCacheValue(UUID userId, String tenantCode) {
|
||||
this.userId = userId;
|
||||
this.tenantCode = tenantCode;
|
||||
this.isPublic = false;
|
||||
}
|
||||
|
||||
private UUID userId;
|
||||
private String tenantCode;
|
||||
private boolean isPublic;
|
||||
|
||||
private DashboardStatistics dashboardStatistics;
|
||||
|
@ -37,6 +40,14 @@ public class DashboardStatisticsCacheService extends CacheService<DashboardStati
|
|||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getTenantCode() {
|
||||
return tenantCode;
|
||||
}
|
||||
|
||||
public void setTenantCode(String tenantCode) {
|
||||
this.tenantCode = tenantCode;
|
||||
}
|
||||
|
||||
public DashboardStatistics getDashboardStatistics() {
|
||||
return dashboardStatistics;
|
||||
}
|
||||
|
@ -71,7 +82,7 @@ public class DashboardStatisticsCacheService extends CacheService<DashboardStati
|
|||
if (value.isPublic) return this.buildKey(publicKey);
|
||||
else throw new IllegalArgumentException("Key not set");
|
||||
} else {
|
||||
return this.buildKey(value.userId.toString().toLowerCase(Locale.ROOT));
|
||||
return this.buildKey(this.generateUserTenantCacheKey(value.userId, value.tenantCode));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -80,4 +91,14 @@ public class DashboardStatisticsCacheService extends CacheService<DashboardStati
|
|||
keyParts.put("$key$", key);
|
||||
return this.generateKey(keyParts);
|
||||
}
|
||||
|
||||
public String generateUserTenantCacheKey(UUID userId, String tenantCode) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append(userId.toString().toLowerCase(Locale.ROOT));
|
||||
if (tenantCode != null) {
|
||||
builder.append("_");
|
||||
builder.append(tenantCode.toLowerCase(Locale.ROOT));
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue