Helius
2020-09-08 6210236a0c3753eb38619262f47e94de655b0a38
modify
2 files modified
24 ■■■■ changed files
src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java 8 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
@@ -45,6 +45,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @author wzy
@@ -479,14 +480,17 @@
            Long memberId = memberEntity.getId();
            List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberId, null);
            MemberWalletContractEntity wallet = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeEnum.USDT.name());
            Map<Object, Object> value = redisUtils.hmget(AppContants.WHOLE_BOMB_PREFIX + memberId);
            if (CollUtil.isNotEmpty(holdOrderEntities)) {
                PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting();
                for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) {
                    // 删除次仓订单
                    contractHoldOrderDao.deleteById(holdOrderEntity.getId());
                    BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(holdOrderEntity.getSymbol());
                    BigDecimal currentPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol())));
                    String symbolPrice = (String) value.get(holdOrderEntity.getSymbol());
                    log.info("symbolPrice : {}, symbol : {}", symbolPrice, holdOrderEntity.getSymbol());
                    BigDecimal currentPrice = new BigDecimal(symbolPrice);
                    // 单个订单盈利
//                    BigDecimal profitOrLess = BigDecimal.ZERO;
//                    // 开多
src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
@@ -290,13 +290,11 @@
                if (CollUtil.isNotEmpty(holdOrderEntities)) {
                    BigDecimal totalProfitOrLess = BigDecimal.ZERO;
                    String currentPrice = null;
                    Map<String, Object> priceMap = new HashMap<>();
                    for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) {
                        if (symbol.equalsIgnoreCase(holdOrderEntity.getSymbol())) {
                            currentPrice = price;
                        } else {
                            currentPrice = redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol()));
                        }
                        String currentPrice = redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol()));
                        priceMap.put(holdOrderEntity.getSymbol(), currentPrice);
                        BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(holdOrderEntity.getSymbol());
                        BigDecimal profitOrLess = CalculateUtil.calOrderProfitOrLess(holdOrderEntity.getOpeningType(), new BigDecimal(currentPrice), holdOrderEntity.getOpeningPrice(), lotNumber, holdOrderEntity.getSymbolCntSale(), memberEntity.getIsProfit());
                        totalProfitOrLess = totalProfitOrLess.add(profitOrLess);
@@ -312,12 +310,12 @@
                        String content = JSONObject.toJSONString(list);
                        String key = AppContants.WHOLE_BOMB_PREFIX + memberId;
                        String value = redisUtils.getString(key);
                        if (StrUtil.isBlank(value)) {
                        Map<Object, Object> value = redisUtils.hmget(key);
                        if (value == null) {
                            orderProducer.sendWholeBomb(content);
                            contractHoldOrderDao.updateMemberAllHoldOrderClosingStatus(memberId);
                            redisUtils.set(key, memberId);
                            redisUtils.hmset(key, priceMap);
                        }
                    }
                }