KKSU
2024-08-29 b6be66a34281cc6a72d544a92244bcc876a2c773
src/test/java/cc/mrbird/febs/AgentTest.java
@@ -1,20 +1,20 @@
package cc.mrbird.febs;
import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
import cc.mrbird.febs.mall.dto.AgentLevelUpdateDto;
import cc.mrbird.febs.mall.entity.AgentInfo;
import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.mall.entity.MallMemberAmount;
import cc.mrbird.febs.mall.entity.MallProductSell;
import cc.mrbird.febs.mall.mapper.MallMemberAmountMapper;
import cc.mrbird.febs.mall.mapper.MallProductSellMapper;
import cc.mrbird.febs.mall.service.IAgentService;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
import com.alibaba.fastjson.JSONObject;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.weaver.loadtime.Agent;
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.List;
/**
 * @author wzy
@@ -24,82 +24,64 @@
@SpringBootTest
public class AgentTest {
    @Autowired
    private AgentProducer agentProducer;
    @Autowired
    private DataDictionaryCustomMapper dataDictionaryCustomMapper;
    @Autowired
    private IAgentService agentService;
    @Test
    public void agentTest() {
//        agentProducer.sendDelayMsg(1L, 10000L);
    }
    @Test
    public void insertAgentTest() {
        AgentInfo agentInfo = new AgentInfo();
        agentInfo.setOrderType(2);
        agentInfo.setOrderCnt(2000);
        agentInfo.setLastCnt(3);
        agentInfo.setDirectIncome(BigDecimal.valueOf(50));
        agentInfo.setTeamIncome(BigDecimal.valueOf(15));
        agentInfo.setTeamIncomeType(2);
        DataDictionaryCustom data = new DataDictionaryCustom();
        data.setType("AGENT_LEVEL_REQUIRE");
        data.setCode(AgentLevelEnum.FOUR_LEVEL.name());
        data.setValue(JSONObject.toJSONString(agentInfo));
        dataDictionaryCustomMapper.insert(data);
    }
    @Test
    public void insertData() {
        int i = 1;
        for (AgentLevelEnum value : AgentLevelEnum.values()) {
            DataDictionaryCustom data = new DataDictionaryCustom();
            data.setType("AGENT_LEVEL");
            data.setDescription(value.getName());
            data.setCode(value.name());
            data.setValue(String.valueOf(i));
            dataDictionaryCustomMapper.insert(data);
        }
    }
    public static void main(String[] args) {
        getJson();
    }
    public static void getJson(){
        AgentLevelUpdateDto adminAgentLevelUpdateInfoVo = new AgentLevelUpdateDto();
        String jsonStr = "{\"directIncome\":50,\"lastCnt\":3,\"orderCnt\":2000,\"orderType\":2,\"teamIncome\":15,\"teamIncomeType\":2}";
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
        adminAgentLevelUpdateInfoVo.setDirectIncome(new BigDecimal((jsonObject.get("directIncome")==null?0:jsonObject.get("directIncome")).toString()));
        adminAgentLevelUpdateInfoVo.setLastCnt(Integer.parseInt((jsonObject.get("lastCnt")==null?0:jsonObject.get("lastCnt")).toString()));
        adminAgentLevelUpdateInfoVo.setOrderCnt(Integer.parseInt((jsonObject.get("orderCnt")==null?0:jsonObject.get("orderCnt")).toString()));
        adminAgentLevelUpdateInfoVo.setOrderType(Integer.parseInt(jsonObject.get("orderType").toString()));
        adminAgentLevelUpdateInfoVo.setTeamIncome(new BigDecimal((jsonObject.get("teamIncome")==null?0:jsonObject.get("teamIncome")).toString()));
        adminAgentLevelUpdateInfoVo.setTeamIncomeType(Integer.parseInt(jsonObject.get("orderType").toString()));
        adminAgentLevelUpdateInfoVo.setId(14L);
        AgentLevelUpdateDto agentLevelUpdateDtoJson = new AgentLevelUpdateDto();
        agentLevelUpdateDtoJson.setDirectIncome(adminAgentLevelUpdateInfoVo.getDirectIncome());
        agentLevelUpdateDtoJson.setLastCnt(adminAgentLevelUpdateInfoVo.getLastCnt());
        agentLevelUpdateDtoJson.setOrderCnt(adminAgentLevelUpdateInfoVo.getOrderCnt());
        agentLevelUpdateDtoJson.setTeamIncome(adminAgentLevelUpdateInfoVo.getTeamIncome());
        agentLevelUpdateDtoJson.setOrderType(adminAgentLevelUpdateInfoVo.getOrderType());
        agentLevelUpdateDtoJson.setTeamIncomeType(adminAgentLevelUpdateInfoVo.getTeamIncomeType());
        JSONObject jsonObjectA = (JSONObject)JSONObject.toJSON(agentLevelUpdateDtoJson);
        System.out.println(jsonObjectA.toJSONString());
    }
    @Test
    public void autoLevelUp() {
        // agentService.autoUpAgentLevel(3L);
//        agentProducer.sendAutoLevelUpMsg(3L);
        agentProducer.sendReturnMoneyMsg(14L);
    }
    /**
     *
     * 查询所有的 mall_product_sell 的记录中 nftCntAva 大于0且 state  = 1 的记录
     * trendsNft 增加 nftCntAva 的数量
     * mall_product_sell 中的记录换成 state  = 3
     * 然后 trendsNft + totalPerk  * 50%  / 1.02 获得对应的 trendsNft 值
     * 然后把之前两个数据清空,复制成新的 trendsNft 值
     *
     */
//    @Autowired
//    private IAgentService agentService;
//    @Autowired
//    private MallProductSellMapper mallProductSellMapper;
//    @Autowired
//    private MallMemberAmountMapper mallMemberAmountMapper;
//    @Test
//    public void memberData() {
//        QueryWrapper<MallProductSell> objectQueryWrapper = new QueryWrapper<>();
//        objectQueryWrapper.eq("state",1);
//        objectQueryWrapper.gt(true,"nft_cnt_ava", BigDecimal.ZERO);
//        List<MallProductSell> mallProductSells = mallProductSellMapper.selectList(objectQueryWrapper);
//        if(ObjectUtil.isEmpty(mallProductSells)){
//            return;
//        }
//        for(MallProductSell sell : mallProductSells){
//            sell.setState(0);
//            mallProductSellMapper.updateById(sell);
//
//            Long memberId = sell.getMemberId();
//            BigDecimal nftCntAva = sell.getNftCntAva();
//            MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
//            if(ObjectUtil.isEmpty(mallMemberAmount)){
//                continue;
//            }
//            mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(nftCntAva));
//            mallMemberAmountMapper.updateById(mallMemberAmount);
//        }
//
//        List<MallMemberAmount> mallMemberAmounts = mallMemberAmountMapper.selectList(null);
//        if(ObjectUtil.isEmpty(mallMemberAmounts)){
//            return;
//        }
//        for(MallMemberAmount amount : mallMemberAmounts){
//            BigDecimal trendsNft = amount.getTrendsNft();
//            BigDecimal totalPerk = amount.getTotalPerk();
//            BigDecimal fcmCntAva = amount.getFcmCntAva();
//
//            BigDecimal add = trendsNft.add(totalPerk);
//            BigDecimal multiply = add.multiply(new BigDecimal("0.5"));
//            BigDecimal divide = multiply.divide(new BigDecimal("1.02"), 2, BigDecimal.ROUND_DOWN);
//            if(BigDecimal.ZERO.compareTo(divide) >= 0){
//                amount.setFcmCntAva(fcmCntAva);
//            }else{
//                amount.setFcmCntAva(fcmCntAva.add(divide));
//            }
//            amount.setTrendsNft(BigDecimal.ZERO);
//            amount.setTotalPerk(BigDecimal.ZERO);
//            mallMemberAmountMapper.updateById(amount);
//        }
//    }
}