From cf200a1f92c01ba22c326c49391f748ffb006910 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 05 Jul 2021 17:28:35 +0800 Subject: [PATCH] 20210617 开售开关 --- src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 150 insertions(+), 6 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 e5f476a..5872b91 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,16 +1,20 @@ package com.xcong.excoin.modules.documentary.service.impl; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.validation.Valid; import javax.validation.constraints.NotNull; import com.alibaba.fastjson.JSONObject; import com.xcong.excoin.common.utils.RedisUtils; +import com.xcong.excoin.modules.documentary.vo.SeeFollowerInfoVo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -68,6 +72,11 @@ List<FollowTraderInfoEntity> records = followTraderInfoEntitys.getRecords(); if(CollUtil.isNotEmpty(records)) { for(FollowTraderInfoEntity followTraderInfo : records) { + //获取当前跟单人数 + Long traderId = followTraderInfo.getId(); + String followNowNumString = followTraderInfoMapper.selectFollowNowBytraderId(traderId); + followTraderInfo.setFollowNumNow(followNowNumString); + Long memberId = followTraderInfo.getMemberId(); Map<String, Object> columnMap = new HashMap<>(); columnMap.put("member_id", memberId); @@ -134,6 +143,9 @@ if(StrUtil.isNotEmpty(profitRatioStr)) { profitRatio = new BigDecimal(profitRatioStr); } + if(profitRatio.compareTo(BigDecimal.ZERO) < 0 || profitRatio.compareTo(BigDecimal.ONE) >= 0){ + return new FebsResponse().fail().message("利润率设置规则:只允许0到1之间的小数"); + } String isok = followTraderInfoDto.getIsok(); if("1".equals(isok)) { //更新【会员信息表】数据 @@ -146,6 +158,7 @@ memberMapper.updateById(memberEntity); //更新【交易员信息表】数据 selectById.setProfitRatio(profitRatio); + selectById.setEntryTime(new Date()); selectById.setVerifyStatus(FollowTraderInfoEntity.VERIFYSTATUS_Y); followTraderInfoMapper.updateById(selectById); //新增【交易员收益信息 】数据 @@ -168,6 +181,7 @@ redisUtils.set("app_" + token, JSONObject.toJSONString(memberEntity), 36000); }else { //更新【交易员信息表】数据 + selectById.setEntryTime(new Date()); selectById.setVerifyStatus(FollowTraderInfoEntity.VERIFYSTATUS_N); followTraderInfoMapper.updateById(selectById); } @@ -238,11 +252,6 @@ } @Override - public IPage<FollowTraderProfitInfoEntity> findTraderDataInfoInfoInPage(FollowTraderProfitInfoEntity followTraderProfitInfoEntity, QueryRequest request) { - return null; - } - - @Override @Transactional public FebsResponse modifyProfitRatio(@Valid ModifyProfitRatioDto modifyProfitRatioDto) { Long id = modifyProfitRatioDto.getId(); @@ -255,12 +264,49 @@ if(StrUtil.isNotEmpty(profitRatioStr)) { profitRatio = new BigDecimal(profitRatioStr); } + if(profitRatio.compareTo(BigDecimal.ZERO) < 0 || profitRatio.compareTo(BigDecimal.ONE) >= 0){ + return new FebsResponse().fail().message("利润率设置规则:只允许0到1之间的小数"); + } + //最大跟随人数 + boolean matches = isMatches(modifyProfitRatioDto.getFollowNum()); + if(!matches) { + return new FebsResponse().fail().message("最大跟随人数只能输入正整数"); + } + Integer followNum = Integer.parseInt(modifyProfitRatioDto.getFollowNum()); + if(ObjectUtil.isEmpty(followNum) || followNum == 0) { + return new FebsResponse().fail().message("最大跟随人数不能为0"); + } + + String followNumNow = followTraderInfoMapper.selectFollowNowBytraderId(id); + int parseInt = Integer.parseInt(followNumNow); + if(parseInt > followNum){ + return new FebsResponse().fail().message("请填写大于当前跟随人数"+parseInt+"的整数"); + } //更新【交易员信息表】数据 selectById.setProfitRatio(profitRatio); - selectById.setVerifyStatus(FollowTraderInfoEntity.VERIFYSTATUS_Y); + selectById.setFollowNum(followNum); followTraderInfoMapper.updateById(selectById); return new FebsResponse().success(); } + + public boolean isMatches(String bot){ + boolean flag=false; + try{ + String regex="^[1-9]+[0-9]*$"; + //^[1-9]+\\d*$ + Pattern p=Pattern.compile(regex); + Matcher m=p.matcher(bot); + if(m.find()){ + System.out.println("successss"); + return true; + }else{ + System.out.println("falsss"); + } + }catch(Exception e){ + e.printStackTrace(); + } + return flag; + } @Override public FebsResponse traderGetOn(@NotNull(message = "{required}") Long id) { @@ -284,4 +330,102 @@ return new FebsResponse().success(); } + @Override + public IPage<FollowTraderProfitInfoEntity> findTraderProfitInfoInfoInPage( + FollowTraderProfitInfoEntity followTraderProfitInfoEntity, QueryRequest request) { + + Page<FollowTraderProfitInfoEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<FollowTraderProfitInfoEntity> FollowTraderProfitInfoEntitys = followTraderProfitInfoMapper.findTraderProfitInfoInfoInPage(page, followTraderProfitInfoEntity); + List<FollowTraderProfitInfoEntity> records = FollowTraderProfitInfoEntitys.getRecords(); + + if(CollUtil.isNotEmpty(records)) { + for(FollowTraderProfitInfoEntity followTraderProfitInfo : records) { + Long traderId = followTraderProfitInfo.getTraderId(); + FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoMapper.selectById(traderId); + //利润率 + BigDecimal profitRatio = BigDecimal.ZERO; + //总返利 + BigDecimal profitRatioTotal = BigDecimal.ZERO; + if(ObjectUtil.isNotEmpty(followTraderInfoEntity)) { + profitRatio = followTraderInfoEntity.getProfitRatio(); + profitRatioTotal = new BigDecimal(followTraderInfoMapper.selectProfitRatioTotal(followTraderInfoEntity.getMemberId())).setScale(2, RoundingMode.HALF_UP); + } + followTraderProfitInfo.setProfitRatio(profitRatio); + followTraderProfitInfo.setProfitRatioTotal(profitRatioTotal); + + Long memberId = followTraderProfitInfo.getMemberId(); + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("member_id", memberId); + List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap ); + if(CollUtil.isNotEmpty(selectByMap)) { + MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0); + String firstName = memberAuthenticationEntity.getFirstName(); + String secondName = memberAuthenticationEntity.getSecondName(); + String realName = firstName + secondName; + followTraderProfitInfo.setRealName(realName); + } + } + } + return FollowTraderProfitInfoEntitys; + } + + @Override + public IPage<SeeFollowerInfoVo> findlistSeeFollowerInfo(QueryRequest request, FollowTraderProfitInfoEntity followTraderProfitInfoEntity) { + + Long id = followTraderProfitInfoEntity.getId(); + if(ObjectUtil.isEmpty(id)) { + return null; + } + //获取交易员信息 + FollowTraderProfitInfoEntity FollowTraderProfitInfo = followTraderProfitInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(FollowTraderProfitInfo)) { + return null; + } + Long traderId = FollowTraderProfitInfo.getTraderId(); + Long traderMemberId = FollowTraderProfitInfo.getMemberId(); + FollowTraderInfoEntity FollowTraderInfo = followTraderInfoMapper.selectById(traderId); + if(ObjectUtil.isEmpty(FollowTraderInfo)) { + return null; + } + //获取当前的跟随者 + Page<SeeFollowerInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<SeeFollowerInfoVo> seeFollowerInfoVos = followFollowerProfitMapper.findFollowFollowerProfitInfo(page, FollowTraderInfo); + List<SeeFollowerInfoVo> records = seeFollowerInfoVos.getRecords(); + if(CollUtil.isNotEmpty(records)) { + for(SeeFollowerInfoVo seeFollowerInfoVo : records) { + long memberId = seeFollowerInfoVo.getMemberId(); + MemberEntity memberEntity = memberMapper.selectById(memberId); + if(ObjectUtil.isNotEmpty(memberEntity)) { + String phone = memberEntity.getPhone(); + String email = memberEntity.getEmail(); + String inviteId = memberEntity.getInviteId(); + seeFollowerInfoVo.setPhone(phone); + seeFollowerInfoVo.setEmail(email); + seeFollowerInfoVo.setInviteId(inviteId); + //合约账户总资产 + String totalString = memberMapper.selectMemberWalletContractByMemberId(memberId); + BigDecimal contractTotal = new BigDecimal(totalString); + seeFollowerInfoVo.setContractTotal(contractTotal); + //总返利 + String totalProfitStr = followTraderInfoMapper.selectAllProfitByMemberIdAndTraderMemberId(memberId,traderMemberId); + BigDecimal totalProfit = new BigDecimal(totalProfitStr); + seeFollowerInfoVo.setProfitTotal(totalProfit); + + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("member_id", memberId); + List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap ); + if(CollUtil.isNotEmpty(selectByMap)) { + MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0); + String firstName = memberAuthenticationEntity.getFirstName(); + String secondName = memberAuthenticationEntity.getSecondName(); + String realName = firstName + secondName; + seeFollowerInfoVo.setRealName(realName); + } + } + } + } + + return seeFollowerInfoVos; + } + } -- Gitblit v1.9.1