| | |
| | | import com.yami.trading.bean.contract.domain.ContractOrder; |
| | | import com.yami.trading.bean.data.domain.Realtime; |
| | | import com.yami.trading.bean.item.domain.Item; |
| | | import com.yami.trading.bean.model.Wallet; |
| | | import com.yami.trading.common.domain.Result; |
| | | import com.yami.trading.common.exception.YamiShopBindException; |
| | | import com.yami.trading.common.lang.LangUtils; |
| | | import com.yami.trading.common.util.StringUtils; |
| | | import com.yami.trading.common.util.ThreadUtils; |
| | | import com.yami.trading.security.common.util.SecurityUtils; |
| | | import com.yami.trading.service.WalletService; |
| | | import com.yami.trading.service.contract.ContractLockService; |
| | | import com.yami.trading.service.contract.ContractOrderService; |
| | | import com.yami.trading.service.data.DataService; |
| | | import com.yami.trading.service.item.ItemService; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.CrossOrigin; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.validation.constraints.NotBlank; |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | private ItemService itemService; |
| | | @Autowired |
| | | private ContractLockService contractLockService; |
| | | |
| | | @Autowired |
| | | WalletService walletService; |
| | | |
| | | private final String action = "/api/contractOrder!"; |
| | | |
| | |
| | | } |
| | | |
| | | return Result.succeed("平仓成功"); |
| | | } |
| | | |
| | | @GetMapping(action + "addDepositOpen.action") |
| | | @ApiOperation(value = "追加保证金") |
| | | public Result<String> addDepositOpen(@RequestParam @NotBlank String orderNo, @RequestParam @NotBlank BigDecimal addDepositOpen) { |
| | | try { |
| | | ContractOrder order = this.contractOrderService.findByOrderNo(orderNo); |
| | | if (order != null && order.getState().equals(ContractOrder.STATE_SUBMITTED) && order.getLocationType() == 0) { |
| | | contractOrderService.addDepositOpen(order, addDepositOpen); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("追加保证金异常", e); |
| | | throw new YamiShopBindException("追加保证金异常"); |
| | | } |
| | | return Result.succeed("success"); |
| | | } |
| | | |
| | | @GetMapping(action + "setStopPrice.action") |
| | | @ApiOperation(value = "设置止盈止损") |
| | | public Result<String> setStopPrice(@RequestParam @NotBlank String orderNo, @RequestParam @NotBlank BigDecimal stopPriceProfit, |
| | | @RequestParam @NotBlank BigDecimal stopPriceLoss) { |
| | | try { |
| | | ContractOrder order = this.contractOrderService.findByOrderNo(orderNo); |
| | | if (order != null && order.getState().equals(ContractOrder.STATE_SUBMITTED)) { |
| | | order.setStopPriceProfit(stopPriceProfit); |
| | | order.setStopPriceLoss(stopPriceLoss); |
| | | contractOrderService.update(order); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("追加保证金异常", e); |
| | | throw new YamiShopBindException("追加保证金异常"); |
| | | } |
| | | return Result.succeed("success"); |
| | | } |
| | | |
| | | /** |
| | |
| | | bySymbol.transName(); |
| | | map.put("name", bySymbol.getName()); |
| | | } |
| | | map.put("mark_price", realtime.getClose()); |
| | | map.put("mark_price", realtime.getClose().setScale(4, RoundingMode.DOWN)); |
| | | } |
| | | if (ObjectUtils.isEmpty(data.get(i).get("close_avg_price"))) { |
| | | data.get(i).put("close_avg_price", data.get(i).get("mark_price")); |
| | | data.get(i).put("close_avg_price", new BigDecimal(data.get(i).get("mark_price").toString()).setScale(4, RoundingMode.DOWN)); |
| | | } |
| | | } |
| | | return Result.ok(data); |
| | |
| | | } else { |
| | | // if (ContractLock.add(order_no)) { |
| | | if (contractLockService.getContractLock(order_no)) { |
| | | this.contractOrderService.saveClose(partyId, order_no); |
| | | this.contractOrderService.saveClose(partyId, order_no,null); |
| | | // 处理完退出 |
| | | break; |
| | | } |