From 6f44fa20505ec0b1c95b460043f25b9050511aa0 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 25 May 2020 11:07:27 +0800 Subject: [PATCH] 20200525 代码提交 --- src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java | 186 +--------------------------------------------- 1 files changed, 4 insertions(+), 182 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java index b4543ee..0c60ebc 100644 --- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java @@ -8,18 +8,10 @@ import javax.annotation.Resource; -import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.kebex.app.entity.member.Member; -import com.kebex.app.entity.member.MemberAccountFlowRecord; -import com.kebex.app.entity.member.WalletCoin; -import com.kebex.app.entity.order.CoinOrderMain; -import com.kebex.app.entity.order.CoinsOrderDetail; -import com.kebex.app.entity.trade.TradeSetting; -import com.kebex.common.huobiapi.CoinTypeConConvert; import com.xcong.excoin.common.LoginUserUtils; import com.xcong.excoin.common.enumerates.MemberWalletCoinEnum; import com.xcong.excoin.common.response.Result; @@ -28,7 +20,7 @@ import com.xcong.excoin.modules.coin.dao.platform.CnyUsdtExchangeDao; import com.xcong.excoin.modules.coin.dao.platform.TradeSettingDao; import com.xcong.excoin.modules.coin.entity.CnyUsdtExchange; -import com.xcong.excoin.modules.coin.entity.OrderCoinEntity; +import com.xcong.excoin.modules.coin.entity.OrderCoinsEntity; import com.xcong.excoin.modules.coin.entity.PlatformTradeSettingEntity; import com.xcong.excoin.modules.coin.service.OrderCoinService; import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao; @@ -41,7 +33,7 @@ import cn.hutool.core.util.StrUtil; @Service -public class OrderCoinServiceImpl extends ServiceImpl<OrderCoinDao, OrderCoinEntity> implements OrderCoinService{ +public class OrderCoinServiceImpl extends ServiceImpl<OrderCoinDao, OrderCoinsEntity> implements OrderCoinService{ @Resource TradeSettingDao platformTradeSettingDao; @@ -110,178 +102,8 @@ @Transactional public Result submitSalesWalletCoinOrder(String symbol, Integer type, Integer tradeType, BigDecimal price, BigDecimal amount) { - try { - //获取用户ID - Long memberId = LoginUserUtils.getAppLoginUser().getId(); - - String[] symbols = symbol.split("/"); - if (symbols.length <= 0) { - return Result.fail(MessageSourceUtils.getString("order_service_0008")); - } - /** - * todo - */ - //查询当前价 - //BigDecimal nowPrice = new BigDecimal(redisUtil.getString(CoinTypeConConvert.convertToKey(symbol+"/USDT"))); - BigDecimal nowPrice = new BigDecimal("100.0000"); - - // 获取交易管理的杠杠倍率,手续费率等信息,由平台进行设置 - symbol = symbol.toUpperCase(); - MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, symbols[0]); - MemberWalletCoinEntity walletCoinUsdt = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, - MemberWalletCoinEnum.WALLETCOINCODE.getValue()); - if (ObjectUtil.isEmpty(walletCoin) || ObjectUtil.isEmpty(walletCoinUsdt) ) { - return Result.fail(MessageSourceUtils.getString("order_service_0003")); - } - // 查询交易设置 - PlatformTradeSettingEntity tradeSetting = platformTradeSettingDao.findTradeSetting(); - if(ObjectUtil.isEmpty(tradeSetting)) { - return Result.fail(MessageSourceUtils.getString("order_service_0009")); - } - //手续费率 - BigDecimal ServiceRate = new BigDecimal(MemberWalletCoinEnum.SUBMITSALESWALLETCOINORDER_SERVICERATE.getValue()); - // 手续费用(手续费=建仓价X数量X手续费率) - BigDecimal closingPrice = price.multiply(amount).multiply(ServiceRate).setScale(4, BigDecimal.ROUND_DOWN); - //总费用 = 成交价*数量+手续费 - BigDecimal totalPayPrice = price.multiply(amount).add(closingPrice).setScale(4, BigDecimal.ROUND_DOWN); - if(MemberWalletCoinEnum.SUBMITSALESWALLETCOINORDER_TYPE.getValue().equals(type.toString())) { - //买入,所需总费用跟用户USDT金额进行比较 - if (totalPayPrice.compareTo(walletCoinUsdt.getAvailableBalance()) > 0) { - return Result.fail(MessageSourceUtils.getString("order_service_0010")); - } - }else { - //卖出,所需总费用跟用户所对应的币种金额进行比较 - if (amount.compareTo(walletCoin.getAvailableBalance()) > 0) { - return Result.fail(MessageSourceUtils.getString("order_service_0010")); - } - } - - CoinOrderMain order = new CoinOrderMain(); - - // 创建订单 - if (tradeType == 2) {// 如果是限价交易直接插入主表数据 - order.setStatus(1); - order.setMemId(member.getmId()); - order.setOpenPrice(price.doubleValue()); - order.setOpenTime(new Date()); - order.setOrderNo(generateSimpleSerialno(member.getmId() + "")); - order.setOrderType(type); - order.setRewardRatio(price - .multiply(amount).doubleValue()); - order.setForceSetPrice(nowPrice.doubleValue()); -// order.setStatus(3); - order.setSysbol(symbol); - order.setSysbolNumber(amount); - order.setSysbolFlatNumber(amount); - order.setTradeType(tradeType); - order.setVersion(1); - order.setClosingPrice(closingPrice); - orderMapper.addCoinMainOrder(order); - - //更新用户钱包信息 - //冻结相应的资产 - if(type == 1) {//如果是买入,所对应的币种增加,USDT账户减少金额 - // 更新用户的可用金额,冻结金额 - walletCoinUsdt.setAvailableBalance(walletCoinUsdt.getAvailableBalance()-totalPayPrice.doubleValue()); - walletCoinUsdt.setFrozenBalance(walletCoinUsdt.getFrozenBalance()+totalPayPrice.doubleValue()); - walletCoinDao.updateByModel(walletCoinUsdt); - }else { - //如果是卖出,币种减少,USDT增加 - BigDecimal availableBalance = new BigDecimal(walletCoin.getAvailableBalance()).subtract(amount).setScale(8, BigDecimal.ROUND_HALF_UP); - walletCoin.setAvailableBalance(availableBalance.doubleValue()); - walletCoin.setFrozenBalance(walletCoin.getFrozenBalance()+amount.doubleValue()); - walletCoinDao.updateByModel(walletCoin); - } - } else { - //如果是市价交易,主表和附表都需要插入数据 - order.setStatus(3); - order.setMemId(member.getmId()); - order.setForceSetPrice(nowPrice.doubleValue()); - order.setOpenPrice(nowPrice.doubleValue()); - order.setOpenTime(new Date()); - order.setOrderNo(generateSimpleSerialno(member.getmId() + "")); - order.setOrderType(type); - order.setRewardRatio(nowPrice - .multiply(amount).doubleValue()); -// order.setStatus(3); - order.setSysbol(symbol); - order.setSysbolNumber(amount); - order.setSysbolFlatNumber(amount); - order.setTradeType(tradeType); - order.setVersion(1); - order.setClosingPrice(closingPrice); - orderMapper.addCoinMainOrder(order); - // - CoinsOrderDetail detail = new CoinsOrderDetail(); - detail.setClosingPrice(closingPrice.doubleValue()); - detail.setCreateTime(new Date()); - detail.setEntrustStatus(1); - detail.setEntrustType(type); - detail.setExitPrice(price.doubleValue()); - detail.setExitType(1); - detail.setMainId(order.getId()); - detail.setMemberId(member.getmId()); - detail.setMemberPhone(member.getPhone()); - detail.setPrePrice(price - .multiply(amount).doubleValue()); - detail.setRewardRatio(0.0); - detail.setSerialno(generateSimpleSerialno(member.getmId() + "")); - detail.setSymbol(symbol); - detail.setSymbolSku(amount); - detail.setSymbolSkuNumber(amount); - detail.setTradePrice(price.doubleValue()); - detail.setTradeType(tradeType); - detail.setVersion(1); - coinOrderDetailMapper.insert(detail); - - if(type == 1) {//如果是买入,所对应的币种增加,USDT账户减少金额 - // 更新用户的可用金额 - BigDecimal availableBalance = new BigDecimal(walletCoin.getAvailableBalance()).add(amount).setScale(8, BigDecimal.ROUND_HALF_UP); - walletCoin.setAvailableBalance(availableBalance.doubleValue()); - walletCoinDao.updateByModel(walletCoin); - - walletCoinUsdt.setAvailableBalance(walletCoinUsdt.getAvailableBalance()-totalPayPrice.doubleValue()); - walletCoinDao.updateByModel(walletCoinUsdt); - }else { - //如果是卖出,币种减少,USDT增加 - BigDecimal availableBalance = new BigDecimal(walletCoin.getAvailableBalance()).subtract(amount).setScale(8, BigDecimal.ROUND_HALF_UP); - walletCoin.setAvailableBalance(availableBalance.doubleValue()); - walletCoinDao.updateByModel(walletCoin); - - walletCoinUsdt.setAvailableBalance(walletCoinUsdt.getAvailableBalance()+totalPayPrice.doubleValue()); - walletCoinDao.updateByModel(walletCoinUsdt); - } - - //返佣 -// calYj(member.getmId(), closingPrice, order); -// String reference = member.getReference(); - //返佣 -// agentReturn(reference,closingPrice.doubleValue(),detail); - - } - // 流水记录 - MemberAccountFlowRecord record = new MemberAccountFlowRecord(); - record.setCreateTime(new Date()); - if (type == 1) { - record.setDirectionSource("币币买入"+symbol); - record.setRemark("买入"+symbol+":"+amount); - record.setPrice(totalPayPrice.doubleValue()); - } else { - record.setDirectionSource("币币卖出"+symbol); - record.setRemark("卖出"+symbol+":"+amount); - record.setPrice(-totalPayPrice.doubleValue()); - } - record.setMemberBalance(walletCoinUsdt.getAvailableBalance()); - record.setMemberid(member.getmId()); - record.setSymbolName(symbol); - record.setMemberName(member.getRealName()); - record.setMemberPhone(member.getPhone()); - - memberMapper.addFlowRecord(record); - } catch (Exception e) { - e.printStackTrace(); - } - return Result.success(MessageSourceUtils.getString("order_service_0011")); + + return Result.ok(MessageSourceUtils.getString("order_service_0011")); } } -- Gitblit v1.9.1