From d5dbdbe51435f2148f2545734a11c0630173a104 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 17 Jul 2023 16:14:27 +0800 Subject: [PATCH] 扫码和关注的事件 --- src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 132 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 127 insertions(+), 5 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java index eb14dd2..694cdee 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java @@ -1,23 +1,26 @@ package cc.mrbird.febs.mall.service.impl; +import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.AgentLevelEnum; import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; +import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.AppContants; -import cc.mrbird.febs.mall.entity.AgentInfo; -import cc.mrbird.febs.mall.entity.DataDictionaryCustom; -import cc.mrbird.febs.mall.entity.MallMember; -import cc.mrbird.febs.mall.entity.MallOrderInfo; +import cc.mrbird.febs.common.utils.ShareCodeUtil; +import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.IAgentService; import cc.mrbird.febs.mall.service.IApiMallMemberService; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.IMallAchieveService; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; import com.alibaba.fastjson.JSONObject; import jdk.nashorn.internal.ir.IfNode; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -39,6 +42,7 @@ private final DataDictionaryCustomMapper dataDictionaryCustomMapper; private final MallMemberMapper memberMapper; + private final MallMemberWalletMapper mallMemberWalletMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -136,7 +140,6 @@ /** * 团队业绩是否达标 * - * @param mallMember * @param agentInfo * @return */ @@ -161,4 +164,123 @@ public void rankReturnMoney(Long orderId) { } + + @Override + public void addMember(String memberOpenId) { + MallMember mallMember = memberMapper.selectMemberByOpenId(memberOpenId); + //根据OPENID,查询用户信息,如果存在,直接返回 + if (ObjectUtil.isNotEmpty(mallMember)) { + mallMember.setSubStatus(MallMember.SUB_STATUS_ENABLE); + memberMapper.updateById(mallMember); + return; + } + mallMember = new MallMember(); + mallMember.setPassword(SecureUtil.md5("a123456")); + mallMember.setName("微信用户"); + mallMember.setSubStatus(MallMember.SUB_STATUS_ENABLE); + mallMember.setReferrerId(null); + mallMember.setPhone(null); + mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE); + mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL); + mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name()); + mallMember.setSex("男"); + mallMember.setBindPhone(null); + mallMember.setOpenId(memberOpenId); + memberMapper.insert(mallMember); + //生成邀请码 + String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId()); + mallMember.setInviteId(inviteId); + //推荐人和推荐人链 + 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 = memberMapper.selectInfoByInviteId(parentId); + if (parentMember == null) { + break; + } + parentId = parentMember.getReferrerId(); + if (StrUtil.isBlank(parentMember.getReferrerId())) { + flag = true; + } + } + if (StrUtil.isNotBlank(ids)) { + mallMember.setReferrerIds(ids); + } + memberMapper.updateById(mallMember); + //初始化钱包信息 + MallMemberWallet wallet = new MallMemberWallet(); + wallet.setBalance(BigDecimal.ZERO); + wallet.setMemberId(mallMember.getId()); + mallMemberWalletMapper.insert(wallet); + return; + } + + @Override + public void addMemberScan(String str) { + + String[] split = StrUtil.split(str, "-"); + String referrerId = split[0]; + String openId = split[1]; + MallMember mallMember = memberMapper.selectMemberByOpenId(openId); + if (ObjectUtil.isNotEmpty(mallMember)) { + return; + } + mallMember = new MallMember(); + mallMember.setPassword(SecureUtil.md5("a123456")); + mallMember.setName("微信用户"); + mallMember.setSubStatus(MallMember.SUB_STATUS_DISABLED); + mallMember.setReferrerId(referrerId); + mallMember.setPhone(null); + mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE); + mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL); + mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name()); + mallMember.setSex("男"); + mallMember.setBindPhone(null); + mallMember.setOpenId(openId); + memberMapper.insert(mallMember); + //生成邀请码 + String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId()); + mallMember.setInviteId(inviteId); + //推荐人和推荐人链 + 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 = memberMapper.selectInfoByInviteId(parentId); + if (parentMember == null) { + break; + } + parentId = parentMember.getReferrerId(); + if (StrUtil.isBlank(parentMember.getReferrerId())) { + flag = true; + } + } + if (StrUtil.isNotBlank(ids)) { + mallMember.setReferrerIds(ids); + } + memberMapper.updateById(mallMember); + //初始化钱包信息 + MallMemberWallet wallet = new MallMemberWallet(); + wallet.setBalance(BigDecimal.ZERO); + wallet.setMemberId(mallMember.getId()); + mallMemberWalletMapper.insert(wallet); + return; + } } -- Gitblit v1.9.1