From d23645e976981bc9b670eea1d469fe8a36be309c Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Wed, 17 Apr 2024 17:19:53 +0800 Subject: [PATCH] 55测试环境 --- src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java | 43 +++++++++++++++++++++++++++++++------------ 1 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java index ba5c3a1..1d8078e 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java @@ -6,9 +6,11 @@ import com.alibaba.fastjson.JSONObject; import com.xcong.excoin.common.contants.AppContants; import com.xcong.excoin.common.enumerates.CoinTypeEnum; +import com.xcong.excoin.common.enumerates.MemberWalletCoinEnum; import com.xcong.excoin.common.enumerates.OrderClosingTypeEnum; import com.xcong.excoin.common.system.service.CommonService; import com.xcong.excoin.modules.coin.entity.MemberAccountFlowEntity; +import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange; import com.xcong.excoin.modules.contract.dao.ContractEntrustOrderDao; import com.xcong.excoin.modules.contract.dao.ContractHoldOrderDao; import com.xcong.excoin.modules.contract.dao.ContractOrderDao; @@ -126,6 +128,7 @@ } } catch (Exception e) { log.error("平仓异常", e); + throw e; } } @@ -179,12 +182,12 @@ // 盈亏比例(回报率) BigDecimal rewardRatio = profitOrLoss.divide(holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()), 8, BigDecimal.ROUND_DOWN); - FollowTraderInfoEntity traderInfoEntity = null; + FollowTraderInfoEntity traderInfoEntity = followTraderInfoDao.selectTraderInfoByOrderId(holdOrderEntity.getId()); // 判断当前订单是否为跟单 if (ContractOrderEntity.CONTRACTTYPE_DOCUMENTARY == holdOrderEntity.getContractType()) { - // 若不为交易员,则计算跟随者订单返利 - if (!MemberEntity.IS_TRADER_Y.equals(memberEntity.getIsTrader())) { - traderInfoEntity = followTraderInfoDao.selectTraderInfoByOrderId(holdOrderEntity.getId()); + // 若不为交易员且不是测试账号,则计算跟随者订单返利 + if (!MemberEntity.IS_TRADER_Y.equals(memberEntity.getIsTrader()) && + !MemberEntity.ACCOUNT_TYPE_TEST.equals(memberEntity.getAccountType())) { if (profitOrLoss.compareTo(BigDecimal.ZERO) > 0) { // 计算需返利给交易员的金额 BigDecimal returnMoney = profitOrLoss.multiply(traderInfoEntity.getProfitRatio()); @@ -193,13 +196,24 @@ memberWalletContractDao.increaseWalletContractBalanceById(returnMoney, returnMoney, null, traderWallet.getId()); insertReturnProfitDetail(traderInfoEntity.getMemberId(), memberEntity.getId(), returnMoney, holdOrderEntity.getOrderNo()); //增加返佣提醒 - String orderNo = holdOrderEntity.getOrderNo(); - LogRecordUtils.insertFollowerNotice(traderInfoEntity.getMemberId(), - NoticeConstant.RETURN_MONEY_TITLE, - StrUtil.format(NoticeConstant.RETURN_MONEY_CONTENT, - memberEntity.getInviteId(), - orderNo, - returnMoney.setScale(2, BigDecimal.ROUND_HALF_UP).toString())); +// String orderNo = holdOrderEntity.getOrderNo(); +// LogRecordUtils.insertFollowerNotice(traderInfoEntity.getMemberId(), +// NoticeConstant.RETURN_MONEY_TITLE, +// StrUtil.format(NoticeConstant.RETURN_MONEY_CONTENT, +// orderNo, +// holdOrderEntity.getSymbol(), +// returnMoney.setScale(2, BigDecimal.ROUND_HALF_UP).toString())); +// //带单返利的记录要在资产页面的其他记录 +// LogRecordUtils.insertMemberAccountMoneyChange( +// traderInfoEntity.getMemberId(), +// StrUtil.format(NoticeConstant.RETURN_MONEY_CONTENT_MAMC, +// orderNo, +// holdOrderEntity.getSymbol(), +// returnMoney.setScale(2, BigDecimal.ROUND_HALF_UP).toString()), +// returnMoney.setScale(2, BigDecimal.ROUND_HALF_UP), +// MemberWalletCoinEnum.WALLETCOINCODE.getValue(), +// MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER, +// MemberAccountMoneyChange.TYPE_WALLET_AGENT); } } } @@ -293,6 +307,11 @@ // 获取平仓张数 Integer closeCnt = (Integer) redisUtils.get(AppContants.CLOSING_ORDER_PREFIX + holdOrderEntity.getId()); + // 无法从redis中获取平仓张数,说明来自一键平仓 + if (closeCnt == null) { + closeCnt = holdOrderEntity.getSymbolCntSale(); + holdOrderEntity.setSymbolCntSale(0); + } MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(memberEntity.getId()); // 开多 @@ -518,7 +537,7 @@ continue; } -// holdOrderEntity.setForceClosingPrice(getForceSetPrice(wholePriceData, holdOrderEntity, holdOrderDataModel.getSymbol())); + holdOrderEntity.setStopLossPrice(CalculateUtil.calWholePriceTwo(memberEntity, holdOrderEntity, 2)); contractHoldOrderDao.deleteById(holdOrderDataModel.getId()); ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(holdOrderEntity); -- Gitblit v1.9.1