src/main/java/com/xcong/excoin/modules/contract/mapper/ContractEntrustOrderEntityMapper.java
@@ -32,6 +32,7 @@ public abstract List<ContractEntrustVo> entityListToVoList(List<ContractEntrustOrderEntity> list); @Mapping(source = "entrustAmount", target = "prePaymentAmount") public abstract ContractHoldOrderEntity entrustOrderToHoldOrder(ContractEntrustOrderEntity entrustOrderEntity); } src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -22,9 +22,11 @@ import com.xcong.excoin.modules.contract.parameter.vo.ContractMoneyInfoVo; import com.xcong.excoin.modules.contract.parameter.vo.HoldOrderListVo; import com.xcong.excoin.modules.contract.service.ContractHoldOrderService; import com.xcong.excoin.modules.member.dao.MemberLevelRateDao; import com.xcong.excoin.modules.member.dao.MemberWalletContractDao; import com.xcong.excoin.modules.member.entity.AgentReturnEntity; import com.xcong.excoin.modules.member.entity.MemberEntity; import com.xcong.excoin.modules.member.entity.MemberLevelRateEntity; import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity; import com.xcong.excoin.modules.platform.dao.TradeSettingDao; import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity; @@ -67,6 +69,9 @@ @Resource private MemberWalletContractDao memberWalletContractDao; @Resource private MemberLevelRateDao memberLevelRateDao; @Resource private CacheSettingUtils cacheSettingUtils; @@ -492,6 +497,8 @@ MemberWalletContractEntity walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name()); MemberLevelRateEntity rateEntity = memberLevelRateDao.selectLeverRateByMemberIdAndSymbol(memberEntity.getId(), symbol); // 权益 BigDecimal equity = walletContractEntity.getTotalBalance().add(totalProfitOrLess); @@ -504,6 +511,7 @@ contractMoneyInfoVo.setLeverAgeRatio(tradeSetting.getLeverageRatio()); contractMoneyInfoVo.setNewPrice(newPrice); contractMoneyInfoVo.setSymbolSku(cacheSettingUtils.getSymbolSku(symbol)); contractMoneyInfoVo.setLeverRate(rateEntity.getLevelRateUp()); return Result.ok(contractMoneyInfoVo); } } src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
@@ -6,6 +6,7 @@ import com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity; import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity; import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; import com.xcong.excoin.modules.contract.mapper.ContractEntrustOrderEntityMapper; import com.xcong.excoin.modules.contract.mapper.ContractHoldOrderEntityMapper; import com.xcong.excoin.modules.contract.service.ContractEntrustOrderService; import com.xcong.excoin.modules.contract.service.ContractHoldOrderService; @@ -486,7 +487,6 @@ * @param */ public void dealLimitBuyOrder(List<ContractEntrustOrderEntity> orderList) { //List<CoinsCoinsOrder> orderList = orderMapper.selectOrderByBatchNo(batchno); if (CollectionUtils.isNotEmpty(orderList)) { ContractHoldOrderEntity contractHoldOrderEntity = null; @@ -496,23 +496,21 @@ continue; } contractHoldOrderEntity = new ContractHoldOrderEntity(); // 委托单bean转换为持仓单bean contractHoldOrderEntity = ContractEntrustOrderEntityMapper.INSTANCE.entrustOrderToHoldOrder(coinsCoinsOrder); contractHoldOrderEntity.setId(null); Long memId = coinsCoinsOrder.getMemberId(); MemberEntity memberEntity = memberService.getById(memId); BigDecimal entrustPrice = coinsCoinsOrder.getEntrustPrice(); int symbolCnt = coinsCoinsOrder.getSymbolCnt(); int type = coinsCoinsOrder.getEntrustType(); //开仓价 // Double openPrice = coinsCoinsOrder.getOpenPrice().doubleValue(); //委托价 // Double markPrice = coinsCoinsOrder.getMarkPrice(); if (type == 1) { // 开多 contractHoldOrderEntity.setOpeningType(ContractHoldOrderEntity.OPENING_TYPE_MORE); } else { // 开空 contractHoldOrderEntity.setOpeningType(ContractHoldOrderEntity.OPENING_TYPE_LESS); } //持仓单赋值 @@ -552,18 +550,11 @@ producer.sendPriceOperate(JSONObject.toJSONString(model)); } // 扣除手续费 //double totalBalance = wallet.getTotalBalance() - coinsCoinsOrder.getClosingPrice(); BigDecimal totalBalance = openFeePrice.negate(); /** TradeSetting tradeSetting = tradeSettingCache.getTradeSetting(); Double totalPayPrice = new BigDecimal(coinsCoinsOrder.getPrePrice()).add(new BigDecimal(coinsCoinsOrder.getClosingPrice())).add(new BigDecimal(coinsCoinsOrder.getClosingPrice())) .setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue(); totalBalance = totalBalance+(-totalPayPrice*(Double.valueOf(tradeSetting.getSpread())/10000));*/ BigDecimal totalBalance = wallet.getTotalBalance().subtract(openFeePrice); memberWalletContractService.increaseWalletContractBalanceById(null, totalBalance, null, wallet.getId()); // TODO 531 待写 calYj(memId, contractOrderEntity.getClosingFeeAmount(), contractOrderEntity, 1); calYj(memId, openFeePrice, contractOrderEntity, 1); } } } src/main/java/com/xcong/excoin/modules/member/dao/MemberLevelRateDao.java
@@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xcong.excoin.modules.member.entity.MemberLevelRateEntity; import org.apache.ibatis.annotations.Param; public interface MemberLevelRateDao extends BaseMapper<MemberLevelRateEntity> { public MemberLevelRateEntity selectLeverRateByMemberIdAndSymbol(@Param("memberId") Long memberId, @Param("symbol") String symbol); } src/main/java/com/xcong/excoin/rabbit/init/OrderProducerInit.java
@@ -50,6 +50,7 @@ if (CollectionUtils.isNotEmpty(holdOrderEntities)) { for (ContractHoldOrderEntity order : holdOrderEntities) { log.info("---->>>{}", order.getSymbol()); // 开多1,开空 2 int openingType = order.getOpeningType(); // 1:买入委托2:开多3:开空4:平多5:平空6:爆仓平多7:爆仓平空 src/main/resources/application.yml
@@ -96,10 +96,10 @@ # k线更新任务控制 kline-update-job: false #最新价任务控制 newest-price-update-job: false newest-price-update-job: true #其他任务控制 other-job: false rabbit-consumer: false rabbit-consumer: true aliyun: oss: src/main/resources/mapper/member/MemberLevelRateDao.xml
@@ -2,4 +2,8 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xcong.excoin.modules.member.dao.MemberLevelRateDao"> <select id="selectLeverRateByMemberIdAndSymbol" resultType="com.xcong.excoin.modules.member.entity.MemberLevelRateEntity"> select * from member_level_rate where member_id=#{memberId} and symbol=#{symbol} </select> </mapper>