some refactoring
This commit is contained in:
parent
6feacbcb5d
commit
fc8a412505
7 changed files with 74 additions and 70 deletions
|
|
@ -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");
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue