| | |
| | | import com.xcong.excoin.modules.contract.service.ContractEntrustOrderService; |
| | | import com.xcong.excoin.modules.contract.service.ContractHoldOrderService; |
| | | import com.xcong.excoin.modules.contract.service.ContractOrderService; |
| | | import com.xcong.excoin.modules.documentary.service.FollowOrderOperationService; |
| | | import com.xcong.excoin.modules.member.dao.AgentReturnDao; |
| | | import com.xcong.excoin.modules.member.dao.MemberSettingDao; |
| | | import com.xcong.excoin.modules.member.entity.AgentReturnEntity; |
| | |
| | | private ContractEntrustOrderDao contractEntrustOrderDao; |
| | | @Resource |
| | | private RedisUtils redisUtils; |
| | | |
| | | @Resource |
| | | private FollowOrderOperationService followOrderOperationService; |
| | | |
| | | public void dealOrderFromMq(List<OrderModel> list, Integer type) { |
| | | if (CollectionUtils.isNotEmpty(list)) { |
| | |
| | | * |
| | | * @param |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void dealCoinOut(List<ContractHoldOrderEntity> orderList, List<OrderModel> orderModels) { |
| | | if (CollectionUtils.isNotEmpty(orderList)) { |
| | | Map<Long, Integer> modelMap = new HashMap<Long, Integer>(); |
| | |
| | | continue; |
| | | } |
| | | |
| | | // 仅逐仓有用 |
| | | if (ContractEntrustOrderEntity.POSITION_TYPE_ADD == coinsOrder.getPositionType()) { |
| | | bombOrder(coinsOrder); |
| | | } else { |
| | |
| | | bombOrder(holdOrderEntity); |
| | | } |
| | | |
| | | MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(coinsOrder.getMemberId(), CoinTypeConvert.convertContractTypeToCoin(coinsOrder.getSymbol())); |
| | | MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(coinsOrder.getMemberId(), CoinTypeEnum.USDT.name()); |
| | | |
| | | // 流水记录 TODO |
| | | MemberAccountFlowEntity record = new MemberAccountFlowEntity(); |
| | |
| | | contractOrderService.save(contractOrderEntity); |
| | | |
| | | //更新用户钱包数据 |
| | | MemberWalletContractEntity usdt = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memId, CoinTypeConvert.convertContractTypeToCoin(coinsOrder.getSymbol())); |
| | | MemberWalletContractEntity usdt = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memId, CoinTypeEnum.USDT.name()); |
| | | |
| | | // 减去的时候用负数 |
| | | BigDecimal totalPrice = coinsOrder.getBondAmount().negate(); |
| | |
| | | record.setSymbol(coinsOrder.getSymbol()); |
| | | record.setPrice(coinsOrder.getBondAmount()); |
| | | memberAccountFlowEntityDao.insert(record); |
| | | |
| | | MemberEntity memberEntity = memberService.getById(memId); |
| | | // 如果订单为交易员的订单,爆仓了,则旗下的所有跟单都进行平仓 |
| | | if (ContractOrderEntity.CONTRACTTYPE_DOCUMENTARY == coinsOrder.getContractType() && MemberEntity.IS_TRADER_Y.equals(memberEntity.getIsTrader())) { |
| | | followOrderOperationService.closingFollowOrders(coinsOrder.getOrderNo()); |
| | | } |
| | | } else { |
| | | MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memId, "USDT"); |
| | | |