package cc.mrbird.febs; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.mapper.MallMemberMapper; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; 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.util.List; /** * @author wzy * @date 2023-06-03 **/ @Slf4j @SpringBootTest public class MemberTest { @Autowired private MallMemberMapper mallMemberMapper; @Test public void refererIds() { MallMember member = mallMemberMapper.selectById(1L); updateRefererIds(member); } private void updateRefererIds(MallMember member) { List mallMembers = mallMemberMapper.selectByRefererId(member.getInviteId()); if (CollUtil.isEmpty(mallMembers)) { return; } mallMembers.forEach(item -> { MallMember updateMember = new MallMember(); updateMember.setId(item.getId()); String s = refererIds(item.getReferrerId()); updateMember.setReferrerIds(s); mallMemberMapper.updateById(updateMember); updateRefererIds(item); }); } private String refererIds(String parentId) { boolean flag = false; if (StrUtil.isBlank(parentId)) { flag = true; } String ids = ""; while (!flag) { if (StrUtil.isBlank(ids)) { ids += parentId; } else { ids += ("," + parentId); } MallMember parentMember = this.mallMemberMapper.selectInfoByInviteId(parentId); if (parentMember == null) { break; } parentId = parentMember.getReferrerId(); if (StrUtil.isBlank(parentMember.getReferrerId())) { flag = true; } } return ids; } }