Helius
2021-04-16 0cec061f29cfde646793054ca158b5664b54409f
modify
1 files added
134 ■■■■■ changed files
src/test/java/com/xcong/excoin/MemberTest.java 134 ●●●●● patch | view | raw | blame | history
src/test/java/com/xcong/excoin/MemberTest.java
New file
@@ -0,0 +1,134 @@
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 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
    public void baseInsert() {
        for(int i = 0; i < 100; 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");
            registerDto.setRefererId("49027637");
            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<String, Object> columnMap = new HashMap<>();
            columnMap.put("member_id", memberId);
            columnMap.put("trade_id", traderId);
            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 {
            //更新【跟随者收益】数据
            Map<String, Object> columnMap = new HashMap<>();
            columnMap.put("member_id", memberId);
            columnMap.put("trade_id", traderId);
            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);
                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);
        }
    }
}