| | |
| | | package com.yami.trading.admin.controller.contract; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotBlank; |
| | | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import com.google.common.collect.Lists; |
| | | import com.yami.trading.admin.model.AdjustProfitsModel; |
| | | import com.yami.trading.bean.contract.domain.ContractApplyOrder; |
| | | import com.yami.trading.bean.data.domain.Realtime; |
| | | import com.yami.trading.bean.model.User; |
| | | import com.yami.trading.common.domain.Result; |
| | | import com.yami.trading.common.exception.BusinessException; |
| | | import com.yami.trading.common.exception.YamiShopBindException; |
| | | import com.yami.trading.common.query.QueryWrapperGenerator; |
| | | |
| | | import com.yami.trading.common.util.ThreadUtils; |
| | | import com.yami.trading.service.data.DataService; |
| | | import com.yami.trading.service.user.UserService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | import com.yami.trading.bean.contract.mapstruct.ContractOrderWrapper; |
| | | import com.yami.trading.service.contract.ContractOrderService; |
| | | import com.yami.trading.bean.contract.query.ContractOrderQuery; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | |
| | | @Autowired(required = false) |
| | | @Qualifier("dataService") |
| | | private DataService dataService; |
| | | @Autowired |
| | | private UserService userService; |
| | | |
| | | /** |
| | | * 非按金额订单列表数据 |
| | |
| | | public Result<IPage<ContractOrderDTO>> list(ContractOrderQuery contractOrderQuery, Page<ContractOrder> page) throws Exception { |
| | | IPage<ContractOrderDTO> result = contractOrderService.listRecord(page, contractOrderQuery); |
| | | result.getRecords().forEach(d -> { |
| | | String symbol = d.getSymbol(); |
| | | User user = userService.cacheUserBy(d.getPartyId()); |
| | | d.setUserName(user.getUserName()); |
| | | String symbol = d.getSymbol(); |
| | | List<Realtime> realtimes = dataService.realtime(symbol); |
| | | if (CollectionUtil.isEmpty(realtimes)) { |
| | | d.setMark_price(BigDecimal.ZERO); |
| | |
| | | |
| | | ); |
| | | return Result.succeed(result); |
| | | } |
| | | |
| | | /** |
| | | * 调整利润 |
| | | * <p> |
| | | * order_no 订单号 |
| | | */ |
| | | @PostMapping("adjustProfits.action") |
| | | @ApiOperation(value = "调整利润") |
| | | public Result<String> adjustProfits(@RequestBody AdjustProfitsModel model) { |
| | | try { |
| | | ContractOrder order = this.contractOrderService.findByOrderNo(model.getOrderNo()); |
| | | if(ObjectUtil.isEmpty(order)){ |
| | | return Result.failed("订单不存在!"); |
| | | } |
| | | if(!ContractOrder.STATE_SUBMITTED.equals(order.getState())){ |
| | | return Result.failed("订单已平仓!"); |
| | | } |
| | | order.setProfitLossRatio(model.getProfitLossRatio()); |
| | | contractOrderService.update(order); |
| | | } catch (Exception e) { |
| | | log.error("执行调整利润异常", e); |
| | | throw new YamiShopBindException("执行调整利润异常"); |
| | | } |
| | | return Result.succeed("success"); |
| | | } |
| | | |
| | | @PostMapping("updateLave.action") |
| | | @ApiOperation(value = "调整杠杆") |
| | | public Result<String> updateLave(@RequestBody AdjustProfitsModel model) { |
| | | try { |
| | | ContractOrder order = this.contractOrderService.findByOrderNo(model.getOrderNo()); |
| | | if(ObjectUtil.isEmpty(order)){ |
| | | return Result.failed("订单不存在!"); |
| | | } |
| | | if(!ContractOrder.STATE_SUBMITTED.equals(order.getState())){ |
| | | return Result.failed("订单已平仓!"); |
| | | } |
| | | contractOrderService.updateLave(order,model.getLeverRate()); |
| | | } catch (Exception e) { |
| | | log.error("执行调整杠杆异常", e); |
| | | throw new YamiShopBindException("执行调整杠杆异常"); |
| | | } |
| | | return Result.succeed("success"); |
| | | } |
| | | |
| | | |
| | |
| | | while (true) { |
| | | |
| | | if (this.contractOrderService.lock(order_no)) { |
| | | this.contractOrderService.saveClose(partyId, order_no); |
| | | this.contractOrderService.saveClose(partyId, order_no,null); |
| | | // 处理完退出 |
| | | break; |
| | | } |