Helius
2020-06-02 be6979a915b64b831526baf9052726b5bb5cf152
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
@@ -1,8 +1,10 @@
package com.xcong.excoin.modules.contract.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xcong.excoin.common.LoginUserUtils;
import com.xcong.excoin.common.enumerates.MemberWalletCoinEnum;
import com.xcong.excoin.common.enumerates.RabbitPriceTypeEnum;
import com.xcong.excoin.common.response.Result;
import com.xcong.excoin.common.system.service.CommonService;
import com.xcong.excoin.modules.contract.dao.ContractEntrustOrderDao;
@@ -17,6 +19,8 @@
import com.xcong.excoin.modules.member.entity.MemberEntity;
import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity;
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.RedisUtils;
@@ -26,6 +30,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
/**
@@ -53,6 +58,9 @@
    @Resource
    private CommonService commonService;
    @Resource
    private OrderProducer producer;
    @Transactional(rollbackFor = Exception.class)
    @Override
@@ -111,12 +119,21 @@
            // 暂默认逐仓
            entrustOrderEntity.setPositionType(ContractEntrustOrderEntity.POSITION_TYPE_ADD);
//            int i = contractEntrustOrderDao.insert(entrustOrderEntity);
            int i = contractEntrustOrderDao.insert(entrustOrderEntity);
            walletContract.setFrozenBalance(walletContract.getFrozenBalance().add(entrustTotalAmount));
            walletContract.setAvailableBalance(walletContract.getAvailableBalance().subtract(entrustTotalAmount));
//            memberWalletContractDao.updateById(walletContract);
            if (1 > 0) {
            memberWalletContractDao.updateById(walletContract);
            if (i > 0) {
                // 发送委托单队列消息
                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));
                } 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));
                }
                return Result.ok("委托成功");
            } else {
                return Result.fail("委托失败");