From 3ea894165b42672d0a9d93341e84fbc9f24f5294 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Wed, 03 Mar 2021 11:39:36 +0800 Subject: [PATCH] 20210321 利润率后台修改,推荐上首页后台设置 --- src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java | 185 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 183 insertions(+), 2 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 7558ac8..e5f476a 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,20 +1,34 @@ package com.xcong.excoin.modules.documentary.service.impl; +import java.math.BigDecimal; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import com.alibaba.fastjson.JSONObject; +import com.xcong.excoin.common.utils.RedisUtils; 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; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.common.entity.FebsResponse; import com.xcong.excoin.common.entity.QueryRequest; +import com.xcong.excoin.modules.documentary.dto.FollowTraderInfoDto; +import com.xcong.excoin.modules.documentary.dto.ModifyProfitRatioDto; +import com.xcong.excoin.modules.documentary.entity.FollowFollowerProfitEntity; import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity; +import com.xcong.excoin.modules.documentary.entity.FollowTraderLabelEntity; +import com.xcong.excoin.modules.documentary.entity.FollowTraderProfitInfoEntity; +import com.xcong.excoin.modules.documentary.mapper.FollowFollowerProfitMapper; import com.xcong.excoin.modules.documentary.mapper.FollowTraderInfoMapper; +import com.xcong.excoin.modules.documentary.mapper.FollowTraderLabelMapper; +import com.xcong.excoin.modules.documentary.mapper.FollowTraderProfitInfoMapper; import com.xcong.excoin.modules.documentary.service.DocumentaryService; import com.xcong.excoin.modules.member.entity.MemberAuthenticationEntity; import com.xcong.excoin.modules.member.entity.MemberEntity; @@ -22,6 +36,8 @@ import com.xcong.excoin.modules.member.mapper.MemberMapper; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -32,9 +48,17 @@ private final FollowTraderInfoMapper followTraderInfoMapper; + private final FollowFollowerProfitMapper followFollowerProfitMapper; + + private final FollowTraderLabelMapper followTraderLabelMapper; + private final MemberAuthenticationMapper memberAuthenticationMapper; private final MemberMapper memberMapper; + + private final FollowTraderProfitInfoMapper followTraderProfitInfoMapper; + + private final RedisUtils redisUtils; @Override public IPage<FollowTraderInfoEntity> findTraderListInPage(FollowTraderInfoEntity followTraderInfoEntity, @@ -98,9 +122,166 @@ } @Override - public FebsResponse traderConfirm(@Valid FollowTraderInfoEntity followTraderInfoEntity) { - // TODO Auto-generated method stub + @Transactional + public FebsResponse traderConfirm(@Valid FollowTraderInfoDto followTraderInfoDto) { + Long id = followTraderInfoDto.getId(); + FollowTraderInfoEntity selectById = followTraderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(selectById)) { + return new FebsResponse().fail().message("交易员信息不存在"); + } + BigDecimal profitRatio = BigDecimal.ZERO; + String profitRatioStr = followTraderInfoDto.getProfitRatio(); + if(StrUtil.isNotEmpty(profitRatioStr)) { + profitRatio = new BigDecimal(profitRatioStr); + } + String isok = followTraderInfoDto.getIsok(); + if("1".equals(isok)) { + //更新【会员信息表】数据 + Long memberId = selectById.getMemberId(); + MemberEntity memberEntity = memberMapper.selectById(memberId); + if(ObjectUtil.isEmpty(memberEntity)) { + return new FebsResponse().fail().message("会员信息不存在"); + } + memberEntity.setIsTrader(1); + memberMapper.updateById(memberEntity); + //更新【交易员信息表】数据 + selectById.setProfitRatio(profitRatio); + selectById.setVerifyStatus(FollowTraderInfoEntity.VERIFYSTATUS_Y); + followTraderInfoMapper.updateById(selectById); + //新增【交易员收益信息 】数据 + FollowTraderProfitInfoEntity followTraderProfitInfoEntity = new FollowTraderProfitInfoEntity(); + followTraderProfitInfoEntity.setCreateBy("system"); + followTraderProfitInfoEntity.setCreateTime(new Date()); + followTraderProfitInfoEntity.setUpdateBy("system"); + followTraderProfitInfoEntity.setUpdateTime(new Date()); + followTraderProfitInfoEntity.setMemberId(memberId); + followTraderProfitInfoEntity.setTraderId(selectById.getId()); + followTraderProfitInfoEntity.setTotalProfitRatio(BigDecimal.ZERO); + followTraderProfitInfoEntity.setTotalProfit(BigDecimal.ZERO); + followTraderProfitInfoEntity.setFollowerTotalProfit(BigDecimal.ZERO); + followTraderProfitInfoEntity.setWinRate(BigDecimal.ZERO); + followTraderProfitInfoEntity.setTotalFollowerCnt(BigDecimal.ZERO); + followTraderProfitInfoEntity.setTotalOrderCnt(BigDecimal.ZERO); + followTraderProfitInfoMapper.insert(followTraderProfitInfoEntity); + + String token = redisUtils.getString("app_" + memberEntity.getId()); + redisUtils.set("app_" + token, JSONObject.toJSONString(memberEntity), 36000); + }else { + //更新【交易员信息表】数据 + selectById.setVerifyStatus(FollowTraderInfoEntity.VERIFYSTATUS_N); + followTraderInfoMapper.updateById(selectById); + } + return new FebsResponse().success(); + } + + @Override + @Transactional + public FebsResponse traderGetOut(@NotNull(message = "{required}") Long id) { + FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(followTraderInfoEntity)) { + return new FebsResponse().fail().message("交易员信息不存在"); + } + Long memberId = followTraderInfoEntity.getMemberId(); + + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("trade_member_id", memberId); + List<FollowFollowerProfitEntity> selectByMap = followFollowerProfitMapper.selectByMap(columnMap); + if(CollUtil.isNotEmpty(selectByMap)) { + for(FollowFollowerProfitEntity FollowFollowerProfitEntity : selectByMap ) { + FollowFollowerProfitEntity.setIsFollow(FollowFollowerProfitEntity.IS_FOLLOW_N); + followFollowerProfitMapper.updateById(FollowFollowerProfitEntity); + } + } + followTraderInfoEntity.setVerifyStatus(FollowTraderInfoEntity.VERIFYSTATUS_N); + followTraderInfoMapper.updateById(followTraderInfoEntity); + MemberEntity memberEntity = memberMapper.selectById(memberId); + memberEntity.setIsTrader(2); + memberMapper.updateById(memberEntity); + return new FebsResponse().success(); + } + + @Override + @Transactional + public FebsResponse traderGetFull(@NotNull(message = "{required}") Long id) { + FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(followTraderInfoEntity)) { + return new FebsResponse().fail().message("交易员信息不存在"); + } + followTraderInfoEntity.setIsAll(1); + followTraderInfoMapper.updateById(followTraderInfoEntity); + return new FebsResponse().success(); + } + + @Override + public IPage<FollowTraderLabelEntity> traderLabelList(FollowTraderLabelEntity followTraderLabelEntity, + QueryRequest request) { + Page<FollowTraderLabelEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<FollowTraderLabelEntity> followTraderLabelEntitys = followTraderLabelMapper.findFollowTraderLabelEntitysInPage(page, followTraderLabelEntity); + return followTraderLabelEntitys; + } + + @Override + public FebsResponse traderLabelDelete(@NotNull(message = "{required}") Long id) { + followTraderLabelMapper.deleteById(id); + return new FebsResponse().success(); + } + + @Override + public void followLabelSetAdd(@Valid FollowTraderLabelEntity followTraderLabelEntity) { + + followTraderLabelMapper.insert(followTraderLabelEntity); + } + + @Override + public void followLabelSetUpdate(@Valid FollowTraderLabelEntity followTraderLabelEntity) { + followTraderLabelMapper.updateById(followTraderLabelEntity); + } + + @Override + public IPage<FollowTraderProfitInfoEntity> findTraderDataInfoInfoInPage(FollowTraderProfitInfoEntity followTraderProfitInfoEntity, QueryRequest request) { return null; } + @Override + @Transactional + public FebsResponse modifyProfitRatio(@Valid ModifyProfitRatioDto modifyProfitRatioDto) { + Long id = modifyProfitRatioDto.getId(); + FollowTraderInfoEntity selectById = followTraderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(selectById)) { + return new FebsResponse().fail().message("交易员信息不存在"); + } + BigDecimal profitRatio = BigDecimal.ZERO; + String profitRatioStr = modifyProfitRatioDto.getProfitRatio(); + if(StrUtil.isNotEmpty(profitRatioStr)) { + profitRatio = new BigDecimal(profitRatioStr); + } + //更新【交易员信息表】数据 + selectById.setProfitRatio(profitRatio); + selectById.setVerifyStatus(FollowTraderInfoEntity.VERIFYSTATUS_Y); + followTraderInfoMapper.updateById(selectById); + return new FebsResponse().success(); + } + + @Override + public FebsResponse traderGetOn(@NotNull(message = "{required}") Long id) { + FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(followTraderInfoEntity)) { + return new FebsResponse().fail().message("交易员信息不存在"); + } + followTraderInfoEntity.setIsSetFrist(FollowTraderInfoEntity.IS_SETFRIST_Y); + followTraderInfoMapper.updateById(followTraderInfoEntity); + return new FebsResponse().success(); + } + + @Override + public FebsResponse traderGetOutFrist(@NotNull(message = "{required}") Long id) { + FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(followTraderInfoEntity)) { + return new FebsResponse().fail().message("交易员信息不存在"); + } + followTraderInfoEntity.setIsSetFrist(FollowTraderInfoEntity.IS_SETFRIST_N); + followTraderInfoMapper.updateById(followTraderInfoEntity); + return new FebsResponse().success(); + } + } -- Gitblit v1.9.1