From 1fa20a9e7109fa0536be2820e768db41b6e1839c Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Tue, 07 Jul 2020 17:54:29 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java | 32 ++++++++++++++++++++++++-------- 1 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java index f63eb5a..90963b4 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java @@ -188,6 +188,7 @@ contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount()); contractOrderEntity.setClosingPrice(closePrice); contractOrderEntity.setClosingType(6); + contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_MORE); BigDecimal totalReturn = BigDecimal.ZERO; contractOrderService.save(contractOrderEntity); @@ -277,6 +278,7 @@ contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount()); contractOrderEntity.setClosingPrice(closePrice); contractOrderEntity.setClosingType(7); + contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_MORE); BigDecimal totalReturn = BigDecimal.ZERO; contractOrderService.save(contractOrderEntity); @@ -367,6 +369,7 @@ contractOrderEntity.setRewardRatio(returnRate); contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount()); contractOrderEntity.setClosingPrice(closePrice); + contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_MORE); contractOrderEntity.setClosingType(8); BigDecimal totalReturn = BigDecimal.ZERO; contractOrderService.save(contractOrderEntity); @@ -458,6 +461,7 @@ contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount()); contractOrderEntity.setClosingPrice(closePrice); contractOrderEntity.setClosingType(9); + contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_LESS); BigDecimal totalReturn = BigDecimal.ZERO; contractOrderService.save(contractOrderEntity); @@ -554,7 +558,7 @@ contractOrderEntity.setEntrustOpeningPrice(coinsCoinsOrder.getEntrustPrice()); contractOrderEntity.setEntrustTime(coinsCoinsOrder.getCreateTime()); contractOrderEntity.setOpeningTime(new Date()); - + contractOrderEntity.setId(null); contractOrderService.save(contractOrderEntity); // 发送爆仓的队列 @@ -622,7 +626,12 @@ if (isDone) { //删除次仓订单 contractHoldOrderService.removeById(orderId); - + // 订单状态转换 + if (ContractOrderEntity.ORDER_TYPE_OPEN_MORE == contractOrderEntity.getOrderType()) { + contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_MORE); + } else { + contractOrderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CLOSE_LESS); + } //更新主表订单状态位为“已平仓” contractOrderEntity.setId(null); contractOrderEntity.setClosingPrice(nowPrice); @@ -653,8 +662,9 @@ } public void calYj(Long mid, BigDecimal money, ContractOrderEntity order, int type) { + PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting(); if (money != null) { - money = money.multiply(new BigDecimal(0.7868)); + money = money.multiply(tradeSetting.getFeeSpreadRatio()); } MemberEntity member = memberService.getById(mid); String[] referenceIds = member.getRefererIds().split(","); @@ -684,24 +694,28 @@ // 存放uid以及对应uid用户的佣金 - Map<String, BigDecimal> map = new HashMap<>(); + Map<String, Map<String, BigDecimal>> map = new HashMap<>(); Iterator<Map.Entry<Integer, NeedMoneyMemberVo>> it = treeMap.entrySet().iterator(); BigDecimal lastRate = BigDecimal.ZERO; BigDecimal lastYj = BigDecimal.ZERO; while (it.hasNext()) { Map.Entry<Integer, NeedMoneyMemberVo> entry = it.next(); NeedMoneyMemberVo member1 = entry.getValue(); + Map<String, BigDecimal> returnValue = new HashMap<>(); + returnValue.put("ratio", member1.getReturnRatio()); + returnValue.put("lastRate", lastRate); // 上下级佣金比率相减后乘以手续费 -- 即用户所得佣金 lastYj = (member1.getReturnRatio().subtract(lastRate)).multiply(money); lastRate = member1.getReturnRatio(); - map.put(member1.getInviteId(), lastYj); + returnValue.put("returnMoney", lastYj); + map.put(member1.getInviteId(), returnValue); } // 输出对应佣金是否正确 - Iterator<Map.Entry<String, BigDecimal>> it1 = map.entrySet().iterator(); + Iterator<Map.Entry<String, Map<String, BigDecimal>>> it1 = map.entrySet().iterator(); List<AgentReturnEntity> agentList = new ArrayList<AgentReturnEntity>(); while (it1.hasNext()) { - Map.Entry<String, BigDecimal> entry = it1.next(); + Map.Entry<String, Map<String, BigDecimal>> entry = it1.next(); // System.out.println(entry.getKey() + "-----" + entry.getValue()); MemberEntity agentMember = memberService.selectMemberInfoByInviteId(entry.getKey()); AgentReturnEntity agent = new AgentReturnEntity(); @@ -712,7 +726,9 @@ agent.setOrderType(order.getOrderType()); agent.setReturnSymbol(order.getSymbol()); agent.setIsReturn(0); - agent.setReturnAmount(entry.getValue()); + agent.setReturnAmount(entry.getValue().get("returnMoney")); + agent.setChildReturnRatio(entry.getValue().get("lastRate")); + agent.setReturnRatio(entry.getValue().get("ratio")); agent.setClosingType(order.getClosingType()); if (type == 1) {//开仓 agent.setOpeningFeeAmount(order.getOpeningFeeAmount()); -- Gitblit v1.9.1