| | |
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | |
|
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
| | | import com.baomidou.mybatisplus.core.metadata.IPage;
|
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
| | |
| | | import com.xcong.excoin.modules.coin.parameter.dto.FindAllWalletCoinOrderDto;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.FindCollectListVo;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.MemberSelectSymbolsVo;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.OrderWalletCoinDealListVo;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.OrderWalletCoinDealVo;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.OrderWalletCoinListVo;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.OrderWalletCoinVo;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.TransactionPageOfWalletCoinVo;
|
| | | import com.xcong.excoin.modules.coin.service.OrderCoinService;
|
| | | import com.xcong.excoin.modules.contract.entity.ContractOrderEntity;
|
| | | import com.xcong.excoin.modules.contract.mapper.ContractOrderEntityMapper;
|
| | | import com.xcong.excoin.modules.contract.parameter.vo.OrderListVo;
|
| | | import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao;
|
| | | import com.xcong.excoin.modules.member.entity.MemberSelectSymbolsEntity;
|
| | | import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
|
| | |
| | | BigDecimal closingPrice = price.multiply(amount).multiply(tradeSetting.getCoinFeeRatio());
|
| | | //总费用 = 成交价*数量+手续费
|
| | | BigDecimal totalPayPrice = price.multiply(amount).add(closingPrice);
|
| | | BigDecimal totalPayPricCoin = nowPrice.multiply(amount).add(closingPrice);
|
| | |
|
| | | String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
|
| | | MemberWalletCoinEntity walletCoinUsdt = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
|
| | | if (OrderCoinsEntity.ORDERTYPE_BUY.equals(type)) {
|
| | | //买入,所需总费用跟用户USDT金额进行比较
|
| | | BigDecimal availableBalance = walletCoinUsdt.getAvailableBalance();
|
| | | if (totalPayPrice.compareTo(availableBalance) > 0) {
|
| | | if (totalPayPrice.compareTo(availableBalance) > 0 || totalPayPricCoin.compareTo(availableBalance) > 0) {
|
| | | return Result.fail(MessageSourceUtils.getString("order_service_0010"));
|
| | | }
|
| | | } else {
|
| | |
| | | totalPayPrice = nowPrice.multiply(amount).add(closingPrice);
|
| | | price = nowPrice;
|
| | | }
|
| | | order.setDealPrice(price);
|
| | | order.setDealPrice(nowPrice);
|
| | | order.setDealAmount(totalPayPrice);
|
| | | order.setOrderStatus(OrderCoinsEntity.ORDERSTATUS_DONE);
|
| | | order.setTradeType(tradeType);
|
| | |
| | | detail.setSymbol(symbol);
|
| | | detail.setSymbolCnt(amount);
|
| | | detail.setEntrustPrice(nowPriceinBigDecimal);
|
| | | detail.setDealPrice(price);
|
| | | detail.setDealPrice(nowPrice);
|
| | | detail.setDealAmount(totalPayPrice);
|
| | | detail.setFeeAmount(closingPrice);
|
| | | detail.setOrderStatus(OrderCoinsDealEntity.ORDERSTATUS_DONE);
|
| | |
| | | if (CollUtil.isNotEmpty(findCoinOrderListByMemberIdAndSysmbol)) {
|
| | | for (OrderCoinsEntity orderCoinsEntity : findCoinOrderListByMemberIdAndSysmbol) {
|
| | | OrderWalletCoinVo entityToVo = OrderWalletCoinMapper.INSTANCE.entityToVo(orderCoinsEntity);
|
| | | entityToVo.setFeeAmount(entityToVo.getFeeAmount()== null |
| | | ? BigDecimal.ZERO : entityToVo.getFeeAmount().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | entityToVo.setMarkPrice(entityToVo.getMarkPrice()== null |
| | | ? BigDecimal.ZERO : entityToVo.getMarkPrice().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | entityToVo.setEntrustCnt(entityToVo.getEntrustCnt()== null |
| | | ? BigDecimal.ZERO : entityToVo.getEntrustCnt().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | entityToVo.setEntrustPrice(entityToVo.getEntrustPrice()== null |
| | | ? BigDecimal.ZERO : entityToVo.getEntrustPrice().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | entityToVo.setDealCnt(entityToVo.getDealCnt()== null |
| | | ? BigDecimal.ZERO : entityToVo.getDealCnt().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | entityToVo.setDealPrice(entityToVo.getDealPrice()== null |
| | | ? BigDecimal.ZERO : entityToVo.getDealPrice().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | entityToVo.setDealAmount(entityToVo.getDealAmount()== null |
| | | ? BigDecimal.ZERO : entityToVo.getDealAmount().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | arrayList.add(entityToVo);
|
| | | }
|
| | | }
|
| | |
| | | orderCoinsDealEntity.setSymbol(findAllWalletCoinOrderDto.getSymbol());
|
| | | IPage<OrderCoinsDealEntity> list = orderCoinDealDao.findAllWalletCoinOrderInPage(page, orderCoinsDealEntity);
|
| | | Page<OrderWalletCoinDealVo> pageEntityToPageVo = OrderWalletCoinDealMapper.INSTANCE.pageEntityToPageVo(list);
|
| | | List<OrderWalletCoinDealVo> records = pageEntityToPageVo.getRecords();
|
| | | if(CollUtil.isNotEmpty(records)) {
|
| | | for(OrderWalletCoinDealVo orderWalletCoinDealVo : records) {
|
| | | orderWalletCoinDealVo.setFeeAmount(orderWalletCoinDealVo.getFeeAmount() == null |
| | | ? BigDecimal.ZERO : orderWalletCoinDealVo.getFeeAmount().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | |
| | | orderWalletCoinDealVo.setDealAmount(orderWalletCoinDealVo.getDealAmount() == null |
| | | ? BigDecimal.ZERO : orderWalletCoinDealVo.getDealAmount().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | |
| | | orderWalletCoinDealVo.setSymbolCnt(orderWalletCoinDealVo.getSymbolCnt() == null |
| | | ? BigDecimal.ZERO : orderWalletCoinDealVo.getSymbolCnt().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | |
| | | orderWalletCoinDealVo.setEntrustPrice(orderWalletCoinDealVo.getEntrustPrice() == null |
| | | ? BigDecimal.ZERO : orderWalletCoinDealVo.getEntrustPrice().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | |
| | | orderWalletCoinDealVo.setDealPrice(orderWalletCoinDealVo.getDealPrice() == null |
| | | ? BigDecimal.ZERO : orderWalletCoinDealVo.getDealPrice().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | return Result.ok(pageEntityToPageVo);
|
| | | }
|
| | |
| | | Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
| | | OrderCoinsDealEntity selectWalletCoinOrder = orderCoinDealDao.selectWalletCoinOrder(orderId, memberId);
|
| | | OrderWalletCoinDealVo entityToVo = OrderWalletCoinDealMapper.INSTANCE.entityToVoOrder(selectWalletCoinOrder);
|
| | | if(ObjectUtil.isNotEmpty(entityToVo)) {
|
| | | entityToVo.setFeeAmount(entityToVo.getFeeAmount() == null |
| | | ? BigDecimal.ZERO : entityToVo.getFeeAmount().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | |
| | | entityToVo.setDealAmount(entityToVo.getDealAmount() == null |
| | | ? BigDecimal.ZERO : entityToVo.getDealAmount().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | |
| | | entityToVo.setSymbolCnt(entityToVo.getSymbolCnt() == null |
| | | ? BigDecimal.ZERO : entityToVo.getSymbolCnt().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | |
| | | entityToVo.setEntrustPrice(entityToVo.getEntrustPrice() == null |
| | | ? BigDecimal.ZERO : entityToVo.getEntrustPrice().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | |
| | | entityToVo.setDealPrice(entityToVo.getDealPrice() == null |
| | | ? BigDecimal.ZERO : entityToVo.getDealPrice().setScale(4, BigDecimal.ROUND_DOWN));
|
| | | }
|
| | | return Result.ok(entityToVo);
|
| | | }
|
| | |
|