From fc5d2e8c20e82550eaf0e7ff1dc19f85d73a41bd Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 30 Jul 2020 18:28:18 +0800 Subject: [PATCH] 20200730 代码提交 --- src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java | 410 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 263 insertions(+), 147 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 e5ee7d0..c36640a 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 @@ -1,6 +1,7 @@ package com.xcong.excoin.modules.documentary.service.impl; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -10,6 +11,7 @@ import javax.validation.Valid; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -22,17 +24,24 @@ import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity; import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; import com.xcong.excoin.modules.documentary.dao.FollowFollowerProfitDao; +import com.xcong.excoin.modules.documentary.dao.FollowFollowerSettingDao; import com.xcong.excoin.modules.documentary.dao.FollowTraderInfoDao; import com.xcong.excoin.modules.documentary.dao.FollowTraderProfitDetailDao; 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.FollowRecordsDto; import com.xcong.excoin.modules.documentary.dto.HistoryOrderRecordsDto; import com.xcong.excoin.modules.documentary.dto.MyFollowOrderDto; import com.xcong.excoin.modules.documentary.dto.MyFollowTraderInfoDto; +import com.xcong.excoin.modules.documentary.dto.UpdateDocumentaryOrderSetDto; import com.xcong.excoin.modules.documentary.entity.FollowFollowerProfitEntity; +import com.xcong.excoin.modules.documentary.entity.FollowFollowerSettingEntity; import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity; import com.xcong.excoin.modules.documentary.entity.FollowTraderProfitInfoEntity; import com.xcong.excoin.modules.documentary.service.DocumentaryService; +import com.xcong.excoin.modules.documentary.vo.DocumentaryOrderInfoVo; +import com.xcong.excoin.modules.documentary.vo.DocumentaryOrderSetInfoVo; import com.xcong.excoin.modules.documentary.vo.FollowInfoVo; import com.xcong.excoin.modules.documentary.vo.FollowRecordsVo; import com.xcong.excoin.modules.documentary.vo.FollowTraderProfitInfoVo; @@ -41,13 +50,19 @@ import com.xcong.excoin.modules.documentary.vo.MyFollowOrderVo; import com.xcong.excoin.modules.documentary.vo.MyFollowTraderInfoVo; import com.xcong.excoin.modules.member.dao.MemberDao; +import com.xcong.excoin.modules.member.dao.MemberLevelRateDao; +import com.xcong.excoin.modules.member.dao.MemberWalletContractDao; import com.xcong.excoin.modules.member.entity.MemberEntity; +import com.xcong.excoin.modules.member.entity.MemberLevelRateEntity; +import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity; import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity; import com.xcong.excoin.utils.CacheSettingUtils; import com.xcong.excoin.utils.CoinTypeConvert; +import com.xcong.excoin.utils.MessageSourceUtils; import com.xcong.excoin.utils.RedisUtils; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; @@ -73,6 +88,13 @@ private CacheSettingUtils cacheSettingUtils; @Resource private ContractHoldOrderDao contractHoldOrderDao; + @Resource + private MemberLevelRateDao memberLevelRateDao; + @Resource + private MemberWalletContractDao memberWalletContractDao; + @Resource + private FollowFollowerSettingDao followFollowerSettingDao; + @Override public Result getMemberIsTradeInfo() { @@ -94,12 +116,25 @@ public Result getFollowTraderProfitInfo(@Valid RecordsPageDto recordsPageDto) { Page<FollowTraderProfitInfoVo> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize()); - FollowTraderProfitInfoEntity memberAccountMoneyChange = new FollowTraderProfitInfoEntity(); - IPage<FollowTraderProfitInfoVo> followTraderProfitInfoList = followTraderProfitInfoDao.selectFollowTraderProfitInfoEntity(page, memberAccountMoneyChange); + FollowTraderProfitInfoEntity followTraderProfitInfoEntity = new FollowTraderProfitInfoEntity(); + IPage<FollowTraderProfitInfoVo> followTraderProfitInfoList = followTraderProfitInfoDao.selectFollowTraderProfitInfoEntity(page, followTraderProfitInfoEntity); List<FollowTraderProfitInfoVo> followTraderProfitInfoVoList = followTraderProfitInfoList.getRecords(); if(CollUtil.isNotEmpty(followTraderProfitInfoVoList)) { for(FollowTraderProfitInfoVo FollowTraderProfitInfoVo : followTraderProfitInfoVoList) { + MemberEntity user = LoginUserUtils.getUser(); + if(ObjectUtil.isNotEmpty(user)) { + Long traderId = FollowTraderProfitInfoVo.getTraderId(); + Long memberId = user.getId(); + FollowFollowerProfitEntity followFollowerProfitEntity = followFollowerProfitDao.selectDocumentaryOrderSetInfoBymemberIdAndTradeId(memberId, traderId); + if(ObjectUtil.isNotEmpty(followFollowerProfitEntity)) { + FollowTraderProfitInfoVo.setDocumentaaryType(1); + }else { + FollowTraderProfitInfoVo.setDocumentaaryType(2); + } + }else { + FollowTraderProfitInfoVo.setDocumentaaryType(2); + } Long traderId = FollowTraderProfitInfoVo.getTraderId(); FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectFollowTraderInfoEntityBytreaderId(traderId); String avatar = followTraderInfoEntity.getAvatar(); @@ -110,8 +145,6 @@ FollowTraderProfitInfoVo.setDeclaration(declaration); Integer isAll = followTraderInfoEntity.getIsAll(); FollowTraderProfitInfoVo.setIsAll(isAll); - Integer isOpen = followTraderInfoEntity.getIsOpen(); - FollowTraderProfitInfoVo.setIsOpen(isOpen); } } return Result.ok(followTraderProfitInfoVoList); @@ -120,28 +153,34 @@ @Override public Result getHistoryOrderRecords(@Valid HistoryOrderRecordsDto historyOrderRecordsDto) { + FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectById(historyOrderRecordsDto.getTradeId()); + Long memberId = followTraderInfoEntity.getMemberId(); + Page<HistoryOrderRecordsVo> page = new Page<>(historyOrderRecordsDto.getPageNum(), historyOrderRecordsDto.getPageSize()); - IPage<HistoryOrderRecordsVo> historyOrderRecordsVoList = followTraderProfitInfoDao.selectHistoryOrderRecords(page, historyOrderRecordsDto.getMemberId()); + IPage<HistoryOrderRecordsVo> historyOrderRecordsVoList = followTraderProfitInfoDao.selectHistoryOrderRecords(page, memberId); return Result.ok(historyOrderRecordsVoList); } @Override public Result getFollowRecords(@Valid FollowRecordsDto followRecordsDto) { + FollowTraderInfoEntity followTraderInfoEn = followTraderInfoDao.selectById(followRecordsDto.getTradeId()); + Long memberId = followTraderInfoEn.getMemberId(); + Page<FollowRecordsVo> page = new Page<>(followRecordsDto.getPageNum(), followRecordsDto.getPageSize()); - IPage<FollowRecordsVo> historyOrderRecordsVoList = followFollowerProfitDao.selectFollowRecords(page, followRecordsDto.getTradeMemberId()); + IPage<FollowRecordsVo> historyOrderRecordsVoList = followFollowerProfitDao.selectFollowRecords(page, memberId); List<FollowRecordsVo> records = historyOrderRecordsVoList.getRecords(); if(CollUtil.isNotEmpty(records)) { for(FollowRecordsVo followRecordsVo : records) { - Long memberId =followRecordsVo.getMemberId(); - MemberEntity member = memberDao.selectById(memberId); - String email = member.getEmail(); - String phone = member.getPhone(); - if(StrUtil.isNotEmpty(email)) { - followRecordsVo.setAccount(email); + Long memberIds = followRecordsVo.getMemberId(); + MemberEntity MemberEntity = memberDao.selectById(memberIds); + String phone = MemberEntity.getPhone(); + String email = MemberEntity.getEmail(); + if(StrUtil.isNotEmpty(phone)) { + followRecordsVo.setNickname(phone); }else { - followRecordsVo.setAccount(phone); + followRecordsVo.setNickname(email); } } } @@ -175,35 +214,6 @@ totalPrincipals = totalPrincipals.add(totalPrincipal); BigDecimal totalProfit = followFollowerProfitEntity.getTotalProfit(); totalProfits = totalProfits.add(totalProfit); - - //当前跟单 - List<ContractHoldOrderEntity> contractHoldOrderEntitys = followFollowerProfitDao.getFollowOrderNowRecords(memberId); - if(CollUtil.isNotEmpty(contractHoldOrderEntitys)) { - for(ContractHoldOrderEntity contractHoldOrderEntity : contractHoldOrderEntitys) { - // 获取最新价 - BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(contractHoldOrderEntity.getSymbol()))); - BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(contractHoldOrderEntity.getSymbol()); - // 盈亏 - BigDecimal rewardRatio = BigDecimal.ZERO; - // 开多 - if (contractHoldOrderEntity.OPENING_TYPE_MORE == contractHoldOrderEntity.getOpeningType()) { - // (最新价-开仓价)*规格*张数 - rewardRatio = newPrice.subtract(contractHoldOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt())); - // 开空 - } else { - // (开仓价-最新价)*规格*张数 - rewardRatio = contractHoldOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt())); - } - - if (member.getIsProfit() == MemberEntity.IS_PROFIT_Y) { - PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting(); - if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) { - rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(tradeSettingEntity.getProfitParam())); - } - } - totalProfits = totalProfits.add(rewardRatio); - } - } } } followInfoVo.setTotalPrincipal(totalPrincipals.setScale(4, BigDecimal.ROUND_DOWN)); @@ -213,16 +223,12 @@ } @Override - public Result getMyFollowOrderRecords(@Valid MyFollowOrderDto myFollowOrderDto) { + public Result getHistoryMyFollowOrderRecords(@Valid MyFollowOrderDto myFollowOrderDto) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); - MemberEntity member = memberDao.selectById(memberId); - - int type = myFollowOrderDto.getOrderType(); Page<MyFollowOrderVo> result = new Page<>(); List<MyFollowOrderVo> myFollowOrderVos = result.getRecords(); //历史跟单 - if(type == 2) { Page<ContractOrderEntity> page = new Page<>(myFollowOrderDto.getPageNum(), myFollowOrderDto.getPageSize()); IPage<ContractOrderEntity> contractOrderEntitys = followFollowerProfitDao.getMyFollowOrderHistoryRecords(page, memberId); @@ -257,64 +263,73 @@ myFollowOrderVos.add(myFollowOrderVo); } } - }else { - //当前跟单 - Page<ContractHoldOrderEntity> page = new Page<>(myFollowOrderDto.getPageNum(), myFollowOrderDto.getPageSize()); - IPage<ContractHoldOrderEntity> contractHoldOrderEntitys = followFollowerProfitDao.getMyFollowOrderNowRecords(page, myFollowOrderDto.getMemberId()); - - List<ContractHoldOrderEntity> records = contractHoldOrderEntitys.getRecords(); - if(CollUtil.isNotEmpty(records)) { - for(ContractHoldOrderEntity contractHoldOrderEntity : records) { - MyFollowOrderVo myFollowOrderVo = new MyFollowOrderVo(); - String symbol = contractHoldOrderEntity.getSymbol(); - myFollowOrderVo.setSymbol(symbol); - int orderType = contractHoldOrderEntity.getOpeningType(); - myFollowOrderVo.setOrderType(orderType); - int leverRatio = contractHoldOrderEntity.getLeverRatio(); - myFollowOrderVo.setLeverRatio(leverRatio); - int symbolCnt = contractHoldOrderEntity.getSymbolCnt(); - myFollowOrderVo.setSymbolCnt(symbolCnt); - BigDecimal bondAmount = contractHoldOrderEntity.getBondAmount().setScale(4, BigDecimal.ROUND_DOWN); - myFollowOrderVo.setBondAmount(bondAmount); - BigDecimal openingPrice = contractHoldOrderEntity.getOpeningPrice().setScale(4, BigDecimal.ROUND_DOWN); - myFollowOrderVo.setOpeningPrice(openingPrice); - String orderNo = contractHoldOrderEntity.getOrderNo(); - myFollowOrderVo.setOrderNo(orderNo); - Date openingTime = contractHoldOrderEntity.getCreateTime(); - myFollowOrderVo.setOpeningTime(openingTime); - - // 获取最新价 - BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(contractHoldOrderEntity.getSymbol()))); - BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(contractHoldOrderEntity.getSymbol()); - // 盈亏 - BigDecimal rewardRatio = BigDecimal.ZERO; - // 开多 - if (contractHoldOrderEntity.OPENING_TYPE_MORE == contractHoldOrderEntity.getOpeningType()) { - // (最新价-开仓价)*规格*张数 - rewardRatio = newPrice.subtract(contractHoldOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt())); - // 开空 - } else { - // (开仓价-最新价)*规格*张数 - rewardRatio = contractHoldOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt())); - } - - if (member.getIsProfit() == MemberEntity.IS_PROFIT_Y) { - PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting(); - if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) { - rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(tradeSettingEntity.getProfitParam())); - } - } - myFollowOrderVo.setRewardAmount(rewardRatio.setScale(4, BigDecimal.ROUND_DOWN)); - - // 回报率 - BigDecimal returnRate = rewardRatio.divide(contractHoldOrderEntity.getBondAmount().subtract(contractHoldOrderEntity.getOpeningFeeAmount()), 8, BigDecimal.ROUND_DOWN); - myFollowOrderVo.setRewardRatio(returnRate.setScale(4, BigDecimal.ROUND_DOWN)); - - myFollowOrderVos.add(myFollowOrderVo); - } - } - } - + return Result.ok(myFollowOrderVos); + + } + @Override + public Result getNowMyFollowOrderRecords(@Valid MyFollowOrderDto myFollowOrderDto) { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + MemberEntity member = memberDao.selectById(memberId); + + Page<MyFollowOrderVo> result = new Page<>(); + List<MyFollowOrderVo> myFollowOrderVos = result.getRecords(); + //当前跟单 + Page<ContractHoldOrderEntity> page = new Page<>(myFollowOrderDto.getPageNum(), myFollowOrderDto.getPageSize()); + IPage<ContractHoldOrderEntity> contractHoldOrderEntitys = followFollowerProfitDao.getMyFollowOrderNowRecords(page, memberId); + + List<ContractHoldOrderEntity> records = contractHoldOrderEntitys.getRecords(); + if(CollUtil.isNotEmpty(records)) { + for(ContractHoldOrderEntity contractHoldOrderEntity : records) { + MyFollowOrderVo myFollowOrderVo = new MyFollowOrderVo(); + String symbol = contractHoldOrderEntity.getSymbol(); + myFollowOrderVo.setSymbol(symbol); + int orderType = contractHoldOrderEntity.getOpeningType(); + myFollowOrderVo.setOrderType(orderType); + int leverRatio = contractHoldOrderEntity.getLeverRatio(); + myFollowOrderVo.setLeverRatio(leverRatio); + int symbolCnt = contractHoldOrderEntity.getSymbolCnt(); + myFollowOrderVo.setSymbolCnt(symbolCnt); + BigDecimal bondAmount = contractHoldOrderEntity.getBondAmount().setScale(4, BigDecimal.ROUND_DOWN); + myFollowOrderVo.setBondAmount(bondAmount); + BigDecimal openingPrice = contractHoldOrderEntity.getOpeningPrice().setScale(4, BigDecimal.ROUND_DOWN); + myFollowOrderVo.setOpeningPrice(openingPrice); + String orderNo = contractHoldOrderEntity.getOrderNo(); + myFollowOrderVo.setOrderNo(orderNo); + Date openingTime = contractHoldOrderEntity.getCreateTime(); + myFollowOrderVo.setOpeningTime(openingTime); + + // 获取最新价 + BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(contractHoldOrderEntity.getSymbol()))); + BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(contractHoldOrderEntity.getSymbol()); + // 盈亏 + BigDecimal rewardRatio = BigDecimal.ZERO; + // 开多 + if (contractHoldOrderEntity.OPENING_TYPE_MORE == contractHoldOrderEntity.getOpeningType()) { + // (最新价-开仓价)*规格*张数 + rewardRatio = newPrice.subtract(contractHoldOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt())); + // 开空 + } else { + // (开仓价-最新价)*规格*张数 + rewardRatio = contractHoldOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt())); + } + + if (member.getIsProfit() == MemberEntity.IS_PROFIT_Y) { + PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting(); + if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) { + rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(tradeSettingEntity.getProfitParam())); + } + } + myFollowOrderVo.setRewardAmount(rewardRatio.setScale(4, BigDecimal.ROUND_DOWN)); + + // 回报率 + BigDecimal returnRate = rewardRatio.divide(contractHoldOrderEntity.getBondAmount().subtract(contractHoldOrderEntity.getOpeningFeeAmount()), 8, BigDecimal.ROUND_DOWN); + myFollowOrderVo.setRewardRatio(returnRate.setScale(4, BigDecimal.ROUND_DOWN)); + + myFollowOrderVos.add(myFollowOrderVo); + } + } + return Result.ok(myFollowOrderVos); } @@ -323,15 +338,14 @@ public Result getMyFollowTraderInfo(@Valid MyFollowTraderInfoDto myFollowTraderInfoDto) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); - MemberEntity member = memberDao.selectById(memberId); + + Page<MyFollowTraderInfoVo> result = new Page<>(); + List<MyFollowTraderInfoVo> myFollowOrderVos = result.getRecords(); + Page<FollowFollowerProfitEntity> page = new Page<>(myFollowTraderInfoDto.getPageNum(), myFollowTraderInfoDto.getPageSize()); IPage<FollowFollowerProfitEntity> followFollowerProfitEntitys = followFollowerProfitDao.selectFollowFollowerProfitEntitys(page, memberId); - List<FollowFollowerProfitEntity> records = followFollowerProfitEntitys.getRecords(); if(CollUtil.isNotEmpty(records)) { - Page<MyFollowTraderInfoVo> result = new Page<>(); - List<MyFollowTraderInfoVo> myFollowOrderVos = result.getRecords(); - for(FollowFollowerProfitEntity FollowFollowerProfitEntity : records) { MyFollowTraderInfoVo myFollowTraderInfoVo = new MyFollowTraderInfoVo(); @@ -339,50 +353,152 @@ FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectById(tradeId); String avatar = followTraderInfoEntity.getAvatar(); myFollowTraderInfoVo.setAvatar(avatar); - String nickname = followTraderInfoEntity.getNickname(); myFollowTraderInfoVo.setNickname(nickname); - BigDecimal totalPrincipal = FollowFollowerProfitEntity.getTotalPrincipal(); myFollowTraderInfoVo.setTotalPrincipal(totalPrincipal); - - BigDecimal totalProfit = BigDecimal.ZERO; - Map<String, Object> columnMap = new HashMap<>(); - columnMap.put("member_id", memberId); - contractHoldOrderDao.selectByMap(columnMap ); - List<ContractHoldOrderEntity> contractHoldOrderEntitys = contractHoldOrderDao.selectByMap(columnMap ); - if(CollUtil.isNotEmpty(contractHoldOrderEntitys)) { - for(ContractHoldOrderEntity contractHoldOrderEntity : contractHoldOrderEntitys) { - // 获取最新价 - BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(contractHoldOrderEntity.getSymbol()))); - BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(contractHoldOrderEntity.getSymbol()); - // 盈亏 - BigDecimal rewardRatio = BigDecimal.ZERO; - // 开多 - if (ContractHoldOrderEntity.OPENING_TYPE_MORE == contractHoldOrderEntity.getOpeningType()) { - // (最新价-开仓价)*规格*张数 - rewardRatio = newPrice.subtract(contractHoldOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt())); - // 开空 - } else { - // (开仓价-最新价)*规格*张数 - rewardRatio = contractHoldOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt())); - } - - if (member.getIsProfit() == MemberEntity.IS_PROFIT_Y) { - PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting(); - if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) { - rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(tradeSettingEntity.getProfitParam())); - } - } - totalProfit = totalProfit.add(rewardRatio); - } - myFollowTraderInfoVo.setTotalProfit(totalProfit.setScale(4, BigDecimal.ROUND_DOWN)); - } - myFollowOrderVos.add(myFollowTraderInfoVo); - } + BigDecimal totalProfit = FollowFollowerProfitEntity.getTotalProfit(); + myFollowTraderInfoVo.setTotalProfit(totalProfit.setScale(4, BigDecimal.ROUND_DOWN)); + myFollowOrderVos.add(myFollowTraderInfoVo); + } } + return Result.ok(result); + } + + @Override + public Result getDocumentaryOrderInfo() { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("member_id", memberId); + List<DocumentaryOrderInfoVo> list = new ArrayList<>(); + //获取对应的杠杆等信息和可用余额 + BigDecimal availableBalance = BigDecimal.ZERO; + List<MemberWalletContractEntity> selectByMap = memberWalletContractDao.selectByMap(columnMap); + if(CollUtil.isNotEmpty(selectByMap)) { + for(MemberWalletContractEntity MemberWalletContractEntity : selectByMap) { + availableBalance = MemberWalletContractEntity.getAvailableBalance(); + } + } + List<MemberLevelRateEntity> memberLevelRateEntitys = memberLevelRateDao.selectByMap(columnMap); + if(CollUtil.isNotEmpty(memberLevelRateEntitys)) { + for(MemberLevelRateEntity memberLevelRateEntity : memberLevelRateEntitys) { + DocumentaryOrderInfoVo documentaryOrderInfoVo = new DocumentaryOrderInfoVo(); + String symbol = memberLevelRateEntity.getSymbol(); + documentaryOrderInfoVo.setSymbol(symbol); + int levelRateDown = memberLevelRateEntity.getLevelRateDown(); + documentaryOrderInfoVo.setLevelRate(levelRateDown); + documentaryOrderInfoVo.setAvaliableCoin(availableBalance); + list.add(documentaryOrderInfoVo); + } + } + return Result.ok(list); + } + + @Override + @Transactional + public Result getDocumentaryOrderSet(@Valid DocumentaryOrderSetDto documentaryOrderSetDto) { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + //新增【跟随者设置】数据 + FollowFollowerSettingEntity followFollowerSettingEntity = new FollowFollowerSettingEntity(); + followFollowerSettingEntity.setMemberId(memberId); + Long traderId = documentaryOrderSetDto.getTraderId(); + followFollowerSettingEntity.setTradeId(traderId); + FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectById(traderId); + Long traderMemberId = followTraderInfoEntity.getMemberId(); + followFollowerSettingEntity.setTradeMemberId(traderMemberId); + followFollowerSettingEntity.setSymbols(documentaryOrderSetDto.getSymbols()); + followFollowerSettingEntity.setFollowType(documentaryOrderSetDto.getFollowType()); + followFollowerSettingEntity.setFollowCnt(documentaryOrderSetDto.getFollowCnt()); + followFollowerSettingEntity.setMaxFollowCnt(documentaryOrderSetDto.getMaxFollowCnt()); + followFollowerSettingDao.insert(followFollowerSettingEntity); + //更新【跟随者收益】数据 + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("member_id", memberId); + List<FollowFollowerProfitEntity> selectByMap = followFollowerProfitDao.selectByMap(columnMap); + if(CollUtil.isNotEmpty(selectByMap)) { + FollowFollowerProfitEntity followFollowerProfitEntity = selectByMap.get(0); + followFollowerProfitEntity.setIsFollow(FollowFollowerProfitEntity.IS_FOLLOW_Y); + followFollowerProfitDao.updateById(followFollowerProfitEntity); + }else { + FollowFollowerProfitEntity followFollowerProfitEntity = new FollowFollowerProfitEntity(); + followFollowerProfitEntity.setMemberId(memberId); + followFollowerProfitEntity.setTradeId(traderId); + followFollowerProfitEntity.setTradeMemberId(traderMemberId); + followFollowerProfitEntity.setTotalPrincipal(BigDecimal.ZERO); + followFollowerProfitEntity.setTotalProfit(BigDecimal.ZERO); + followFollowerProfitEntity.setIsFollow(FollowFollowerProfitEntity.IS_FOLLOW_Y); + followFollowerProfitDao.insert(followFollowerProfitEntity); + } + return Result.ok(MessageSourceUtils.getString("member_service_0024")); + } + + @Override + public Result getDocumentaryOrderSetInfo() { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + DocumentaryOrderSetInfoVo documentaryOrderSetInfoVo = new DocumentaryOrderSetInfoVo(); + //获取【跟随者设置】数据 + FollowFollowerSettingEntity followFollowerSettingEntity = followFollowerSettingDao.selectDocumentaryOrderSetInfoBymemberId(memberId); + Long tradeId = followFollowerSettingEntity.getTradeId(); + documentaryOrderSetInfoVo.setTraderId(tradeId); + + FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectById(tradeId); + String avatar = followTraderInfoEntity.getAvatar(); + documentaryOrderSetInfoVo.setAvatar(avatar); + + String nickname = followTraderInfoEntity.getNickname(); + documentaryOrderSetInfoVo.setNickname(nickname); + + String symbols = followFollowerSettingEntity.getSymbols(); + documentaryOrderSetInfoVo.setSymbols(symbols); + + Integer followType = followFollowerSettingEntity.getFollowType(); + documentaryOrderSetInfoVo.setFollowType(followType); + + Integer followCnt = followFollowerSettingEntity.getFollowCnt(); + documentaryOrderSetInfoVo.setFollowCnt(followCnt); + + Integer maxFollowCnt = followFollowerSettingEntity.getMaxFollowCnt(); + documentaryOrderSetInfoVo.setMaxFollowCnt(maxFollowCnt); + + + return Result.ok(documentaryOrderSetInfoVo); + } + + @Override + @Transactional + public Result cancelDocumentaryOrderSetInfo(@Valid CancelDocumentaryOrderSetDto cancelDocumentaryOrderSetDto) { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + Long traderId = cancelDocumentaryOrderSetDto.getTraderId(); + //删除【跟随者设置】数据 + FollowFollowerSettingEntity followFollowerSettingEntity = followFollowerSettingDao.selectOneBymemberIdAndTradeId(memberId,traderId); + followFollowerSettingDao.deleteById(followFollowerSettingEntity.getId()); + //更新【跟随者收益】数据 + FollowFollowerProfitEntity followFollowerProfitEntity = followFollowerProfitDao.selectDocumentaryOrderSetInfoBymemberIdAndTradeId(memberId,traderId); + followFollowerProfitEntity.setIsFollow(FollowFollowerProfitEntity.IS_FOLLOW_N); + followFollowerProfitDao.updateById(followFollowerProfitEntity); return null; } + + @Override + @Transactional + public Result updateDocumentaryOrderSetInfo(@Valid UpdateDocumentaryOrderSetDto updateDocumentaryOrderSetDto) { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + Long traderId = updateDocumentaryOrderSetDto.getTraderId(); + //更新【跟随者设置】数据 + FollowFollowerSettingEntity followFollowerSettingEntity = followFollowerSettingDao.selectOneBymemberIdAndTradeId(memberId, traderId); + followFollowerSettingEntity.setSymbols(updateDocumentaryOrderSetDto.getSymbols()); + followFollowerSettingEntity.setFollowType(updateDocumentaryOrderSetDto.getFollowType()); + followFollowerSettingEntity.setFollowCnt(updateDocumentaryOrderSetDto.getFollowCnt()); + followFollowerSettingEntity.setMaxFollowCnt(updateDocumentaryOrderSetDto.getMaxFollowCnt()); + followFollowerSettingDao.updateById(followFollowerSettingEntity); + + return Result.ok(MessageSourceUtils.getString("member_service_0024")); + } -- Gitblit v1.9.1