From 742011d98a68bcf3bd2623788c4a407e490ceb24 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Wed, 27 Mar 2024 14:44:05 +0800 Subject: [PATCH] 抽奖 --- src/main/java/cc/mrbird/febs/mall/service/AsyncService.java | 15 +++++++ src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java | 46 +++++++++++++++++++++++ src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 11 +++++ 3 files changed, 72 insertions(+), 0 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java b/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java new file mode 100644 index 0000000..73064fd --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/service/AsyncService.java @@ -0,0 +1,15 @@ +package cc.mrbird.febs.mall.service; + +import cc.mrbird.febs.common.entity.FebsConstant; +import cc.mrbird.febs.mall.entity.MallMember; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.scheduling.annotation.Async; + +/** + * 异步操作 + */ +public interface AsyncService extends IService<MallMember> { + + @Async(FebsConstant.ASYNC_POOL) + void updateAllMemberReferrerId(MallMember mallMember); +} \ No newline at end of file diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java index 0b52189..bbe36a4 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java @@ -11,6 +11,7 @@ import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.entity.MallNewsInfo; import cc.mrbird.febs.mall.mapper.*; +import cc.mrbird.febs.mall.service.AsyncService; import cc.mrbird.febs.mall.service.IAdminMallMemberService; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.IMallMoneyFlowService; @@ -639,6 +640,7 @@ return this.baseMapper.selectInfoByInviteId(inviteId); } + private final AsyncService asyncService; @Override @Transactional(rollbackFor = Exception.class) public void modifyReferer(MallMember member) { @@ -665,6 +667,15 @@ child.setReferrerIds(member.getInviteId() + "," + refererIds); this.baseMapper.updateById(child); } + + log.info("异步更新用户信息"); + List<MallMember> mallMembers = this.baseMapper.selectList(null); + if(CollUtil.isEmpty(mallMembers)){ + return; + } + for(MallMember mallMemberDown : mallMembers){ + asyncService.updateAllMemberReferrerId(mallMemberDown); + } } @Override diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java new file mode 100644 index 0000000..c03a3c3 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncServiceImpl.java @@ -0,0 +1,46 @@ +package cc.mrbird.febs.mall.service.impl; + +import cc.mrbird.febs.mall.entity.MallMember; +import cc.mrbird.febs.mall.mapper.MallMemberMapper; +import cc.mrbird.febs.mall.service.AsyncService; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@RequiredArgsConstructor +public class AsyncServiceImpl extends ServiceImpl<MallMemberMapper, MallMember> implements AsyncService { + + @Override + public void updateAllMemberReferrerId(MallMember mallMember){ + 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 = this.baseMapper.selectInfoByInviteId(parentId); + if (parentMember == null) { + break; + } + parentId = parentMember.getReferrerId(); + if (StrUtil.isBlank(parentMember.getReferrerId())) { + flag = true; + } + } + + if (StrUtil.isNotBlank(ids)) { + mallMember.setReferrerIds(ids); + } + this.baseMapper.updateById(mallMember); + } +} -- Gitblit v1.9.1