From 3f847215a4875a7855b830013b337b6c082f4649 Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Thu, 24 Aug 2023 22:10:58 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/mall/entity/MallMember.java                     |    1 
 src/main/java/cc/mrbird/febs/mall/dto/ApiXcxSaveInfoDto.java                 |    2 +
 src/main/java/cc/mrbird/febs/pay/model/WxGenerateQrCodeDto.java              |    2 
 src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java         |   20 ++++++++++
 src/main/java/cc/mrbird/febs/mall/dto/ApiXcxLoginDto.java                    |    2 +
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   34 +++++++++++++++++
 6 files changed, 60 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxLoginDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxLoginDto.java
index 0156599..e6e26cc 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxLoginDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxLoginDto.java
@@ -9,4 +9,6 @@
 
     private String code;
 
+    private String inviteId;
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxSaveInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxSaveInfoDto.java
index e7df061..7922925 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxSaveInfoDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxSaveInfoDto.java
@@ -20,4 +20,6 @@
     @ApiModelProperty(value = "性别" )
     private Integer gender;
 
+    @ApiModelProperty(value = "邀请码")
+    private String inviteId;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java
index 0963c19..0f110ab 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java
@@ -154,4 +154,5 @@
     @TableField(exist = false)
     private String salesmansName;
 
+    private String inviteImg;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 6547937..0fb793c 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -593,6 +593,40 @@
                     mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name());
                     mallMember.setOpenId(openId);
                     mallMember.setSessionKey(sessionKey);
+
+                    if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) {
+                        MallMember member = this.baseMapper.selectInfoByInviteId(apiXcxLoginDto.getInviteId());
+                        if (member != null) {
+                            mallMember.setReferrerId(member.getInviteId());
+
+                            //推荐人和推荐人链
+                            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.insert(mallMember);
 
                     mallMember = this.baseMapper.selectMemberByOpenId(openId);
diff --git a/src/main/java/cc/mrbird/febs/pay/model/WxGenerateQrCodeDto.java b/src/main/java/cc/mrbird/febs/pay/model/WxGenerateQrCodeDto.java
index 6fa01a2..6550ba9 100644
--- a/src/main/java/cc/mrbird/febs/pay/model/WxGenerateQrCodeDto.java
+++ b/src/main/java/cc/mrbird/febs/pay/model/WxGenerateQrCodeDto.java
@@ -17,7 +17,7 @@
     @ApiModelProperty(value = "参数 订单id 例如 15")
     private String scene;
 
-    @ApiModelProperty(value = "1:商品分享 2:团长分享")
+    @ApiModelProperty(value = "1:商品分享 2:团长分享 3-会员邀请码")
     private Integer type;
 
     @ApiModelProperty(value = "商品分享传商品ID,团长分享放图章特征码")
diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
index 8813345..5a2774e 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
@@ -319,6 +319,17 @@
             }
         }
 
+        if (type == 3) {
+            String openId = wxGenerateQrCodeDto.getTypeParam();
+            MallMember member = mallMemberMapper.selectMemberByOpenId(openId);
+            if(ObjectUtil.isNotNull(member)){
+                String wxCodeImg = member.getInviteImg();
+                if(StrUtil.isNotBlank(wxCodeImg)){
+                    return new FebsResponse().success().data(wxCodeImg);
+                }
+            }
+        }
+
         String randomNum = MallUtils.getRandomNum(5);
         String imgName="/user_" + randomNum + "_acode_1.jpg";
         String codeImgPath = generateAcode(wxGenerateQrCodeDto.getScene(), wxGenerateQrCodeDto.getPage(), imgName, "400px", null);
@@ -334,6 +345,15 @@
             mallTeamLeader.setWxCodeImg(codeImgPath);
             mallTeamLeaderMapper.updateById(mallTeamLeader);
         }
+
+        if (type == 3) {
+            String openId = wxGenerateQrCodeDto.getTypeParam();
+            MallMember member = mallMemberMapper.selectMemberByOpenId(openId);
+            if(ObjectUtil.isNotNull(member)){
+                member.setInviteImg(codeImgPath);
+                mallMemberMapper.updateById(member);
+            }
+        }
         return new FebsResponse().success().data(codeImgPath);
     }
 

--
Gitblit v1.9.1