some refactoring

This commit is contained in:
psemenkov 2022-10-13 13:04:26 +03:00
parent 6feacbcb5d
commit fc8a412505
7 changed files with 74 additions and 70 deletions

View file

@ -113,6 +113,7 @@ public class AllMapStoreTest {
@Test @Test
public void checkAllMapStoreCreatedTest() throws SQLException { public void checkAllMapStoreCreatedTest() throws SQLException {
Assumptions.assumeTrue(false, "todo удалить если будет не нужна, пока не работает из-за не все mapStore готовы");
//Поиск таблиц которым нужно добавить mapStore и вывод результата в консоль //Поиск таблиц которым нужно добавить mapStore и вывод результата в консоль
List<String> nameTables = new ArrayList<>(); List<String> nameTables = new ArrayList<>();
Connection jdbcConnection = DriverManager.getConnection("jdbc:postgresql://10.200.200.133:5432/postgres", "clearing", "Aa111111"); Connection jdbcConnection = DriverManager.getConnection("jdbc:postgresql://10.200.200.133:5432/postgres", "clearing", "Aa111111");

View file

@ -20,9 +20,9 @@ import ru.spcex.platform.enumeration.Status;
import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.enumeration.UserRole;
import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.utils.time.TimeUtil;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDate;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
@ -34,11 +34,13 @@ import java.util.stream.Stream;
@Service @Service
public class UserService extends QueueConsumer implements InitializingBean { public class UserService extends QueueConsumer implements InitializingBean {
private final static Map<String, UserRole> roleMapping = new HashMap<>(); private final static Map<String, UserRole> roleMapping = new HashMap<>();
static { static {
roleMapping.put("CS_MKR_ADMIN", UserRole.Admin); roleMapping.put("CS_MKR_ADMIN", UserRole.Admin);
roleMapping.put("CS_MKR_SUPERVISER", UserRole.Superviser); roleMapping.put("CS_MKR_SUPERVISER", UserRole.Superviser);
roleMapping.put("CS_MKR_SECURITY", UserRole.Security); roleMapping.put("CS_MKR_SECURITY", UserRole.Security);
} }
private final Logger log = LoggerFactory.getLogger(getClass()); private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<User> userMap; private final Imdg<User> userMap;
private final Imdg<UserRoleSession> userRoleSessionImdg; private final Imdg<UserRoleSession> userRoleSessionImdg;
@ -52,6 +54,47 @@ public class UserService extends QueueConsumer implements InitializingBean {
this.userConnectImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_UserConnect, UserConnect.class); this.userConnectImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_UserConnect, UserConnect.class);
} }
static Collection<RoleAction> defineAllRoleChanges(Collection<UserRoleSession> presentRoles, Collection<String> authRoles) {
Collection<String> finalAuthRoles = authRoles.stream().flatMap((Function<String, Stream<String>>) keycloakRole -> {
UserRole userRole = roleMapping.get(keycloakRole);
if (userRole == null) return Stream.empty();
return Stream.of(userRole.getKey());
}).collect(Collectors.toList());
return Stream.concat(
presentRoles
.stream()
.filter(presentRole -> !(Status.Active.equalsByKey(presentRole.getStatus()) && contain(presentRole, finalAuthRoles)))
.filter(presentRole -> !(Status.Blocked.equalsByKey(presentRole.getStatus()) && !contain(presentRole, finalAuthRoles)))
.map(role -> {
RoleAction roleAction = new RoleAction();
roleAction.roleToChange = role;
if (Status.Active.equalsByKey(role.getStatus())) {
roleAction.newStatus = Status.Blocked;
} else {
roleAction.newStatus = Status.Active;
}
return roleAction;
}),
finalAuthRoles
.stream()
.filter(authRole -> !contain(authRole, presentRoles))
.map(authRole -> {
RoleAction action = new RoleAction();
action.newStatus = Status.Active;
action.roleName = authRole;
return action;
})
).toList();
}
private static boolean contain(UserRoleSession role, Collection<String> authRoles) {
return authRoles.stream().anyMatch(authRole -> authRole.equalsIgnoreCase(role.getUserRole()));
}
private static boolean contain(String authRole, Collection<UserRoleSession> presentRoles) {
return presentRoles.stream().anyMatch(role -> role.getUserRole().equalsIgnoreCase(authRole));
}
@Override @Override
public void afterPropertiesSet() { public void afterPropertiesSet() {
callback(UserAuthRequest.class) callback(UserAuthRequest.class)
@ -87,7 +130,7 @@ public class UserService extends QueueConsumer implements InitializingBean {
userConnect.setDisconnectionTime(logoutInfo.getTime()); userConnect.setDisconnectionTime(logoutInfo.getTime());
userConnect.setUpdated(logoutInfo.getTime()); userConnect.setUpdated(logoutInfo.getTime());
userConnect.setConnectionState(ConnectionState.Disconnected.getKey()); userConnect.setConnectionState(ConnectionState.Disconnected.getKey());
userConnect.setClearingDate(TimeUtil.today()); userConnect.setClearingDate(LocalDate.now());
userConnectImdg.update(userConnect); userConnectImdg.update(userConnect);
} }
@ -147,7 +190,7 @@ public class UserService extends QueueConsumer implements InitializingBean {
userConnect.setServerIP(serverIp); userConnect.setServerIP(serverIp);
userConnect.setClientIP(clientIp); userConnect.setClientIP(clientIp);
userConnect.setConnectionState(ConnectionState.Connected.getKey()); userConnect.setConnectionState(ConnectionState.Connected.getKey());
userConnect.setClearingDate(TimeUtil.today()); userConnect.setClearingDate(LocalDate.now());
if (isNew) { if (isNew) {
userConnectImdg.insert(userConnect); userConnectImdg.insert(userConnect);
} else { } else {
@ -155,52 +198,12 @@ public class UserService extends QueueConsumer implements InitializingBean {
} }
} }
static Collection<RoleAction> defineAllRoleChanges(Collection<UserRoleSession> presentRoles, Collection<String> authRoles) {
Collection<String> finalAuthRoles = authRoles.stream().flatMap((Function<String, Stream<String>>) keycloakRole -> {
UserRole userRole = roleMapping.get(keycloakRole);
if (userRole == null) return Stream.empty();
return Stream.of(userRole.getKey());
}).collect(Collectors.toList());
return Stream.concat(
presentRoles
.stream()
.filter(presentRole -> !(Status.Active.equalsByKey(presentRole.getStatus()) && contain(presentRole, finalAuthRoles)))
.filter(presentRole -> !(Status.Blocked.equalsByKey(presentRole.getStatus()) && !contain(presentRole, finalAuthRoles)))
.map(role -> {
RoleAction roleAction = new RoleAction();
roleAction.roleToChange = role;
if (Status.Active.equalsByKey(role.getStatus())) {
roleAction.newStatus = Status.Blocked;
} else {
roleAction.newStatus = Status.Active;
}
return roleAction;
}),
finalAuthRoles
.stream()
.filter(authRole -> !contain(authRole, presentRoles))
.map(authRole -> {
RoleAction action = new RoleAction();
action.newStatus = Status.Active;
action.roleName = authRole;
return action;
})
).toList();
}
private static boolean contain(UserRoleSession role, Collection<String> authRoles) {
return authRoles.stream().anyMatch(authRole -> authRole.equalsIgnoreCase(role.getUserRole()));
}
private static boolean contain(String authRole, Collection<UserRoleSession> presentRoles) {
return presentRoles.stream().anyMatch(role -> role.getUserRole().equalsIgnoreCase(authRole));
}
public static class RoleAction { public static class RoleAction {
String roleName; String roleName;
//------поля при обновления----- //------поля при обновления-----
Status newStatus; Status newStatus;
UserRoleSession roleToChange; UserRoleSession roleToChange;
boolean create() { boolean create() {
return roleToChange == null; return roleToChange == null;
} }

View file

@ -57,7 +57,7 @@ public final class IMDGDistributedNames {
public static final String Map_SDf18 = "Map_SDf18"; public static final String Map_SDf18 = "Map_SDf18";
public static final String Map_InterestStatusDictionary = "Map_InterestStatusDictionary"; public static final String Map_InterestStatusDictionary = "Map_InterestStatusDictionary";
public static final String Map_AllowedDictionary = "Map_AllowedDictionary"; public static final String Map_AllowedDictionary = "Map_AllowedDictionary";
// public static final String Map_ClearingMemberCategoryDictionary = "Map_ClearingMemberCategoryDictionary"; future public static final String Map_ClearingMemberCategoryDictionary = "Map_ClearingMemberCategoryDictionary";
public static final String Map_CompanyRoleDictionary = "Map_CompanyRoleDictionary"; public static final String Map_CompanyRoleDictionary = "Map_CompanyRoleDictionary";
public static final String Map_CompanySymbolDictionary = "Map_CompanySymbolDictionary"; public static final String Map_CompanySymbolDictionary = "Map_CompanySymbolDictionary";
public static final String Map_ContactTypeDictionary = "Map_ContactTypeDictionary"; public static final String Map_ContactTypeDictionary = "Map_ContactTypeDictionary";

View file

@ -6,17 +6,17 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDeserializer; import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDeserializer;
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer; import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer;
import java.time.Instant; import java.time.LocalDate;
public class MoneyMarketSecurityNewRequest { public class MoneyMarketSecurityNewRequest {
@JsonProperty @JsonProperty
@JsonSerialize(using = InstantSerializer.class) @JsonSerialize(using = InstantSerializer.class)
@JsonDeserialize(using = InstantDeserializer.class) @JsonDeserialize(using = InstantDeserializer.class)
public Instant startDate; public LocalDate startDate;
@JsonProperty @JsonProperty
@JsonSerialize(using = InstantSerializer.class) @JsonSerialize(using = InstantSerializer.class)
@JsonDeserialize(using = InstantDeserializer.class) @JsonDeserialize(using = InstantDeserializer.class)
public Instant endDate; public LocalDate endDate;
@JsonProperty @JsonProperty
public Double nominalValue; public Double nominalValue;
@JsonProperty @JsonProperty
@ -30,19 +30,19 @@ public class MoneyMarketSecurityNewRequest {
@JsonProperty @JsonProperty
public Double lotSize; public Double lotSize;
public Instant getStartDate() { public LocalDate getStartDate() {
return startDate; return startDate;
} }
public void setStartDate(Instant startDate) { public void setStartDate(LocalDate startDate) {
this.startDate = startDate; this.startDate = startDate;
} }
public Instant getEndDate() { public LocalDate getEndDate() {
return endDate; return endDate;
} }
public void setEndDate(Instant endDate) { public void setEndDate(LocalDate endDate) {
this.endDate = endDate; this.endDate = endDate;
} }

View file

@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDeserializer; import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDeserializer;
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer; import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer;
import java.time.Instant; import java.time.LocalDate;
public class MoneyMarketSecurityUpdateRequest { public class MoneyMarketSecurityUpdateRequest {
@JsonProperty @JsonProperty
@ -16,7 +16,7 @@ public class MoneyMarketSecurityUpdateRequest {
@JsonSerialize(using = InstantSerializer.class) @JsonSerialize(using = InstantSerializer.class)
@JsonDeserialize(using = InstantDeserializer.class) @JsonDeserialize(using = InstantDeserializer.class)
@JsonProperty @JsonProperty
public Instant endDate; public LocalDate endDate;
@JsonProperty @JsonProperty
public Double nominalValue; public Double nominalValue;
@JsonProperty @JsonProperty
@ -36,11 +36,11 @@ public class MoneyMarketSecurityUpdateRequest {
this.id = id; this.id = id;
} }
public Instant getEndDate() { public LocalDate getEndDate() {
return endDate; return endDate;
} }
public void setEndDate(Instant endDate) { public void setEndDate(LocalDate endDate) {
this.endDate = endDate; this.endDate = endDate;
} }

View file

@ -7,7 +7,7 @@ import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDeser
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer; import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.Instant; import java.time.LocalDate;
public class KeyRateNewRequest { public class KeyRateNewRequest {
@JsonProperty @JsonProperty
@ -15,11 +15,11 @@ public class KeyRateNewRequest {
@JsonSerialize(using = InstantSerializer.class) @JsonSerialize(using = InstantSerializer.class)
@JsonDeserialize(using = InstantDeserializer.class) @JsonDeserialize(using = InstantDeserializer.class)
@JsonProperty @JsonProperty
public Instant startDate; public LocalDate startDate;
@JsonSerialize(using = InstantSerializer.class) @JsonSerialize(using = InstantSerializer.class)
@JsonDeserialize(using = InstantDeserializer.class) @JsonDeserialize(using = InstantDeserializer.class)
@JsonProperty @JsonProperty
public Instant endDate; public LocalDate endDate;
@JsonProperty @JsonProperty
public String document; public String document;
@ -31,19 +31,19 @@ public class KeyRateNewRequest {
this.keyRate = keyRate; this.keyRate = keyRate;
} }
public Instant getStartDate() { public LocalDate getStartDate() {
return startDate; return startDate;
} }
public void setStartDate(Instant startDate) { public void setStartDate(LocalDate startDate) {
this.startDate = startDate; this.startDate = startDate;
} }
public Instant getEndDate() { public LocalDate getEndDate() {
return endDate; return endDate;
} }
public void setEndDate(Instant endDate) { public void setEndDate(LocalDate endDate) {
this.endDate = endDate; this.endDate = endDate;
} }

View file

@ -7,7 +7,7 @@ import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDeser
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer; import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.Instant; import java.time.LocalDate;
public class KeyRateUpdateRequest { public class KeyRateUpdateRequest {
@JsonProperty @JsonProperty
@ -17,11 +17,11 @@ public class KeyRateUpdateRequest {
@JsonSerialize(using = InstantSerializer.class) @JsonSerialize(using = InstantSerializer.class)
@JsonDeserialize(using = InstantDeserializer.class) @JsonDeserialize(using = InstantDeserializer.class)
@JsonProperty @JsonProperty
public Instant startDate; public LocalDate startDate;
@JsonSerialize(using = InstantSerializer.class) @JsonSerialize(using = InstantSerializer.class)
@JsonDeserialize(using = InstantDeserializer.class) @JsonDeserialize(using = InstantDeserializer.class)
@JsonProperty @JsonProperty
public Instant endDate; public LocalDate endDate;
@JsonProperty @JsonProperty
public String document; public String document;
@ -41,19 +41,19 @@ public class KeyRateUpdateRequest {
this.keyRate = keyRate; this.keyRate = keyRate;
} }
public Instant getStartDate() { public LocalDate getStartDate() {
return startDate; return startDate;
} }
public void setStartDate(Instant startDate) { public void setStartDate(LocalDate startDate) {
this.startDate = startDate; this.startDate = startDate;
} }
public Instant getEndDate() { public LocalDate getEndDate() {
return endDate; return endDate;
} }
public void setEndDate(Instant endDate) { public void setEndDate(LocalDate endDate) {
this.endDate = endDate; this.endDate = endDate;
} }