xiaoyong931011
2020-08-12 420b90cd27ea932f64b25f3394967fd532cca186
src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java
@@ -1,20 +1,29 @@
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.entity.FollowTraderInfoEntity;
import com.xcong.excoin.modules.documentary.entity.FollowTraderProfitInfoEntity;
import com.xcong.excoin.modules.documentary.mapper.FollowTraderInfoMapper;
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 +31,7 @@
import com.xcong.excoin.modules.member.mapper.MemberMapper;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -35,6 +45,10 @@
   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 +112,75 @@
   }
   @Override
   public FebsResponse traderConfirm(@Valid FollowTraderInfoEntity followTraderInfoEntity) {
      // TODO Auto-generated method stub
      return null;
   @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("交易员信息不存在");
      }
      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.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
   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();
      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();
   }
}