| | |
| | | package cc.mrbird.febs; |
| | | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.enumerates.FlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.MemberLevelEnum; |
| | | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.PerkEnum; |
| | | import cc.mrbird.febs.common.utils.AppContants; |
| | | import cc.mrbird.febs.common.utils.MallUtils; |
| | | import cc.mrbird.febs.mall.entity.AdminAgentInfo; |
| | | import cc.mrbird.febs.mall.entity.DataDictionaryCustom; |
| | | import cc.mrbird.febs.mall.entity.MallMember; |
| | | import cc.mrbird.febs.mall.entity.MallOrderItem; |
| | | import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallMemberMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallOrderItemMapper; |
| | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | 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.text.DecimalFormat; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @author wzy |
| | |
| | | |
| | | @Autowired |
| | | private IApiMallMemberWalletService walletService; |
| | | @Autowired |
| | | private DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | @Test |
| | | public void dynamicProfit() { |
| | | List<MallMember> mallMembers = mallMemberMapper.selectList(null); |
| | | if(CollUtil.isEmpty(mallMembers)){ |
| | | return; |
| | | } |
| | | for(MallMember mallMember : mallMembers){ |
| | | boolean flag = false; |
| | | String parentId = mallMember.getReferrerId(); |
| | | if (StrUtil.isBlank(parentId)) { |
| | | flag = true; |
| | | } |
| | | String ids = ""; |
| | | while (!flag) { |
| | | if (StrUtil.isBlank(ids)) { |
| | | ids += parentId; |
| | | } else { |
| | | ids += ("," + parentId); |
| | | } |
| | | MallMember parentMember = mallMemberMapper.selectInfoByInviteId(parentId); |
| | | if (parentMember == null) { |
| | | break; |
| | | } |
| | | parentId = parentMember.getReferrerId(); |
| | | if (StrUtil.isBlank(parentMember.getReferrerId())) { |
| | | flag = true; |
| | | BigDecimal amountTC = new BigDecimal("100"); |
| | | MallMember mallMember = mallMemberMapper.selectById(921L); |
| | | if(StrUtil.isNotEmpty(mallMember.getReferrerIds())){ |
| | | //团队补贴对象 |
| | | String referrerIds = mallMember.getReferrerIds(); |
| | | List<String> referrerIdList = StrUtil.splitTrim(referrerIds, ","); |
| | | if(CollUtil.isNotEmpty(referrerIdList)){ |
| | | String levelNormal = MemberLevelEnum.V1.getType(); |
| | | BigDecimal cashPercentNormal = BigDecimal.ZERO; |
| | | BigDecimal scorePercentNormal = BigDecimal.ZERO; |
| | | |
| | | DataDictionaryCustom poolScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | PerkEnum.POOL_SCORE_PRICE.getType(), |
| | | PerkEnum.POOL_SCORE_PRICE.getCode()); |
| | | BigDecimal poolScorePrice = new BigDecimal(poolScorePriceDic.getValue() == null ? "1" : poolScorePriceDic.getValue()); |
| | | for(String teamPerkMemberInviteId : referrerIdList){ |
| | | MallMember teamPerkMember = mallMemberMapper.selectInfoByInviteId(teamPerkMemberInviteId); |
| | | String level = teamPerkMember.getLevel(); |
| | | //比较两个级别的大小,level大于levelNormal返回1 |
| | | int compareMin = MemberLevelEnum.V1.compareLevel(level, levelNormal); |
| | | int compareMax = MemberLevelEnum.V1.compareLevel(MemberLevelEnum.V6.getType(), level); |
| | | if(compareMin >= 1 && compareMax >= 1){ |
| | | Long teamPerkMemberId = teamPerkMember.getId(); |
| | | DataDictionaryCustom teamPerkMemberDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | "AGENT_PERK_SET", level); |
| | | |
| | | AdminAgentInfo adminAgentInfo = JSONObject.parseObject(teamPerkMemberDic.getValue(), AdminAgentInfo.class); |
| | | BigDecimal cashPercent = adminAgentInfo.getCashPercent().multiply(AppContants.PERCENTAGE); |
| | | BigDecimal scorePercent = adminAgentInfo.getScorePercent().multiply(AppContants.PERCENTAGE); |
| | | //极差 |
| | | cashPercent = cashPercent.subtract(cashPercentNormal); |
| | | scorePercent = scorePercent.subtract(scorePercentNormal); |
| | | |
| | | BigDecimal cashAmount = amountTC.multiply(cashPercent).setScale(2, BigDecimal.ROUND_DOWN); |
| | | |
| | | //如果是H金劵,除以当前价格,得到数量。 |
| | | BigDecimal scoreCnt = amountTC.multiply(scorePercent).setScale(2, BigDecimal.ROUND_DOWN); |
| | | scoreCnt = scoreCnt.divide(poolScorePrice, 2 ,BigDecimal.ROUND_DOWN); |
| | | MallMember mallMember1 = mallMemberMapper.selectById(teamPerkMemberId); |
| | | if(cashAmount.compareTo(BigDecimal.ZERO) > 0){ |
| | | System.out.println(mallMember1.getName()+"获得:" + cashAmount); |
| | | } |
| | | if(scoreCnt.compareTo(BigDecimal.ZERO) > 0){ |
| | | System.out.println(mallMember1.getName()+"获得:" + scoreCnt); |
| | | } |
| | | levelNormal = level; |
| | | cashPercentNormal = adminAgentInfo.getCashPercent().multiply(AppContants.PERCENTAGE); |
| | | scorePercentNormal = adminAgentInfo.getScorePercent().multiply(AppContants.PERCENTAGE); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (StrUtil.isNotBlank(ids)) { |
| | | mallMember.setReferrerIds(ids); |
| | | } |
| | | mallMemberMapper.updateById(mallMember); |
| | | |
| | | } |
| | | // List<MallMember> mallMembers = mallMemberMapper.selectList(null); |
| | | // if(CollUtil.isEmpty(mallMembers)){ |
| | | // return; |
| | | // } |
| | | // for(MallMember mallMember : mallMembers){ |
| | | // boolean flag = false; |
| | | // String parentId = mallMember.getReferrerId(); |
| | | // if (StrUtil.isBlank(parentId)) { |
| | | // flag = true; |
| | | // } |
| | | // String ids = ""; |
| | | // while (!flag) { |
| | | // if (StrUtil.isBlank(ids)) { |
| | | // ids += parentId; |
| | | // } else { |
| | | // ids += ("," + parentId); |
| | | // } |
| | | // MallMember parentMember = mallMemberMapper.selectInfoByInviteId(parentId); |
| | | // if (parentMember == null) { |
| | | // break; |
| | | // } |
| | | // parentId = parentMember.getReferrerId(); |
| | | // if (StrUtil.isBlank(parentMember.getReferrerId())) { |
| | | // flag = true; |
| | | // } |
| | | // } |
| | | // |
| | | // if (StrUtil.isNotBlank(ids)) { |
| | | // mallMember.setReferrerIds(ids); |
| | | // } |
| | | // mallMemberMapper.updateById(mallMember); |
| | | // } |
| | | |
| | | |
| | | // walletService.add(new BigDecimal(2000), 1L, "equityLimit");//减少权益积分 |