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