package com.xcong.excoin; import cn.hutool.core.collection.CollUtil; import com.xcong.excoin.common.system.dto.RegisterDto; 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.dto.DocumentaryOrderSetDto; 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.member.service.MemberService; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author wzy * @date 2021-04-16 **/ @Slf4j @SpringBootTest public class MemberTest { @Autowired private MemberService memberService; @Test @Transactional(rollbackFor = Exception.class) public void baseInsert() { for(int i = 0; i < 50; i++) { String phonePrefix = "199999999"; if (i < 10) { phonePrefix = phonePrefix + "0" + i; } else { phonePrefix = phonePrefix + i; } RegisterDto registerDto = new RegisterDto(); registerDto.setAccount(phonePrefix); registerDto.setType(1); registerDto.setCode("a123456"); memberService.register(registerDto); } } @Autowired private FollowFollowerSettingDao followFollowerSettingDao; @Autowired private FollowTraderInfoDao followTraderInfoDao; @Autowired private FollowFollowerProfitDao followFollowerProfitDao; @Test public void followTrader() { DocumentaryOrderSetDto documentaryOrderSetDto = new DocumentaryOrderSetDto(); documentaryOrderSetDto.setTraderId(1L); documentaryOrderSetDto.setFollowCnt(1); documentaryOrderSetDto.setFollowType(1); documentaryOrderSetDto.setSymbols("BTC,ETH,LTC,BCH,EOS,XRP,ETC"); Long traderId = documentaryOrderSetDto.getTraderId(); Long memberId = 1L; 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 columnMap = new HashMap<>(); columnMap.put("member_id", memberId); columnMap.put("trade_id", traderId); List 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 { //更新【跟随者收益】数据 Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); columnMap.put("trade_id", traderId); List 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); FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoDao.selectById(traderId); Long traderMemberId = followTraderInfoEntity.getMemberId(); followFollowerProfitEntity.setTradeMemberId(traderMemberId); followFollowerProfitEntity.setTotalPrincipal(BigDecimal.ZERO); followFollowerProfitEntity.setTotalProfit(BigDecimal.ZERO); followFollowerProfitEntity.setIsFollow(FollowFollowerProfitEntity.IS_FOLLOW_Y); followFollowerProfitDao.insert(followFollowerProfitEntity); } isExistSetting.setSymbols(documentaryOrderSetDto.getSymbols()); isExistSetting.setFollowType(documentaryOrderSetDto.getFollowType()); isExistSetting.setFollowCnt(documentaryOrderSetDto.getFollowCnt()); isExistSetting.setMaxFollowCnt(documentaryOrderSetDto.getMaxFollowCnt()); followFollowerSettingDao.updateById(isExistSetting); } } }