This commit is contained in:
parent
95cb6c0eff
commit
b6e53e7dba
3 changed files with 93 additions and 0 deletions
|
|
@ -0,0 +1,56 @@
|
|||
package ru.spcex.clearing.utility.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.Consumer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.user.UserSettings;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.UserSettingsUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class UserSettingService extends QueueConsumer implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<UserSettings> userSettingsMap;
|
||||
|
||||
@Autowired
|
||||
public UserSettingService(Consumer<String, Object> kafkaQueue, ImdgProvider imdgProvider) {
|
||||
super(kafkaQueue);
|
||||
this.userSettingsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_UserSettings, UserSettings.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
callback(UserSettingsUpdateRequest.class)
|
||||
.setConsumer(this::updateUserSettings)
|
||||
.forDestination(Consts.USER_SETTINGS_UPDATE, callbacks::put);
|
||||
init();
|
||||
}
|
||||
|
||||
private void updateUserSettings(BaseRequest<UserSettingsUpdateRequest> userRequest) {
|
||||
UserSettingsUpdateRequest req = userRequest.getRequestPayload();
|
||||
log.debug("UserSettingsUpdateRequest received userId = {}", req.getUserId());
|
||||
UserSettings settings = userSettingsMap.getSingleObjectByFieldValues(Map.of("userId", req.getUserId()));
|
||||
if (settings != null) {
|
||||
log.debug("found user settings for userId={}, id={}", req.getUserId(), settings.getId());
|
||||
settings.setVersion(req.getVersion());
|
||||
settings.setJson(req.getJson());
|
||||
userSettingsMap.update(settings);
|
||||
} else {
|
||||
settings = new UserSettings();
|
||||
settings.setUserId(req.getUserId());
|
||||
settings.setVersion(req.getVersion());
|
||||
settings.setJson(req.getJson());
|
||||
userSettingsMap.insert(settings);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -25,6 +25,7 @@ public interface Consts {
|
|||
|
||||
String USER_AUTH_SUCCESS = "user-auth-success";
|
||||
String USER_LOGOUT_SUCCESS = "user-logout-success";
|
||||
String USER_SETTINGS_UPDATE = "user-settings-update";
|
||||
|
||||
//todo
|
||||
String STATEMENT_PROCESS = "statement-process";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.utilities;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
public class UserSettingsUpdateRequest {
|
||||
@JsonProperty
|
||||
public Long userId;
|
||||
@JsonProperty
|
||||
public String version;
|
||||
@JsonProperty
|
||||
public String json;
|
||||
|
||||
public Long getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(Long userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(String version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public String getJson() {
|
||||
return json;
|
||||
}
|
||||
|
||||
public void setJson(String json) {
|
||||
this.json = json;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue