ialbert 2022-08-22 19:16:27 +03:00
parent 69d03bba98
commit 6ea1f5b1fd
11 changed files with 742 additions and 0 deletions

View file

@ -0,0 +1,40 @@
package ru.spcex.clearing.backendapi.controller.queue.company;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
import ru.spcex.clearing.backendapi.service.IOperator;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import java.util.concurrent.ExecutionException;
@Controller
@RequestMapping("/companies")
public class DeleteCompanyController extends AbstractQueueController {
@Autowired
public DeleteCompanyController(IOperator operator) {
super(operator);
}
@ApiOperation(value = "delete company.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class)})
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ResponseBody
public CudResponse delete(@ApiParam(value = "Идентификатор удаляемого объекта", required = true, example = "1234")
@PathVariable("id") Long id) throws ExecutionException, InterruptedException {
CommonDeleteAction deleteAction = new CommonDeleteAction();
deleteAction.setId(id);
return processRequest(Consts.DESTINATION_COMPANY_DELETE, deleteAction);
}
}

View file

@ -0,0 +1,41 @@
package ru.spcex.clearing.backendapi.controller.queue.company;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
import ru.spcex.clearing.backendapi.controller.request.cud.company.CompanyInfoUpdateAction;
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
import ru.spcex.clearing.backendapi.service.IOperator;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import java.util.concurrent.ExecutionException;
@Controller
@RequestMapping("/company-infos")
public class EditCompanyInfoController extends AbstractQueueController {
@Autowired
public EditCompanyInfoController(IOperator operator) {
super(operator);
}
@ApiOperation(value = "update company info.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
@RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public CudResponse update(
@ApiParam(value = "Идентификатор изменяего объекта.", required = true, example = "1234")
@PathVariable("id") Long id,
@ApiParam(value = "Новые значения полей объекта.", required = true)
@RequestBody CompanyInfoUpdateAction companyInfoUpdateAction) throws ExecutionException, InterruptedException {
companyInfoUpdateAction.setId(id);
return processRequest(Consts.DESTINATION_COMPANY_INFO_UPDATE, companyInfoUpdateAction);
}
}

View file

@ -0,0 +1,41 @@
package ru.spcex.clearing.backendapi.controller.queue.company;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
import ru.spcex.clearing.backendapi.controller.request.cud.company.CompanySymbolUpdateAction;
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
import ru.spcex.clearing.backendapi.service.IOperator;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import java.util.concurrent.ExecutionException;
@Controller
@RequestMapping("/company-symbols")
public class EditCompanySymbolController extends AbstractQueueController {
@Autowired
public EditCompanySymbolController(IOperator operator) {
super(operator);
}
@ApiOperation(value = "update company symbol.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
@RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public CudResponse update(
@ApiParam(value = "Идентификатор изменяего объекта.", required = true, example = "1234")
@PathVariable("id") Long id,
@ApiParam(value = "Новые значения полей объекта.", required = true)
@RequestBody CompanySymbolUpdateAction companySymbolsUpdateAction) throws ExecutionException, InterruptedException {
companySymbolsUpdateAction.setId(id);
return processRequest(Consts.DESTINATION_COMPANY_SYMBOL_UPDATE, companySymbolsUpdateAction);
}
}

View file

@ -0,0 +1,41 @@
package ru.spcex.clearing.backendapi.controller.queue.company;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
import ru.spcex.clearing.backendapi.controller.request.cud.company.ContactUpdateAction;
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
import ru.spcex.clearing.backendapi.service.IOperator;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import java.util.concurrent.ExecutionException;
@Controller
@RequestMapping("/contacts")
public class EditContactController extends AbstractQueueController {
@Autowired
public EditContactController(IOperator operator) {
super(operator);
}
@ApiOperation(value = "update company contact.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
@RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public CudResponse update(
@ApiParam(value = "Идентификатор изменяего объекта.", required = true, example = "1234")
@PathVariable("id") Long id,
@ApiParam(value = "Новые значения полей объекта.", required = true)
@RequestBody ContactUpdateAction contactUpdateAction) throws ExecutionException, InterruptedException {
contactUpdateAction.setId(id);
return processRequest(Consts.DESTINATION_CONTACT_UPDATE, contactUpdateAction);
}
}

View file

@ -0,0 +1,191 @@
package ru.spcex.clearing.backendapi.controller.request.cud.company;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyInfoUpdateRequest;
public class CompanyInfoUpdateAction implements IAction<CompanyInfoUpdateRequest> {
@ApiModelProperty(hidden = true)
@JsonProperty
public Long id;
@ApiModelProperty(value = "Идентификатор единоличного исполнительного органа", example = "ABCD")
@JsonProperty
private String corporationSoleType;
@ApiModelProperty(value = "Идентификатор кода страны", example = "ABCD")
@JsonProperty
private String countryCode;
@ApiModelProperty(value = "Описание", example = "ABCD")
@JsonProperty
private String description;
@ApiModelProperty(value = "Признак проф. Участника", example = "ABCD")
@JsonProperty
private String professionalSign;
@ApiModelProperty(value = "Идентификатор вида субъекта", example = "ABCD")
@JsonProperty
private String legalKind;
@ApiModelProperty(value = "Идентификатор типа организации", example = "ABCD")
@JsonProperty
private String organizationType;
@ApiModelProperty(value = "Идентификатор кода страны", example = "ABCD")
@JsonProperty
private String residence;
@ApiModelProperty(value = "Краткое наименование Компании на английском", example = "Test Company Inc.")
@JsonProperty
private String shortNameEng;
@ApiModelProperty(value = "Полное наименование Компании на английском", example = "Test Company Incorporated")
@JsonProperty
private String fullNameEng;
@ApiModelProperty(value = "Краткое наименование Компании", example = "Test Company Incorporated")
@JsonProperty
private String shortName;
@ApiModelProperty(value = "Полное наименование Компании", example = "Test Company Incorporated PlaceHolder Text Communication")
@JsonProperty
private String fullName;
@ApiModelProperty(value = "Код участника торгов", example = "ABCD")
@JsonProperty
private String tradingCode;
@ApiModelProperty(value = "Код участника клиринга", example = "ABCD")
@JsonProperty
private String clearingCode;
@Override
public CompanyInfoUpdateRequest toRequest() {
CompanyInfoUpdateRequest request = new CompanyInfoUpdateRequest();
request.setId(this.id);
request.setCorporationSoleType(this.corporationSoleType);
request.setCountryCode(this.countryCode);
request.setDescription(this.description);
request.setProfessionalSign(this.professionalSign);
request.setLegalKind(this.legalKind);
request.setOrganizationType(this.organizationType);
request.setResidence(this.residence);
request.setShortNameEng(this.shortNameEng);
request.setFullNameEng(this.fullNameEng);
request.setShortName(this.shortName);
request.setFullName(this.fullName);
request.setTradingCode(this.tradingCode);
request.setClearingCode(this.clearingCode);
return request;
}
@ApiModelProperty(hidden = true)
@Override
public ActionType getActionType() {
return ActionType.UPDATE;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCorporationSoleType() {
return corporationSoleType;
}
public void setCorporationSoleType(String corporationSoleType) {
this.corporationSoleType = corporationSoleType;
}
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getProfessionalSign() {
return professionalSign;
}
public void setProfessionalSign(String professionalSign) {
this.professionalSign = professionalSign;
}
public String getLegalKind() {
return legalKind;
}
public void setLegalKind(String legalKind) {
this.legalKind = legalKind;
}
public String getOrganizationType() {
return organizationType;
}
public void setOrganizationType(String organizationType) {
this.organizationType = organizationType;
}
public String getResidence() {
return residence;
}
public void setResidence(String residence) {
this.residence = residence;
}
public String getShortNameEng() {
return shortNameEng;
}
public void setShortNameEng(String shortNameEng) {
this.shortNameEng = shortNameEng;
}
public String getFullNameEng() {
return fullNameEng;
}
public void setFullNameEng(String fullNameEng) {
this.fullNameEng = fullNameEng;
}
public String getShortName() {
return shortName;
}
public void setShortName(String shortName) {
this.shortName = shortName;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getTradingCode() {
return tradingCode;
}
public void setTradingCode(String tradingCode) {
this.tradingCode = tradingCode;
}
public String getClearingCode() {
return clearingCode;
}
public void setClearingCode(String clearingCode) {
this.clearingCode = clearingCode;
}
}

View file

@ -0,0 +1,71 @@
package ru.spcex.clearing.backendapi.controller.request.cud.company;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolUpdateRequest;
public class CompanySymbolUpdateAction implements IAction<CompanySymbolUpdateRequest> {
@ApiModelProperty(hidden = true)
@JsonProperty
public Long id;
@ApiModelProperty(value = "Идентификатор Компании", example = "1234")
@JsonProperty
private Long companyId;
@ApiModelProperty(value = "Идентификатор справочника", example = "ABCD")
@JsonProperty
private String companySymbol;
@ApiModelProperty(value = "Значение справочника", example = "Company description example")
@JsonProperty
private String companySymbolValue;
@Override
public CompanySymbolUpdateRequest toRequest() {
CompanySymbolUpdateRequest request = new CompanySymbolUpdateRequest();
request.setId(this.id);
request.setCompanyId(this.companyId);
request.setCompanySymbol(this.companySymbol);
request.setCompanySymbolValue(this.companySymbolValue);
return request;
}
@ApiModelProperty(hidden = true)
@Override
public ActionType getActionType() {
return ActionType.UPDATE;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public String getCompanySymbol() {
return companySymbol;
}
public void setCompanySymbol(String companySymbol) {
this.companySymbol = companySymbol;
}
public String getCompanySymbolValue() {
return companySymbolValue;
}
public void setCompanySymbolValue(String companySymbolValue) {
this.companySymbolValue = companySymbolValue;
}
}

View file

@ -0,0 +1,71 @@
package ru.spcex.clearing.backendapi.controller.request.cud.company;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.ActionType;
import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactUpdateRequest;
public class ContactUpdateAction implements IAction<ContactUpdateRequest> {
@ApiModelProperty(hidden = true)
@JsonProperty
public Long id;
@ApiModelProperty(value = "Идентификатор Компании", example = "1234")
@JsonProperty
private Long companyId;
@ApiModelProperty(value = "Идентификатор справочника", example = "ABCD")
@JsonProperty
private String contactType;
@ApiModelProperty(value = "Значение справочника", example = "example contact string")
@JsonProperty
private String contactValue;
@Override
public ContactUpdateRequest toRequest() {
ContactUpdateRequest request = new ContactUpdateRequest();
request.setId(this.id);
request.setCompanyId(this.companyId);
request.setContactType(this.contactType);
request.setContactValue(this.contactValue);
return request;
}
@ApiModelProperty(hidden = true)
@Override
public ActionType getActionType() {
return ActionType.UPDATE;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public String getContactType() {
return contactType;
}
public void setContactType(String contactType) {
this.contactType = contactType;
}
public String getContactValue() {
return contactValue;
}
public void setContactValue(String contactValue) {
this.contactValue = contactValue;
}
}

View file

@ -8,4 +8,9 @@ public interface Consts {
String DESTINATION_KEY_RATE_NEW = "key-rate-new";
String DESTINATION_KEY_RATE_UPDATE = "key-rate-update";
String DESTINATION_KEY_RATE_DELETE = "key-rate-delete";
String DESTINATION_COMPANY_DELETE = "company-delete";
String DESTINATION_COMPANY_INFO_UPDATE = "company-info-update";
String DESTINATION_COMPANY_SYMBOL_UPDATE = "company-symbol-update";
String DESTINATION_CONTACT_UPDATE = "contact-update";
}

View file

@ -0,0 +1,147 @@
package ru.spcex.clearing.platform.messaging.domain.cud.company;
import com.fasterxml.jackson.annotation.JsonProperty;
public class CompanyInfoUpdateRequest {
@JsonProperty
public Long id;
@JsonProperty
private String corporationSoleType;
@JsonProperty
private String countryCode;
@JsonProperty
private String description;
@JsonProperty
private String professionalSign;
@JsonProperty
private String legalKind;
@JsonProperty
private String organizationType;
@JsonProperty
private String residence;
@JsonProperty
private String shortNameEng;
@JsonProperty
private String fullNameEng;
@JsonProperty
private String shortName;
@JsonProperty
private String fullName;
@JsonProperty
private String tradingCode;
@JsonProperty
private String clearingCode;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCorporationSoleType() {
return corporationSoleType;
}
public void setCorporationSoleType(String corporationSoleType) {
this.corporationSoleType = corporationSoleType;
}
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getProfessionalSign() {
return professionalSign;
}
public void setProfessionalSign(String professionalSign) {
this.professionalSign = professionalSign;
}
public String getLegalKind() {
return legalKind;
}
public void setLegalKind(String legalKind) {
this.legalKind = legalKind;
}
public String getOrganizationType() {
return organizationType;
}
public void setOrganizationType(String organizationType) {
this.organizationType = organizationType;
}
public String getResidence() {
return residence;
}
public void setResidence(String residence) {
this.residence = residence;
}
public String getShortNameEng() {
return shortNameEng;
}
public void setShortNameEng(String shortNameEng) {
this.shortNameEng = shortNameEng;
}
public String getFullNameEng() {
return fullNameEng;
}
public void setFullNameEng(String fullNameEng) {
this.fullNameEng = fullNameEng;
}
public String getShortName() {
return shortName;
}
public void setShortName(String shortName) {
this.shortName = shortName;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getTradingCode() {
return tradingCode;
}
public void setTradingCode(String tradingCode) {
this.tradingCode = tradingCode;
}
public String getClearingCode() {
return clearingCode;
}
public void setClearingCode(String clearingCode) {
this.clearingCode = clearingCode;
}
}

View file

@ -0,0 +1,47 @@
package ru.spcex.clearing.platform.messaging.domain.cud.company;
import com.fasterxml.jackson.annotation.JsonProperty;
public class CompanySymbolUpdateRequest {
@JsonProperty
public Long id;
@JsonProperty
private Long companyId;
@JsonProperty
private String companySymbol;
@JsonProperty
private String companySymbolValue;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public String getCompanySymbol() {
return companySymbol;
}
public void setCompanySymbol(String companySymbol) {
this.companySymbol = companySymbol;
}
public String getCompanySymbolValue() {
return companySymbolValue;
}
public void setCompanySymbolValue(String companySymbolValue) {
this.companySymbolValue = companySymbolValue;
}
}

View file

@ -0,0 +1,47 @@
package ru.spcex.clearing.platform.messaging.domain.cud.company;
import com.fasterxml.jackson.annotation.JsonProperty;
public class ContactUpdateRequest {
@JsonProperty
public Long id;
@JsonProperty
private Long companyId;
@JsonProperty
private String contactType;
@JsonProperty
private String contactValue;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getCompanyId() {
return companyId;
}
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
public String getContactType() {
return contactType;
}
public void setContactType(String contactType) {
this.contactType = contactType;
}
public String getContactValue() {
return contactValue;
}
public void setContactValue(String contactValue) {
this.contactValue = contactValue;
}
}