| | |
| | | package cc.mrbird.febs; |
| | | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.enumerates.MemberLevelNewEnum; |
| | | import cc.mrbird.febs.common.enumerates.ProductEnum; |
| | | import cc.mrbird.febs.common.utils.MallUtils; |
| | | import cc.mrbird.febs.mall.entity.MallMember; |
| | | import cc.mrbird.febs.mall.entity.MallOrderItem; |
| | | import cc.mrbird.febs.mall.mapper.MallMemberMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallOrderItemMapper; |
| | | import cc.mrbird.febs.mall.dto.TeamPerkDto; |
| | | import cc.mrbird.febs.mall.entity.*; |
| | | import cc.mrbird.febs.mall.mapper.*; |
| | | import cc.mrbird.febs.mall.quartz.OrderSettlementJob; |
| | | import cc.mrbird.febs.mall.service.*; |
| | | import cc.mrbird.febs.pay.model.*; |
| | |
| | | import cc.mrbird.febs.rabbit.producter.AgentProducer; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import org.junit.jupiter.api.Test; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.test.context.SpringBootTest; |
| | |
| | | @SpringBootTest |
| | | public class ProfitTest { |
| | | |
| | | @Autowired |
| | | private IAgentService agentService; |
| | | @Autowired |
| | | private MallMemberMapper memberMapper; |
| | | @Autowired |
| | | private DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | @Autowired |
| | | private MallProductBuyMapper mallProductBuyMapper; |
| | | // @Test |
| | | // public void dynamicProfit(){ |
| | | // |
| | | // QueryWrapper<MallProductBuy> query = new QueryWrapper<>(); |
| | | // query.eq("state", ProductEnum.PRODUCT_BUY_SUCCESS.getValue()); |
| | | // query.eq("mate_state",ProductEnum.PRODUCT_BUY_MATE_STATE_FAIL.getValue()); |
| | | // List<MallProductBuy> mallProductBuys = mallProductBuyMapper.selectList(query); |
| | | // if(CollUtil.isEmpty(mallProductBuys)){ |
| | | // return; |
| | | // } |
| | | // |
| | | // Set<Long> collect = mallProductBuys.stream().map(MallProductBuy::getMemberId).collect(Collectors.toSet()); |
| | | // if(CollUtil.isEmpty(collect)){ |
| | | // return; |
| | | // } |
| | | // for(Long memberId : collect){ |
| | | // MallMember mallMember = memberMapper.selectById(memberId); |
| | | // if(ObjectUtil.isEmpty(mallMember)){ |
| | | // continue; |
| | | // } |
| | | // //上级 |
| | | // String referrerId = mallMember.getReferrerId(); |
| | | // MallMember mallMemberRef = memberMapper.selectInfoByInviteId(referrerId); |
| | | // if(ObjectUtil.isEmpty(mallMemberRef)){ |
| | | // continue; |
| | | // } |
| | | // List<MallMember> mallMembersAll = memberMapper.selectAllChildAgentListByInviteId(referrerId); |
| | | // |
| | | // List<MallMember> mallMembers = memberMapper.selectByRefererId(referrerId); |
| | | // Set<Long> mallMembersSet = mallMembers.stream().map(MallMember::getId).collect(Collectors.toSet()); |
| | | // mallMembersSet.retainAll(collect); |
| | | // List<Long> intersection = new ArrayList<>(mallMembersSet);//上级直推有效人数 |
| | | // if(CollUtil.isEmpty(intersection)){ |
| | | // mallMemberRef.setLevel(MemberLevelNewEnum.ZERO_LEVEL.getType()); |
| | | // memberMapper.updateById(mallMemberRef); |
| | | // continue; |
| | | // } |
| | | // /** |
| | | // * 从会员等级最低到最高,比较intersection与会员设置的直推人数directCntLevel比较 |
| | | // * directCntLevel >= intersection.size(),则满足升级会员等级条件,跳出循环 |
| | | // * teamCnt >= mallMembersAll.size(),则满足升级会员等级条件,跳出循环 |
| | | // * 达到最高级别后,升级会员等级,跳出循环 |
| | | // */ |
| | | // String level = MemberLevelNewEnum.ZERO_LEVEL.getType(); |
| | | // boolean flag = false; |
| | | // while (!flag){ |
| | | // DataDictionaryCustom levelDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | // level, level |
| | | // ); |
| | | // TeamPerkDto teamPerkDto = JSONObject.parseObject(levelDic.getValue(), TeamPerkDto.class); |
| | | // Integer directCntLevel = teamPerkDto.getDirectCnt(); |
| | | // Integer teamCnt = teamPerkDto.getTeamCnt(); |
| | | // if(directCntLevel <= intersection.size()){ |
| | | // if(teamCnt <= mallMembersAll.size()){ |
| | | // mallMemberRef.setLevel(level); |
| | | // memberMapper.updateById(mallMemberRef); |
| | | // |
| | | // String nextLevel = MemberLevelNewEnum.ZERO_LEVEL.getNextLevel(level); |
| | | // level = nextLevel; |
| | | // if(level.equals(MemberLevelNewEnum.WU_LEVEL.getType()) && |
| | | // nextLevel.equals(MemberLevelNewEnum.WU_LEVEL.getType()) ){ |
| | | // mallMemberRef.setLevel(level); |
| | | // memberMapper.updateById(mallMemberRef); |
| | | // flag = true; |
| | | // } |
| | | // }else{ |
| | | // flag = true; |
| | | // } |
| | | // }else{ |
| | | // flag = true; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // @Autowired |
| | | // private AgentConsumer agentConsumer; |
| | | // |
| | |
| | | private NBYHService nbyhService; |
| | | @Autowired |
| | | private IAdminMallMemberService mallMemberService; |
| | | @Autowired |
| | | private MallProductNftMapper mallProductNftMapper; |
| | | |
| | | @Test |
| | | public void agentProfitTrade() { |
| | | // try { |
| | | // System.out.println(resourceLoader.getResource("classpath:lkl/api_private_key.pem").getInputStream()); |
| | | // } catch (IOException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // nbyhService.tradeSinge(306L); |
| | | // nbyhService.tradeSingeOuterTransfer(306L); |
| | | // nbyhService.accountInfoQuery(306L); |
| | | // nbyhService.transferResultInfoQuery(306L); |
| | | |
| | | // mallMemberService.chargeAgree(307L); |
| | | // mallMemberService.searchInfo(307L); |
| | | MallProductNft mallProductNft = mallProductNftMapper.selectById(4L); |
| | | BigDecimal profitPercent = mallProductNft.getProfit(); |
| | | System.out.println(profitPercent); |
| | | MallProductBuy mallProductBuy = mallProductBuyMapper.selectById(184L); |
| | | BigDecimal nftTotal = mallProductBuy.getNftTotal(); |
| | | System.out.println(nftTotal); |
| | | BigDecimal totalPerk = mallProductBuy.getTotalPerk(); |
| | | System.out.println(totalPerk); |
| | | BigDecimal profit = nftTotal.multiply(profitPercent.multiply(new BigDecimal(0.01))).setScale(2,BigDecimal.ROUND_DOWN); |
| | | System.out.println(profit); |
| | | BigDecimal bigDecimal = totalPerk.subtract(profit).setScale(2, BigDecimal.ROUND_DOWN); |
| | | System.out.println(bigDecimal); |
| | | } |
| | | @Test |
| | | public void agentProfit() { |