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")); } 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); } 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(","); src/main/java/com/xcong/excoin/modules/platform/entity/PlatformTradeSettingEntity.java
@@ -60,4 +60,9 @@ *盈亏难度系数 */ private BigDecimal profitParam; /** * 手续费系数 */ private BigDecimal feeSpreadRatio; } 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); } }