From 1e2e5bc6044278852114c812d87f271a3f1c9b5d Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Tue, 07 Jul 2020 17:25:49 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 5 +++++ src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java | 13 +++++++++---- src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java | 3 ++- src/main/java/com/xcong/excoin/modules/platform/entity/PlatformTradeSettingEntity.java | 5 +++++ src/main/java/com/xcong/excoin/utils/LogRecordUtils.java | 13 +++++++++++++ 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java index 69f2489..76e3b48 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java @@ -21,10 +21,7 @@ import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity; import com.xcong.excoin.rabbit.pricequeue.OrderModel; import com.xcong.excoin.rabbit.producer.OrderProducer; -import com.xcong.excoin.utils.CacheSettingUtils; -import com.xcong.excoin.utils.CoinTypeConvert; -import com.xcong.excoin.utils.MessageSourceUtils; -import com.xcong.excoin.utils.RedisUtils; +import com.xcong.excoin.utils.*; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -129,10 +126,15 @@ if (submitEntrustDto.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_OPEN_MORE) { OrderModel model = new OrderModel(entrustOrderEntity.getId(), RabbitPriceTypeEnum.ENTRUST_OPEN_MORE.getValue(), submitEntrustDto.getEntrustPrice().setScale(8, RoundingMode.HALF_UP).toPlainString(), submitEntrustDto.getSymbol()); producer.sendPriceOperate(JSONObject.toJSONString(model)); + + LogRecordUtils.insertMemberAccountFlow(memberEntity.getId(), entrustTotalAmount, walletContract.getTotalBalance(), submitEntrustDto.getSymbol(), "买涨持仓", "买涨:" + submitEntrustDto.getSymbol()); } else { OrderModel model = new OrderModel(entrustOrderEntity.getId(), RabbitPriceTypeEnum.ENTRUST_OPEN_LESS.getValue(), submitEntrustDto.getEntrustPrice().setScale(8, RoundingMode.HALF_UP).toPlainString(), submitEntrustDto.getSymbol()); producer.sendPriceOperate(JSONObject.toJSONString(model)); + + LogRecordUtils.insertMemberAccountFlow(memberEntity.getId(), entrustTotalAmount, walletContract.getTotalBalance(), submitEntrustDto.getSymbol(), "买跌持仓", "买跌:" + submitEntrustDto.getSymbol()); } + return Result.ok(MessageSourceUtils.getString("result_success_msg")); } else { return Result.fail(MessageSourceUtils.getString("result_fail_msg")); @@ -177,6 +179,9 @@ int i = contractOrderDao.insert(orderEntity); contractEntrustOrderDao.deleteById(entrustOrderEntity.getId()); + + // 插入财务流水 + LogRecordUtils.insertMemberAccountFlow(memberEntity.getId(), total, walletContractEntity.getTotalBalance(), entrustOrderEntity.getSymbol(), "撤销委托单", "撤销委托单"); if (i > 0) { return Result.ok(MessageSourceUtils.getString("cancellation_success")); } diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java index 92d4c02..df44a62 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java @@ -542,6 +542,8 @@ } HoldOrderDetailVo holdOrderDetailVo = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrderDetailVo(holdOrderEntity); + BigDecimal feeSpread = cacheSettingUtils.getTradeSetting().getFeeSpreadRatio(); + holdOrderDetailVo.setOpeningFeeAmount(holdOrderDetailVo.getOpeningFeeAmount().multiply(feeSpread)); return Result.ok(holdOrderDetailVo); } @@ -566,6 +568,9 @@ } OrderDetailVo orderDetailVo = ContractOrderEntityMapper.INSTANCE.entityToDetailVo(contractOrderEntity); + BigDecimal feeSpread = cacheSettingUtils.getTradeSetting().getFeeSpreadRatio(); + orderDetailVo.setClosingFeeAmount(orderDetailVo.getClosingFeeAmount().multiply(feeSpread)); + orderDetailVo.setOpeningFeeAmount(orderDetailVo.getOpeningFeeAmount().multiply(feeSpread)); return Result.ok(orderDetailVo); } 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 f810784..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 @@ -662,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(","); diff --git a/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformTradeSettingEntity.java b/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformTradeSettingEntity.java index 6b5924f..b0e342e 100644 --- a/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformTradeSettingEntity.java +++ b/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformTradeSettingEntity.java @@ -60,4 +60,9 @@ *盈亏难度系数 */ private BigDecimal profitParam; + + /** + * 手续费系数 + */ + private BigDecimal feeSpreadRatio; } diff --git a/src/main/java/com/xcong/excoin/utils/LogRecordUtils.java b/src/main/java/com/xcong/excoin/utils/LogRecordUtils.java index 274b052..6bf4189 100644 --- a/src/main/java/com/xcong/excoin/utils/LogRecordUtils.java +++ b/src/main/java/com/xcong/excoin/utils/LogRecordUtils.java @@ -1,6 +1,8 @@ package com.xcong.excoin.utils; +import com.xcong.excoin.modules.coin.dao.MemberAccountFlowEntityDao; import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao; +import com.xcong.excoin.modules.coin.entity.MemberAccountFlowEntity; import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange; import java.math.BigDecimal; @@ -23,4 +25,15 @@ accountRecord.setType(type); SpringContextHolder.getBean(MemberAccountMoneyChangeDao.class).insert(accountRecord); } + + public static void insertMemberAccountFlow(Long memberId, BigDecimal price, BigDecimal balance, String symbol, String source, String remark) { + MemberAccountFlowEntity memberAccountFlowEntity = new MemberAccountFlowEntity(); + memberAccountFlowEntity.setMemberId(memberId); + memberAccountFlowEntity.setPrice(price); + memberAccountFlowEntity.setBalance(balance); + memberAccountFlowEntity.setSymbol(symbol); + memberAccountFlowEntity.setSource(source); + memberAccountFlowEntity.setRemark(remark); + SpringContextHolder.getBean(MemberAccountFlowEntityDao.class).insert(memberAccountFlowEntity); + } } -- Gitblit v1.9.1