From cd7a3a9b0960e700c4bd9c0f9c57ac3db98b6301 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 07 Aug 2020 17:02:27 +0800 Subject: [PATCH] Merge branch 'follow' of https://gitee.com/chonggaoxiao/new_excoin into follow --- src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java | 88 ++++++++++++++++++++++++++++++++++++------- 1 files changed, 73 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java b/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java index e8ce451..c9beb3a 100644 --- a/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java @@ -23,6 +23,7 @@ import com.xcong.excoin.modules.coin.dao.OrderCoinsDao; import com.xcong.excoin.modules.coin.parameter.dto.RecordsPageDto; import com.xcong.excoin.modules.contract.dao.ContractHoldOrderDao; +import com.xcong.excoin.modules.contract.dao.ContractOrderDao; import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity; import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; import com.xcong.excoin.modules.documentary.dao.FollowFollowerNoticeDao; @@ -34,6 +35,7 @@ import com.xcong.excoin.modules.documentary.dao.FollowTraderProfitInfoDao; import com.xcong.excoin.modules.documentary.dto.CancelDocumentaryOrderSetDto; import com.xcong.excoin.modules.documentary.dto.DocumentaryOrderSetDto; +import com.xcong.excoin.modules.documentary.dto.FollowFollowerNoticeDto; import com.xcong.excoin.modules.documentary.dto.FollowRecordsDto; import com.xcong.excoin.modules.documentary.dto.HistoryOrderRecordsDto; import com.xcong.excoin.modules.documentary.dto.MyFollowOrderDto; @@ -102,6 +104,8 @@ @Resource private ContractHoldOrderDao contractHoldOrderDao; @Resource + private ContractOrderDao contractOrderDao; + @Resource private MemberLevelRateDao memberLevelRateDao; @Resource private MemberWalletContractDao memberWalletContractDao; @@ -109,7 +113,7 @@ private FollowFollowerSettingDao followFollowerSettingDao; @Resource private FollowFollowerOrderRelationDao followFollowerOrderRelationDao; - + @Resource private FollowFollowerNoticeDao followFollowerNoticeDao; @@ -452,7 +456,7 @@ FollowTraderInfoEntity traderInfoEntity = followTraderInfoDao.selectTraderInfoByMemberId(memberId); if (traderInfoEntity != null) { - return Result.fail("交易员不能进行跟单"); + return Result.fail(MessageSourceUtils.getString("documentary_service_0014")); } FollowFollowerSettingEntity isExistSetting = followFollowerSettingDao.selectOneBymemberIdAndTradeId(memberId, traderId); @@ -638,6 +642,24 @@ if(MemberEntity.CERTIFY_STATUS_Y != certifyStatus) { return Result.fail(MessageSourceUtils.getString("member_controller_0009")); } + + //不可以处于跟单状态 + Map<String, Object> columnMaps = new HashMap<>(); + columnMaps.put("member_id", memberId); + columnMaps.put("is_follow", 1); + List<FollowFollowerProfitEntity> followFollowerProfitEntitys = followFollowerProfitDao.selectByMap(columnMaps); + if(CollUtil.isNotEmpty(followFollowerProfitEntitys)) { + return Result.fail(MessageSourceUtils.getString("documentary_service_0015")); + } + + //合约不能持仓 + Map<String, Object> contractHoldColumnMap = new HashMap<>(); + contractHoldColumnMap.put("member_id", memberId); + List<ContractHoldOrderEntity> contractHoldOrderEntitys = contractHoldOrderDao.selectByMap(contractHoldColumnMap); + if(CollUtil.isNotEmpty(contractHoldOrderEntitys)) { + return Result.fail(MessageSourceUtils.getString("documentary_service_0013")); + } + Map<String, Object> columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List<FollowTraderInfoEntity> selectByMap = followTraderInfoDao.selectByMap(columnMap); @@ -648,7 +670,8 @@ //新增【交易员信息表】数据 FollowTraderInfoEntity followTraderInfoEntity = new FollowTraderInfoEntity(); followTraderInfoEntity.setMemberId(memberId); - followTraderInfoEntity.setAvatar(FollowTraderInfoEntity.AVATAR_DEFAULT); + followTraderInfoEntity.setProfitRatio(BigDecimal.valueOf(0.1)); +// followTraderInfoEntity.setAvatar(FollowTraderInfoEntity.AVATAR_DEFAULT); String phone = memberEntity.getPhone(); String email = memberEntity.getEmail(); if(StrUtil.isNotEmpty(phone)) { @@ -824,7 +847,7 @@ // 回报率 BigDecimal returnRate = rewardRatio.divide(contractHoldOrderEntity.getBondAmount().subtract(contractHoldOrderEntity.getOpeningFeeAmount()), 8, BigDecimal.ROUND_DOWN); - myFollowOrderVo.setRewardRatio(returnRate.setScale(2, BigDecimal.ROUND_DOWN)); + myFollowOrderVo.setRewardRatio(returnRate.setScale(4, BigDecimal.ROUND_DOWN)); myFollowOrderVos.add(myFollowOrderVo); } @@ -846,11 +869,42 @@ if(CollUtil.isNotEmpty(records)) { for(ContractOrderEntity contractOrderEntity : records) { TradeHistoryOrderInfoVo myFollowOrderVo = new TradeHistoryOrderInfoVo(); + //获取【跟随者-订单关联表】中的累计数据 + BigDecimal allRewardAmount = BigDecimal.ZERO; + BigDecimal allRewardRatio = BigDecimal.ZERO; + + Long orderId = contractOrderEntity.getId(); + String orderNo = contractOrderEntity.getOrderNo(); + Map<String, Object> columnMapRelation = new HashMap<>(); + columnMapRelation.put("trade_order_no", orderNo); + columnMapRelation.put("trade_member_id", memberId); + columnMapRelation.put("order_type", 2); + columnMapRelation.put("is_show", 1); + List<FollowFollowerOrderRelationEntity> followFollowerOrderRelations = followFollowerOrderRelationDao.selectByMap(columnMapRelation); + if(CollUtil.isNotEmpty(followFollowerOrderRelations)) { + int size = followFollowerOrderRelations.size() - 1; + myFollowOrderVo.setFollowerNumber(size); + for(FollowFollowerOrderRelationEntity followFollowerOrderRelation : followFollowerOrderRelations) { + Long followerMemberId = followFollowerOrderRelation.getMemberId(); + if(!memberId.equals(followerMemberId)) { + Long followerOrderId = followFollowerOrderRelation.getOrderId(); + ContractOrderEntity orderEntity = contractOrderDao.selectById(followerOrderId); + BigDecimal rewardAmount = orderEntity.getRewardAmount(); + allRewardAmount = allRewardAmount.add(rewardAmount); + BigDecimal rewardRatio = orderEntity.getRewardRatio(); + allRewardRatio = allRewardRatio.add(rewardRatio); + } + } + }else { + myFollowOrderVo.setFollowerNumber(0); + } + myFollowOrderVo.setFollowerRewardAmount(allRewardAmount); + myFollowOrderVo.setFollowerRewardRatio(allRewardRatio); + //获取交易员信息 FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectTraderInfoByMemberId(memberId); String nickname = followTraderInfoEntity.getNickname(); myFollowOrderVo.setNickname(nickname); - Long orderId = contractOrderEntity.getId(); myFollowOrderVo.setOrderId(orderId); String symbol = contractOrderEntity.getSymbol(); myFollowOrderVo.setSymbol(symbol); @@ -860,7 +914,7 @@ myFollowOrderVo.setLeverRatio(leverRatio); BigDecimal rewardAmount = contractOrderEntity.getRewardAmount().setScale(2, BigDecimal.ROUND_DOWN); myFollowOrderVo.setRewardAmount(rewardAmount); - BigDecimal rewardRatio = contractOrderEntity.getRewardRatio().setScale(2, BigDecimal.ROUND_DOWN); + BigDecimal rewardRatio = contractOrderEntity.getRewardRatio().setScale(4, BigDecimal.ROUND_DOWN); myFollowOrderVo.setRewardRatio(rewardRatio); int symbolCnt = contractOrderEntity.getSymbolCnt(); myFollowOrderVo.setSymbolCnt(symbolCnt); @@ -874,7 +928,7 @@ myFollowOrderVo.setOpeningTime(openingTime); Date closingTime = contractOrderEntity.getClosingTime(); myFollowOrderVo.setClosingTime(closingTime); - String orderNo = contractOrderEntity.getOrderNo(); + myFollowOrderVo.setOrderNo(orderNo); myFollowOrderVos.add(myFollowOrderVo); } @@ -953,21 +1007,25 @@ } @Override - public Result getFollowFollowerNoticeList() { + public Result getFollowFollowerNoticeList(FollowFollowerNoticeDto followFollowerNoticeDto) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); List<FollowFollowerNoticeVo> arrayList = new ArrayList<>(); - Map<String, Object> columnMap = new HashMap<>(); - columnMap.put("member_id", memberId); - List<FollowFollowerNoticeEntity> selectByMap = followFollowerNoticeDao.selectByMap(columnMap ); - if(CollUtil.isNotEmpty(selectByMap)) { - for(FollowFollowerNoticeEntity followFollowerNoticeEntity : selectByMap) { + Page<FollowFollowerNoticeEntity> page = new Page<>(followFollowerNoticeDto.getPageNum(), followFollowerNoticeDto.getPageSize()); + FollowFollowerNoticeEntity followFollowerNoticeEntity = new FollowFollowerNoticeEntity(); + followFollowerNoticeEntity.setMemberId(memberId); + IPage<FollowFollowerNoticeEntity> followFollowerNoticelist = followFollowerNoticeDao.selectFollowFollowerNoticePage(page, followFollowerNoticeEntity); + List<FollowFollowerNoticeEntity> records = followFollowerNoticelist.getRecords(); + if(CollUtil.isNotEmpty(records)) { + for(FollowFollowerNoticeEntity followFollowerNotice : records) { FollowFollowerNoticeVo followFollowerNoticeVo = new FollowFollowerNoticeVo(); - String title = followFollowerNoticeEntity.getTitle(); + String title = followFollowerNotice.getTitle(); followFollowerNoticeVo.setTitle(title); - String content = followFollowerNoticeEntity.getContent(); + String content = followFollowerNotice.getContent(); followFollowerNoticeVo.setContent(content); + Date createTime = followFollowerNotice.getCreateTime(); + followFollowerNoticeVo.setCreateTime(createTime); arrayList.add(followFollowerNoticeVo); } } -- Gitblit v1.9.1