From ea8eb9c441bb4452d153579b456467b2f5e958e4 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Tue, 04 Aug 2020 16:15:54 +0800 Subject: [PATCH] add trader closing order --- src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java | 280 ++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 212 insertions(+), 68 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 c36640a..5e5781b 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 @@ -10,6 +10,7 @@ import javax.annotation.Resource; import javax.validation.Valid; +import org.apache.http.impl.NoConnectionReuseStrategy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,6 +24,7 @@ import com.xcong.excoin.modules.contract.dao.ContractHoldOrderDao; import com.xcong.excoin.modules.contract.entity.ContractHoldOrderEntity; import com.xcong.excoin.modules.contract.entity.ContractOrderEntity; +import com.xcong.excoin.modules.documentary.dao.FollowFollowerOrderRelationDao; import com.xcong.excoin.modules.documentary.dao.FollowFollowerProfitDao; import com.xcong.excoin.modules.documentary.dao.FollowFollowerSettingDao; import com.xcong.excoin.modules.documentary.dao.FollowTraderInfoDao; @@ -35,6 +37,7 @@ 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.FollowFollowerOrderRelationEntity; import com.xcong.excoin.modules.documentary.entity.FollowFollowerProfitEntity; import com.xcong.excoin.modules.documentary.entity.FollowFollowerSettingEntity; import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity; @@ -49,6 +52,7 @@ import com.xcong.excoin.modules.documentary.vo.MemberIsTradeVo; import com.xcong.excoin.modules.documentary.vo.MyFollowOrderVo; import com.xcong.excoin.modules.documentary.vo.MyFollowTraderInfoVo; +import com.xcong.excoin.modules.documentary.vo.TraderStatusVo; import com.xcong.excoin.modules.member.dao.MemberDao; import com.xcong.excoin.modules.member.dao.MemberLevelRateDao; import com.xcong.excoin.modules.member.dao.MemberWalletContractDao; @@ -94,6 +98,8 @@ private MemberWalletContractDao memberWalletContractDao; @Resource private FollowFollowerSettingDao followFollowerSettingDao; + @Resource + private FollowFollowerOrderRelationDao followFollowerOrderRelationDao; @Override @@ -128,12 +134,10 @@ Long memberId = user.getId(); FollowFollowerProfitEntity followFollowerProfitEntity = followFollowerProfitDao.selectDocumentaryOrderSetInfoBymemberIdAndTradeId(memberId, traderId); if(ObjectUtil.isNotEmpty(followFollowerProfitEntity)) { - FollowTraderProfitInfoVo.setDocumentaaryType(1); + FollowTraderProfitInfoVo.setDocumentaaryType(followFollowerProfitEntity.getIsFollow()); }else { - FollowTraderProfitInfoVo.setDocumentaaryType(2); - } - }else { - FollowTraderProfitInfoVo.setDocumentaaryType(2); + FollowTraderProfitInfoVo.setDocumentaaryType(2); + } } Long traderId = FollowTraderProfitInfoVo.getTraderId(); FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectFollowTraderInfoEntityBytreaderId(traderId); @@ -158,6 +162,15 @@ Page<HistoryOrderRecordsVo> page = new Page<>(historyOrderRecordsDto.getPageNum(), historyOrderRecordsDto.getPageSize()); IPage<HistoryOrderRecordsVo> historyOrderRecordsVoList = followTraderProfitInfoDao.selectHistoryOrderRecords(page, memberId); + List<HistoryOrderRecordsVo> records = historyOrderRecordsVoList.getRecords(); + if(CollUtil.isNotEmpty(records)) { + for(HistoryOrderRecordsVo historyOrderRecordsVo : records) { + BigDecimal closingPrice = historyOrderRecordsVo.getClosingPrice().setScale(2, BigDecimal.ROUND_DOWN); + historyOrderRecordsVo.setClosingPrice(closingPrice); + BigDecimal openingPrice = historyOrderRecordsVo.getOpeningPrice().setScale(2, BigDecimal.ROUND_DOWN); + historyOrderRecordsVo.setOpeningPrice(openingPrice); + } + } return Result.ok(historyOrderRecordsVoList); } @@ -173,6 +186,12 @@ List<FollowRecordsVo> records = historyOrderRecordsVoList.getRecords(); if(CollUtil.isNotEmpty(records)) { for(FollowRecordsVo followRecordsVo : records) { + + BigDecimal totalPrincipal = followRecordsVo.getTotalPrincipal().setScale(2, BigDecimal.ROUND_DOWN); + followRecordsVo.setTotalPrincipal(totalPrincipal); + BigDecimal totalProfit = followRecordsVo.getTotalProfit().setScale(2, BigDecimal.ROUND_DOWN); + followRecordsVo.setTotalProfit(totalProfit); + Long memberIds = followRecordsVo.getMemberId(); MemberEntity MemberEntity = memberDao.selectById(memberIds); String phone = MemberEntity.getPhone(); @@ -216,8 +235,8 @@ totalProfits = totalProfits.add(totalProfit); } } - followInfoVo.setTotalPrincipal(totalPrincipals.setScale(4, BigDecimal.ROUND_DOWN)); - followInfoVo.setTotalProfit(totalProfits.setScale(4, BigDecimal.ROUND_DOWN)); + followInfoVo.setTotalPrincipal(totalPrincipals.setScale(2, BigDecimal.ROUND_DOWN)); + followInfoVo.setTotalProfit(totalProfits.setScale(2, BigDecimal.ROUND_DOWN)); return Result.ok(followInfoVo); } @@ -226,8 +245,7 @@ public Result getHistoryMyFollowOrderRecords(@Valid MyFollowOrderDto myFollowOrderDto) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); - Page<MyFollowOrderVo> result = new Page<>(); - List<MyFollowOrderVo> myFollowOrderVos = result.getRecords(); + List<MyFollowOrderVo> myFollowOrderVos = new ArrayList<>(); //历史跟单 Page<ContractOrderEntity> page = new Page<>(myFollowOrderDto.getPageNum(), myFollowOrderDto.getPageSize()); IPage<ContractOrderEntity> contractOrderEntitys = followFollowerProfitDao.getMyFollowOrderHistoryRecords(page, memberId); @@ -236,23 +254,31 @@ if(CollUtil.isNotEmpty(records)) { for(ContractOrderEntity contractOrderEntity : records) { MyFollowOrderVo myFollowOrderVo = new MyFollowOrderVo(); + //获取交易员信息 + Long orderId = contractOrderEntity.getId(); + FollowFollowerOrderRelationEntity FollowFollowerOrderRelation = followFollowerOrderRelationDao.selectHistoryOneByorderId(orderId); + Long tradeId = FollowFollowerOrderRelation.getTradeId(); + FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectById(tradeId); + String nickname = followTraderInfoEntity.getNickname(); + myFollowOrderVo.setNickname(nickname); + String symbol = contractOrderEntity.getSymbol(); myFollowOrderVo.setSymbol(symbol); int orderType = contractOrderEntity.getOrderType(); myFollowOrderVo.setOrderType(orderType); int leverRatio = contractOrderEntity.getLeverRatio(); myFollowOrderVo.setLeverRatio(leverRatio); - BigDecimal rewardAmount = contractOrderEntity.getRewardAmount().setScale(4, BigDecimal.ROUND_DOWN); + BigDecimal rewardAmount = contractOrderEntity.getRewardAmount().setScale(2, BigDecimal.ROUND_DOWN); myFollowOrderVo.setRewardAmount(rewardAmount); - BigDecimal rewardRatio = contractOrderEntity.getRewardRatio().setScale(4, BigDecimal.ROUND_DOWN); + BigDecimal rewardRatio = contractOrderEntity.getRewardRatio().setScale(2, BigDecimal.ROUND_DOWN); myFollowOrderVo.setRewardRatio(rewardRatio); int symbolCnt = contractOrderEntity.getSymbolCnt(); myFollowOrderVo.setSymbolCnt(symbolCnt); - BigDecimal bondAmount = contractOrderEntity.getBondAmount().setScale(4, BigDecimal.ROUND_DOWN); + BigDecimal bondAmount = contractOrderEntity.getBondAmount().setScale(2, BigDecimal.ROUND_DOWN); myFollowOrderVo.setBondAmount(bondAmount); - BigDecimal openingPrice = contractOrderEntity.getOpeningPrice().setScale(4, BigDecimal.ROUND_DOWN); + BigDecimal openingPrice = contractOrderEntity.getOpeningPrice().setScale(2, BigDecimal.ROUND_DOWN); myFollowOrderVo.setOpeningPrice(openingPrice); - BigDecimal closingPrice = contractOrderEntity.getClosingPrice().setScale(4, BigDecimal.ROUND_DOWN); + BigDecimal closingPrice = contractOrderEntity.getClosingPrice().setScale(2, BigDecimal.ROUND_DOWN); myFollowOrderVo.setClosingPrice(closingPrice); Date openingTime = contractOrderEntity.getOpeningTime(); myFollowOrderVo.setOpeningTime(openingTime); @@ -272,8 +298,7 @@ Long memberId = LoginUserUtils.getAppLoginUser().getId(); MemberEntity member = memberDao.selectById(memberId); - Page<MyFollowOrderVo> result = new Page<>(); - List<MyFollowOrderVo> myFollowOrderVos = result.getRecords(); + List<MyFollowOrderVo> myFollowOrderVos = new ArrayList<>(); //当前跟单 Page<ContractHoldOrderEntity> page = new Page<>(myFollowOrderDto.getPageNum(), myFollowOrderDto.getPageSize()); IPage<ContractHoldOrderEntity> contractHoldOrderEntitys = followFollowerProfitDao.getMyFollowOrderNowRecords(page, memberId); @@ -282,6 +307,14 @@ if(CollUtil.isNotEmpty(records)) { for(ContractHoldOrderEntity contractHoldOrderEntity : records) { MyFollowOrderVo myFollowOrderVo = new MyFollowOrderVo(); + //获取交易员信息 + Long orderId = contractHoldOrderEntity.getId(); + FollowFollowerOrderRelationEntity FollowFollowerOrderRelation = followFollowerOrderRelationDao.selectNowOneByorderId(orderId); + Long tradeId = FollowFollowerOrderRelation.getTradeId(); + FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectById(tradeId); + String nickname = followTraderInfoEntity.getNickname(); + myFollowOrderVo.setNickname(nickname); + String symbol = contractHoldOrderEntity.getSymbol(); myFollowOrderVo.setSymbol(symbol); int orderType = contractHoldOrderEntity.getOpeningType(); @@ -290,9 +323,9 @@ myFollowOrderVo.setLeverRatio(leverRatio); int symbolCnt = contractHoldOrderEntity.getSymbolCnt(); myFollowOrderVo.setSymbolCnt(symbolCnt); - BigDecimal bondAmount = contractHoldOrderEntity.getBondAmount().setScale(4, BigDecimal.ROUND_DOWN); + BigDecimal bondAmount = contractHoldOrderEntity.getBondAmount().setScale(2, BigDecimal.ROUND_DOWN); myFollowOrderVo.setBondAmount(bondAmount); - BigDecimal openingPrice = contractHoldOrderEntity.getOpeningPrice().setScale(4, BigDecimal.ROUND_DOWN); + BigDecimal openingPrice = contractHoldOrderEntity.getOpeningPrice().setScale(2, BigDecimal.ROUND_DOWN); myFollowOrderVo.setOpeningPrice(openingPrice); String orderNo = contractHoldOrderEntity.getOrderNo(); myFollowOrderVo.setOrderNo(orderNo); @@ -301,6 +334,8 @@ // 获取最新价 BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(contractHoldOrderEntity.getSymbol()))); + myFollowOrderVo.setNewPrice(newPrice); + BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(contractHoldOrderEntity.getSymbol()); // 盈亏 BigDecimal rewardRatio = BigDecimal.ZERO; @@ -320,11 +355,11 @@ rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(tradeSettingEntity.getProfitParam())); } } - myFollowOrderVo.setRewardAmount(rewardRatio.setScale(4, BigDecimal.ROUND_DOWN)); + myFollowOrderVo.setRewardAmount(rewardRatio.setScale(2, BigDecimal.ROUND_DOWN)); // 回报率 BigDecimal returnRate = rewardRatio.divide(contractHoldOrderEntity.getBondAmount().subtract(contractHoldOrderEntity.getOpeningFeeAmount()), 8, BigDecimal.ROUND_DOWN); - myFollowOrderVo.setRewardRatio(returnRate.setScale(4, BigDecimal.ROUND_DOWN)); + myFollowOrderVo.setRewardRatio(returnRate.setScale(2, BigDecimal.ROUND_DOWN)); myFollowOrderVos.add(myFollowOrderVo); } @@ -338,9 +373,7 @@ public Result getMyFollowTraderInfo(@Valid MyFollowTraderInfoDto myFollowTraderInfoDto) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); - - Page<MyFollowTraderInfoVo> result = new Page<>(); - List<MyFollowTraderInfoVo> myFollowOrderVos = result.getRecords(); + List<MyFollowTraderInfoVo> myFollowOrderVos = new ArrayList<>(); Page<FollowFollowerProfitEntity> page = new Page<>(myFollowTraderInfoDto.getPageNum(), myFollowTraderInfoDto.getPageSize()); IPage<FollowFollowerProfitEntity> followFollowerProfitEntitys = followFollowerProfitDao.selectFollowFollowerProfitEntitys(page, memberId); @@ -358,11 +391,13 @@ BigDecimal totalPrincipal = FollowFollowerProfitEntity.getTotalPrincipal(); myFollowTraderInfoVo.setTotalPrincipal(totalPrincipal); BigDecimal totalProfit = FollowFollowerProfitEntity.getTotalProfit(); - myFollowTraderInfoVo.setTotalProfit(totalProfit.setScale(4, BigDecimal.ROUND_DOWN)); + myFollowTraderInfoVo.setTotalProfit(totalProfit.setScale(2, BigDecimal.ROUND_DOWN)); + + myFollowTraderInfoVo.setTradeId(tradeId); myFollowOrderVos.add(myFollowTraderInfoVo); } } - return Result.ok(result); + return Result.ok(myFollowOrderVos); } @Override @@ -400,49 +435,65 @@ 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); - } + Long traderId = documentaryOrderSetDto.getTraderId(); + + FollowTraderInfoEntity traderInfoEntity = followTraderInfoDao.selectTraderInfoByMemberId(memberId); + if (traderInfoEntity != null) { + return Result.fail("交易员不能进行跟单"); + } + + FollowFollowerSettingEntity isExistSetting = followFollowerSettingDao.selectOneBymemberIdAndTradeId(memberId, traderId); + if (isExistSetting == null) { + //新增【跟随者设置】数据 + FollowFollowerSettingEntity followFollowerSettingEntity = new FollowFollowerSettingEntity(); + followFollowerSettingEntity.setMemberId(memberId); + followFollowerSettingEntity.setTraderId(traderId); + FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectById(traderId); + Long traderMemberId = followTraderInfoEntity.getMemberId(); + followFollowerSettingEntity.setTraderMemberId(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); + } + } else { + isExistSetting.setSymbols(documentaryOrderSetDto.getSymbols()); + isExistSetting.setFollowType(documentaryOrderSetDto.getFollowType()); + isExistSetting.setFollowCnt(documentaryOrderSetDto.getFollowCnt()); + isExistSetting.setMaxFollowCnt(documentaryOrderSetDto.getMaxFollowCnt()); + followFollowerSettingDao.updateById(isExistSetting); + } return Result.ok(MessageSourceUtils.getString("member_service_0024")); } @Override - public Result getDocumentaryOrderSetInfo() { + public Result getDocumentaryOrderSetInfo(String tradeId) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); DocumentaryOrderSetInfoVo documentaryOrderSetInfoVo = new DocumentaryOrderSetInfoVo(); + long parseLong = Long.parseLong(tradeId); //获取【跟随者设置】数据 - FollowFollowerSettingEntity followFollowerSettingEntity = followFollowerSettingDao.selectDocumentaryOrderSetInfoBymemberId(memberId); - Long tradeId = followFollowerSettingEntity.getTradeId(); - documentaryOrderSetInfoVo.setTraderId(tradeId); + FollowFollowerSettingEntity followFollowerSettingEntity = followFollowerSettingDao.selectOneBymemberIdAndTradeId(memberId,parseLong); + + documentaryOrderSetInfoVo.setTraderId(parseLong); FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectById(tradeId); String avatar = followTraderInfoEntity.getAvatar(); @@ -450,7 +501,11 @@ String nickname = followTraderInfoEntity.getNickname(); documentaryOrderSetInfoVo.setNickname(nickname); - + + documentaryOrderSetInfoVo.setProfit(followTraderInfoEntity.getProfitRatio()); + if (followFollowerSettingEntity == null) { + return Result.ok(documentaryOrderSetInfoVo); + } String symbols = followFollowerSettingEntity.getSymbols(); documentaryOrderSetInfoVo.setSymbols(symbols); @@ -462,7 +517,6 @@ Integer maxFollowCnt = followFollowerSettingEntity.getMaxFollowCnt(); documentaryOrderSetInfoVo.setMaxFollowCnt(maxFollowCnt); - return Result.ok(documentaryOrderSetInfoVo); } @@ -480,7 +534,7 @@ FollowFollowerProfitEntity followFollowerProfitEntity = followFollowerProfitDao.selectDocumentaryOrderSetInfoBymemberIdAndTradeId(memberId,traderId); followFollowerProfitEntity.setIsFollow(FollowFollowerProfitEntity.IS_FOLLOW_N); followFollowerProfitDao.updateById(followFollowerProfitEntity); - return null; + return Result.ok(MessageSourceUtils.getString("documentary_service_0011")); } @Override @@ -491,14 +545,104 @@ 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); + if (followFollowerSettingEntity == null) { + FollowTraderInfoEntity traderInfoEntity = followTraderInfoDao.selectById(traderId); + followFollowerSettingEntity = new FollowFollowerSettingEntity(); + followFollowerSettingEntity.setSymbols(updateDocumentaryOrderSetDto.getSymbols()); + followFollowerSettingEntity.setFollowType(updateDocumentaryOrderSetDto.getFollowType()); + followFollowerSettingEntity.setFollowCnt(updateDocumentaryOrderSetDto.getFollowCnt()); + followFollowerSettingEntity.setMaxFollowCnt(updateDocumentaryOrderSetDto.getMaxFollowCnt()); + followFollowerSettingEntity.setTraderId(traderId); + followFollowerSettingEntity.setMemberId(memberId); + followFollowerSettingEntity.setTraderMemberId(traderInfoEntity.getMemberId()); + followFollowerSettingDao.insert(followFollowerSettingEntity); + } else { + 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")); } + + @Override + public Result getFollowTraderProfit(long traderId) { + FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectById(traderId); + Long memberId = followTraderInfoEntity.getMemberId(); + FollowTraderProfitInfoVo followTraderProfitInfoVo = followTraderProfitInfoDao.selectOneByMemberId(memberId); + String avatar = followTraderInfoEntity.getAvatar(); + String nickname = followTraderInfoEntity.getNickname(); + String declaration = followTraderInfoEntity.getDeclaration(); + Integer isAll = followTraderInfoEntity.getIsAll(); + followTraderProfitInfoVo.setAvatar(avatar); + followTraderProfitInfoVo.setNickname(nickname); + followTraderProfitInfoVo.setDeclaration(declaration); + followTraderProfitInfoVo.setIsAll(isAll); + return Result.ok(followTraderProfitInfoVo); + } + + @Override + @Transactional + public Result beTrader() { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + MemberEntity memberEntity = memberDao.selectById(memberId); + Integer certifyStatus = memberEntity.getCertifyStatus(); + if(MemberEntity.CERTIFY_STATUS_Y != certifyStatus) { + return Result.fail(MessageSourceUtils.getString("member_controller_0009")); + } + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("member_id", memberId); + List<FollowTraderInfoEntity> selectByMap = followTraderInfoDao.selectByMap(columnMap); + if(CollUtil.isNotEmpty(selectByMap)) { + return Result.fail(MessageSourceUtils.getString("submit_repeat")); + } + + //新增【交易员信息表】数据 + FollowTraderInfoEntity followTraderInfoEntity = new FollowTraderInfoEntity(); + followTraderInfoEntity.setMemberId(memberId); + followTraderInfoEntity.setAvatar(FollowTraderInfoEntity.AVATAR_DEFAULT); + String phone = memberEntity.getPhone(); + String email = memberEntity.getEmail(); + if(StrUtil.isNotEmpty(phone)) { + followTraderInfoEntity.setNickname(phone); + }else { + followTraderInfoEntity.setNickname(email); + } + followTraderInfoEntity.setDeclaration(FollowTraderInfoEntity.DECLARATION_DEFAULT); + followTraderInfoEntity.setIsAll(FollowTraderInfoEntity.IS_ALL_N); + followTraderInfoEntity.setProfitRatio(BigDecimal.ZERO); + followTraderInfoEntity.setVerifyStatus(FollowTraderInfoEntity.VERIFYSTATUS_ING); + followTraderInfoEntity.setIsOpen(FollowTraderInfoEntity.ISOPEN_Y); + followTraderInfoDao.insert(followTraderInfoEntity); + return Result.ok(MessageSourceUtils.getString("member_service_0024")); + } + + @Override + public Result beTraderStatus() { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + MemberEntity memberEntity = memberDao.selectById(memberId); + + TraderStatusVo traderStatusVo = new TraderStatusVo(); + Integer isTraer = memberEntity.getIsTrader(); + traderStatusVo.setIsTrader(isTraer); + + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("member_id", memberId); + List<FollowTraderInfoEntity> selectByMap = followTraderInfoDao.selectByMap(columnMap); + if(CollUtil.isNotEmpty(selectByMap)) { + for(FollowTraderInfoEntity followTraderInfoEntity : selectByMap) { + Integer verifyStatus = followTraderInfoEntity.getVerifyStatus(); + traderStatusVo.setVerifyStatus(verifyStatus); + } + }else{ + traderStatusVo.setVerifyStatus(4); + } + return Result.ok(traderStatusVo); + } -- Gitblit v1.9.1