This commit is contained in:
parent
11ed1ff66b
commit
59110cdff8
3 changed files with 135 additions and 2 deletions
|
|
@ -1,29 +1,40 @@
|
||||||
package ru.spcex.clearing.backendapi.controller.queue.scheduler;
|
package ru.spcex.clearing.backendapi.controller.queue.scheduler;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
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 org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import ru.clearing.classes.statics.data.scheduler.Scheduler;
|
import ru.clearing.classes.statics.data.scheduler.Scheduler;
|
||||||
|
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||||
|
import ru.spcex.clearing.backendapi.controller.request.cud.schedule.SchedulerNewAction;
|
||||||
|
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
|
||||||
|
import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
|
||||||
import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse;
|
import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse;
|
||||||
import ru.spcex.clearing.backendapi.controller.response.entity.schedule.SchedulerBackendGetAll;
|
import ru.spcex.clearing.backendapi.controller.response.entity.schedule.SchedulerBackendGetAll;
|
||||||
|
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 java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/schedule/schedulers")
|
@RequestMapping("/schedule/schedulers")
|
||||||
public class SchedulerController {
|
public class SchedulerController extends AbstractQueueController {
|
||||||
private final IStateLoader stateLoader;
|
private final IStateLoader stateLoader;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public SchedulerController(IStateLoader stateLoader) {
|
public SchedulerController(IStateLoader stateLoader, IOperator operator) {
|
||||||
|
super(operator);
|
||||||
this.stateLoader = stateLoader;
|
this.stateLoader = stateLoader;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -37,4 +48,39 @@ public class SchedulerController {
|
||||||
response.fromEntity(all);
|
response.fromEntity(all);
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "create scheduler.")
|
||||||
|
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
|
||||||
|
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
@ResponseBody
|
||||||
|
public CudResponse add(
|
||||||
|
@ApiParam(value = "Параметры команды в JSON формате.", required = true)
|
||||||
|
@RequestBody SchedulerNewAction schedulerNewAction) throws ExecutionException, InterruptedException {
|
||||||
|
return processRequest(Consts.DESTINATION_SCHEDULER_NEW, schedulerNewAction);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
//@ApiOperation(value = "update money security.")
|
||||||
|
//@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 MoneyMarketSecurityUpdateAction moneySecurityUpdateAction) throws ExecutionException, InterruptedException {
|
||||||
|
// moneySecurityUpdateAction.setId(id);
|
||||||
|
// return processRequest(Consts.DESTINATION_MONEY_MARKET_SECURITY_UPDATE, moneySecurityUpdateAction);
|
||||||
|
//}
|
||||||
|
//
|
||||||
|
//@ApiOperation(value = "delete money security.")
|
||||||
|
//@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.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_MONEY_MARKET_SECURITY_DELETE, deleteAction);
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,83 @@
|
||||||
|
package ru.spcex.clearing.backendapi.controller.request.cud.schedule;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.backendapi.domain.actions.IAction;
|
||||||
|
import ru.spcex.clearing.backendapi.errors.BackEndError;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.ActionType;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.SchedulerNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalTimeDeserializer;
|
||||||
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
|
import ru.spcex.platform.utils.text.TextUtil;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SchedulerNewAction implements IAction<SchedulerNewRequest> {
|
||||||
|
@ApiModelProperty(value = "Идентификатор задачи", example = "ABCD")
|
||||||
|
@JsonProperty
|
||||||
|
private String task;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "Время", example = "01:30:00")
|
||||||
|
@JsonDeserialize(using = LocalTimeDeserializer.class)
|
||||||
|
@JsonProperty
|
||||||
|
public LocalTime taskTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "Дата", example = "2022-01-20")
|
||||||
|
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||||
|
@JsonProperty
|
||||||
|
public LocalDate clearingDate;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "Секция", example = "ABCD")
|
||||||
|
@JsonProperty
|
||||||
|
private String market;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "Статус", example = "ABCD")
|
||||||
|
@JsonProperty
|
||||||
|
private String taskStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "Инструмент", example = "1000")
|
||||||
|
@JsonProperty
|
||||||
|
private Long securityId;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SchedulerNewRequest toRequest() {
|
||||||
|
SchedulerNewRequest schedulerNewRequest = new SchedulerNewRequest();
|
||||||
|
schedulerNewRequest.setTask(task);
|
||||||
|
schedulerNewRequest.setTaskTime(taskTime);
|
||||||
|
schedulerNewRequest.setClearingDate(clearingDate);
|
||||||
|
schedulerNewRequest.setMarket(market);
|
||||||
|
schedulerNewRequest.setTaskStatus(taskStatus);
|
||||||
|
schedulerNewRequest.setSecurityId(securityId);
|
||||||
|
return schedulerNewRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActionType getActionType() {
|
||||||
|
return ActionType.NEW;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Collection<EnumMessage> validate() {
|
||||||
|
List<EnumMessage> validationErrors = new ArrayList<>();
|
||||||
|
if (TextUtil.isEmpty(task)) {
|
||||||
|
validationErrors.add(new EnumMessage(BackEndError.ValidationError, "task"));
|
||||||
|
}
|
||||||
|
if (taskTime == null) {
|
||||||
|
validationErrors.add(new EnumMessage(BackEndError.ValidationError, "taskTime"));
|
||||||
|
}
|
||||||
|
if (clearingDate == null) {
|
||||||
|
validationErrors.add(new EnumMessage(BackEndError.ValidationError, "clearingDate"));
|
||||||
|
}
|
||||||
|
if (TextUtil.isEmpty(taskStatus)) {
|
||||||
|
validationErrors.add(new EnumMessage(BackEndError.ValidationError, "taskStatus"));
|
||||||
|
}
|
||||||
|
return validationErrors;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -7,6 +7,10 @@ import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class TextUtil {
|
public class TextUtil {
|
||||||
|
public static boolean isEmpty(String cs) {
|
||||||
|
return cs == null || cs.trim().length() == 0;
|
||||||
|
}
|
||||||
|
|
||||||
public static String format(String template, Map<String, Object> parameters) {
|
public static String format(String template, Map<String, Object> parameters) {
|
||||||
StringBuilder newTemplate = new StringBuilder(template);
|
StringBuilder newTemplate = new StringBuilder(template);
|
||||||
List<Object> valueList = new ArrayList<>();
|
List<Object> valueList = new ArrayList<>();
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue