This commit is contained in:
parent
a88dd57857
commit
63ec986491
4 changed files with 111 additions and 28 deletions
|
|
@ -4,10 +4,22 @@ import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
import io.swagger.annotations.ApiResponse;
|
import io.swagger.annotations.ApiResponse;
|
||||||
import io.swagger.annotations.ApiResponses;
|
import io.swagger.annotations.ApiResponses;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import org.springframework.web.server.ResponseStatusException;
|
||||||
import ru.clearing.classes.statics.data.account.Account;
|
import ru.clearing.classes.statics.data.account.Account;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||||
import ru.spcex.clearing.backendapi.controller.request.cud.account.AccountNewAction;
|
import ru.spcex.clearing.backendapi.controller.request.cud.account.AccountNewAction;
|
||||||
|
|
@ -20,30 +32,46 @@ import ru.spcex.clearing.backendapi.service.IOperator;
|
||||||
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||||
|
import ru.spcex.platform.enumeration.Status;
|
||||||
import java.util.Collection;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import java.util.Map;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
import java.util.concurrent.ExecutionException;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/accounting/accounts")
|
@RequestMapping("/accounting/accounts")
|
||||||
public class AccountController extends AbstractQueueController {
|
public class AccountController extends AbstractQueueController {
|
||||||
private final IStateLoader stateLoader;
|
private final IStateLoader stateLoader;
|
||||||
|
private final ImdgPredicateBuilder predicateBuilder;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public AccountController(IOperator operator, IStateLoader stateLoader) {
|
public AccountController(IOperator operator,
|
||||||
|
IStateLoader stateLoader,
|
||||||
|
ImdgProvider imdgProvider) {
|
||||||
super(operator);
|
super(operator);
|
||||||
this.stateLoader = stateLoader;
|
this.stateLoader = stateLoader;
|
||||||
|
this.predicateBuilder = imdgProvider
|
||||||
|
.getImdg(IMDGDistributedNames.Map_Account, Account.class)
|
||||||
|
.predicateBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "get all accounts.")
|
@ApiOperation(value = "get all accounts.")
|
||||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
|
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
|
||||||
@RequestMapping(method = RequestMethod.GET)
|
@RequestMapping(method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public CommonGetAllResponse getAll() {
|
public CommonGetAllResponse getAll(@RequestParam(name = "kind", required = false) String kind) {
|
||||||
Collection<Map<String, Object>> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_Account, Account.class);
|
|
||||||
CommonGetAllResponse response = new CommonGetAllResponse();
|
CommonGetAllResponse response = new CommonGetAllResponse();
|
||||||
response.fromEntity(all);
|
if (StringUtils.isEmpty(kind)) {
|
||||||
|
Collection<Map<String, Object>> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_Account, Account.class);
|
||||||
|
response.fromEntity(all);
|
||||||
|
} else if (kind.equals("BLKD")) {
|
||||||
|
ImdgPredicate predicate = predicateBuilder.in("status",
|
||||||
|
Arrays.asList(Status.Blocked.getKey(), Status.Close.getKey()).toArray(new String[0]));
|
||||||
|
Collection<Map<String, Object>> allByStatus = stateLoader.getAllMetaTransform(
|
||||||
|
IMDGDistributedNames.Map_Account, Account.class, predicate);
|
||||||
|
response.fromEntity(allByStatus);
|
||||||
|
} else {
|
||||||
|
throw new ResponseStatusException(HttpStatus.NOT_ACCEPTABLE, "Kind is not supported: " + kind);
|
||||||
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,21 @@ import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
import io.swagger.annotations.ApiResponse;
|
import io.swagger.annotations.ApiResponse;
|
||||||
import io.swagger.annotations.ApiResponses;
|
import io.swagger.annotations.ApiResponses;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import org.springframework.web.server.ResponseStatusException;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||||
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
|
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
|
||||||
|
|
@ -19,21 +30,26 @@ import ru.spcex.clearing.backendapi.service.IOperator;
|
||||||
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||||
|
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||||
import java.util.Collection;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import java.util.Map;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
import java.util.concurrent.ExecutionException;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/companies")
|
@RequestMapping("/companies")
|
||||||
public class CompanyController extends AbstractQueueController {
|
public class CompanyController extends AbstractQueueController {
|
||||||
private final IStateLoader stateLoader;
|
private final IStateLoader stateLoader;
|
||||||
|
private final ImdgPredicateBuilder predicateBuilder;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public CompanyController(IOperator operator,
|
public CompanyController(IOperator operator,
|
||||||
IStateLoader stateLoader) {
|
IStateLoader stateLoader,
|
||||||
|
ImdgProvider imdgProvider) {
|
||||||
super(operator);
|
super(operator);
|
||||||
this.stateLoader = stateLoader;
|
this.stateLoader = stateLoader;
|
||||||
|
this.predicateBuilder = imdgProvider
|
||||||
|
.getImdg(IMDGDistributedNames.Map_Company, Company.class)
|
||||||
|
.predicateBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "delete company.")
|
@ApiOperation(value = "delete company.")
|
||||||
|
|
@ -51,10 +67,19 @@ public class CompanyController extends AbstractQueueController {
|
||||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
|
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
|
||||||
@RequestMapping(method = RequestMethod.GET)
|
@RequestMapping(method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public CommonGetAllResponse getAll() {
|
public CommonGetAllResponse getAll(@RequestParam(name = "kind", required = false) String kind) {
|
||||||
Collection<Map<String, Object>> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_Company, Company.class);
|
|
||||||
CommonGetAllResponse response = new CommonGetAllResponse();
|
CommonGetAllResponse response = new CommonGetAllResponse();
|
||||||
response.fromEntity(all);
|
if (StringUtils.isEmpty(kind)) {
|
||||||
|
Collection<Map<String, Object>> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
|
response.fromEntity(all);
|
||||||
|
} else if (kind.equals("BLKD")){
|
||||||
|
ImdgPredicate predicate = predicateBuilder.equals("workflowStatus", WorkflowStatus.Blocked.getKey());
|
||||||
|
Collection<Map<String, Object>> allByStatus = stateLoader.getAllMetaTransform(
|
||||||
|
IMDGDistributedNames.Map_Company, Company.class, predicate);
|
||||||
|
response.fromEntity(allByStatus);
|
||||||
|
} else {
|
||||||
|
throw new ResponseStatusException(HttpStatus.NOT_ACCEPTABLE, "Kind is not supported: " + kind);
|
||||||
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,23 @@ import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
import io.swagger.annotations.ApiResponse;
|
import io.swagger.annotations.ApiResponse;
|
||||||
import io.swagger.annotations.ApiResponses;
|
import io.swagger.annotations.ApiResponses;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import org.springframework.web.server.ResponseStatusException;
|
||||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||||
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
|
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
|
||||||
|
|
@ -21,21 +34,26 @@ import ru.spcex.clearing.backendapi.service.IOperator;
|
||||||
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||||
|
import ru.spcex.platform.enumeration.Status;
|
||||||
import java.util.Collection;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import java.util.Map;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
import java.util.Optional;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/trading-clearing-registries")
|
@RequestMapping("/trading-clearing-registries")
|
||||||
public class TradingClearingRegistryController extends AbstractQueueController {
|
public class TradingClearingRegistryController extends AbstractQueueController {
|
||||||
private final IStateLoader stateLoader;
|
private final IStateLoader stateLoader;
|
||||||
|
private final ImdgPredicateBuilder predicateBuilder;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public TradingClearingRegistryController(IOperator operator, IStateLoader stateLoader) {
|
public TradingClearingRegistryController(IOperator operator,
|
||||||
|
IStateLoader stateLoader,
|
||||||
|
ImdgProvider imdgProvider) {
|
||||||
super(operator);
|
super(operator);
|
||||||
this.stateLoader = stateLoader;
|
this.stateLoader = stateLoader;
|
||||||
|
this.predicateBuilder = imdgProvider
|
||||||
|
.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class)
|
||||||
|
.predicateBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "create TradingClearingRegistry.")
|
@ApiOperation(value = "create TradingClearingRegistry.")
|
||||||
|
|
@ -88,10 +106,21 @@ public class TradingClearingRegistryController extends AbstractQueueController {
|
||||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
|
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
|
||||||
@RequestMapping(method = RequestMethod.GET)
|
@RequestMapping(method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public CommonGetAllResponse getAll() {
|
public CommonGetAllResponse getAll(@RequestParam(name = "kind", required = false) String kind) {
|
||||||
Collection<Map<String, Object>> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
|
||||||
CommonGetAllResponse response = new CommonGetAllResponse();
|
CommonGetAllResponse response = new CommonGetAllResponse();
|
||||||
response.fromEntity(all);
|
|
||||||
|
if (StringUtils.isEmpty(kind)) {
|
||||||
|
Collection<Map<String, Object>> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
||||||
|
response.fromEntity(all);
|
||||||
|
} else if (kind.equals("BLKD")) {
|
||||||
|
ImdgPredicate predicate = predicateBuilder.in("status",
|
||||||
|
Arrays.asList(Status.Blocked.getKey(), Status.Close.getKey()).toArray(new String[0]));
|
||||||
|
Collection<Map<String, Object>> allByStatus = stateLoader.getAllMetaTransform(
|
||||||
|
IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class, predicate);
|
||||||
|
response.fromEntity(allByStatus);
|
||||||
|
} else {
|
||||||
|
throw new ResponseStatusException(HttpStatus.NOT_ACCEPTABLE, "Kind is not supported: " + kind);
|
||||||
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
public enum Status implements IEnumKey {
|
public enum Status implements IEnumKey {
|
||||||
Active("ACTV"),
|
Active("ACTV"),
|
||||||
Blocked("BLKD"),
|
Blocked("BLKD"),
|
||||||
|
Close("CLOS"),
|
||||||
Cancel("CNCL");
|
Cancel("CNCL");
|
||||||
|
|
||||||
private final String key;
|
private final String key;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue