From 954f46aaad039dd1b58f3d4f234479011ccff411 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 16 Jan 2025 11:07:31 +0800
Subject: [PATCH] fix(mall): 修复会员绑定逻辑

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |  103 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 62 insertions(+), 41 deletions(-)

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 83373b4..978c1d5 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
@@ -1,11 +1,16 @@
 package cc.mrbird.febs.mall.service.impl;
 
 import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.common.enumerates.*;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
+import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.ScoreFlowTypeEnum;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.properties.XcxProperties;
 import cc.mrbird.febs.common.utils.*;
-import cc.mrbird.febs.mall.conversion.*;
+import cc.mrbird.febs.mall.conversion.MallMemberConversion;
+import cc.mrbird.febs.mall.conversion.MallShopApplyConversion;
+import cc.mrbird.febs.mall.conversion.MallStoreConversion;
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
@@ -14,7 +19,6 @@
 import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
 import cc.mrbird.febs.pay.service.IXcxPayService;
 import cc.mrbird.febs.pay.util.MD5;
-import cc.mrbird.febs.pay.util.Util;
 import cc.mrbird.febs.vip.VipSettingUnAliveSettingBo;
 import cc.mrbird.febs.vip.entity.MallVipConfig;
 import cc.mrbird.febs.vip.mapper.MallVipConfigMapper;
@@ -38,18 +42,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.client.protocol.HttpClientContext;
-import org.apache.http.entity.ByteArrayEntity;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.message.BasicNameValuePair;
-import org.apache.http.util.EntityUtils;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.security.SecurityProperties;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -1174,7 +1167,7 @@
     public FebsResponse storeList(MallStoreDto mallStoreDto) {
         QueryWrapper<MallStore> mallStoreQueryWrapper = new QueryWrapper<>();
         if(StrUtil.isNotEmpty(mallStoreDto.getName())){
-            mallStoreQueryWrapper.like("name",mallStoreQueryWrapper);
+            mallStoreQueryWrapper.like("name",mallStoreDto.getName());
         }
         List<MallStore> mallStores = mallStoreMapper.selectList(mallStoreQueryWrapper);
         List<MallStoreVo> mallStoreVos = MallStoreConversion.INSTANCE.entitysToVos(mallStores);
@@ -1183,9 +1176,14 @@
 
     @Override
     public FebsResponse storeItemList(MallStoreItemDto mallStoreItemDto) {
-        QueryWrapper<MallStoreItem> mallStoreQueryWrapper = new QueryWrapper<>();
-        mallStoreQueryWrapper.like("store_id",mallStoreItemDto.getStoreId());
-        List<MallStoreItem> mallStores = mallStoreItemMapper.selectList(mallStoreQueryWrapper);
+//        QueryWrapper<MallStoreItem> mallStoreQueryWrapper = new QueryWrapper<>();
+//        mallStoreQueryWrapper.like("store_id",mallStoreItemDto.getStoreId());
+//        List<MallStoreItem> mallStores = mallStoreItemMapper.selectList(mallStoreQueryWrapper);
+
+        List<MallStoreItem> mallStores = mallStoreItemMapper.selectList(
+                new LambdaQueryWrapper<MallStoreItem>()
+                        .eq(MallStoreItem::getStoreId, mallStoreItemDto.getStoreId())
+        );
         return new FebsResponse().success().data(mallStores);
     }
 
@@ -1194,12 +1192,21 @@
         Long memberId = LoginUserUtil.getLoginUser().getId();
         Long storeItemId = bindStoreMemberDto.getStoreItemId();
 
-        QueryWrapper<MallStoreMember> objectQueryWrapper = new QueryWrapper<>();
-        objectQueryWrapper.eq("member_id",memberId);
-        List<MallStoreMember> mallStoreMembers = mallStoreMemberMapper.selectList(objectQueryWrapper);
+//        QueryWrapper<MallStoreMember> objectQueryWrapper = new QueryWrapper<>();
+//        objectQueryWrapper.eq("member_id",memberId);
+//        List<MallStoreMember> mallStoreMembers = mallStoreMemberMapper.selectList(objectQueryWrapper);
+
+        List<MallStoreMember> mallStoreMembers = mallStoreMemberMapper.selectList(
+                new LambdaQueryWrapper<MallStoreMember>()
+                        .eq(MallStoreMember::getMemberId, memberId)
+                        .eq(MallStoreMember::getStoreItemId, bindStoreMemberDto.getStoreItemId())
+        );
         if(CollUtil.isNotEmpty(mallStoreMembers)){
-            mallStoreMemberMapper.delete(objectQueryWrapper);
+            return new FebsResponse().fail().message("您已经绑定过了");
         }
+
+        MallMember mallMember = this.baseMapper.selectById(memberId);
+        Integer sex = "女".equals(mallMember.getSex()) ? 3 : 2;
 
         MallStoreItem mallStoreItem = mallStoreItemMapper.selectById(storeItemId);
         HashMap<String, String> objectObjectHashMap = new HashMap<>();
@@ -1216,6 +1223,7 @@
         objectObjectHashMap.put("address",address);
         objectObjectHashMap.put("age",age.toString());
         objectObjectHashMap.put("phoneNumber",phoneNumber);
+        objectObjectHashMap.put("sex",sex.toString());
 
         //sign= MD5(address+age+name+phoneNumber+shopAccount+shopPwd)
         StringBuffer stringBuffer = new StringBuffer();
@@ -1223,33 +1231,45 @@
         stringBuffer.append(age);
         stringBuffer.append(name);
         stringBuffer.append(phoneNumber);
+        stringBuffer.append(sex);
         stringBuffer.append(shopAccount);
         stringBuffer.append(shopPwd);
         String sign = MD5.MD5Encode(stringBuffer.toString());
         objectObjectHashMap.put("sign",sign);
         String url = "https://data.muchun.co/api/bindCustomer";
+
+        log.info("请求参数"+objectObjectHashMap);
         String result = HttpCurlUtil.sendPost(url, objectObjectHashMap);
+        log.info("绑定用户"+result);
         Integer retCode = JSONUtil.parseObj(result).getInt("retCode");
         String message = JSONUtil.parseObj(result).getStr("message");
         if(0 != retCode || !"绑定成功".equals(message)){
             return new FebsResponse().fail().message(message);
         }
+
         Long bindId = JSONUtil.parseObj(result).getJSONObject("data").getLong("userId");
+        List<MallStoreMember> mallStoreMembers1 = mallStoreMemberMapper.selectList(
+                new LambdaQueryWrapper<MallStoreMember>()
+                        .eq(MallStoreMember::getMemberId, memberId)
+                        .eq(MallStoreMember::getStoreItemId, mallStoreItem.getId())
+                        .eq(MallStoreMember::getBindId, bindId)
+        );
+        if(CollUtil.isEmpty(mallStoreMembers1)){
+            MallStoreMember mallStoreMember = new MallStoreMember();
+            mallStoreMember.setMemberId(memberId);
+            mallStoreMember.setBindId(bindId);
+            mallStoreMember.setStoreId(mallStoreItem.getStoreId());
+            mallStoreMember.setStoreItemId(mallStoreItem.getId());
 
-        MallStoreMember mallStoreMember = new MallStoreMember();
-        mallStoreMember.setMemberId(memberId);
-        mallStoreMember.setBindId(bindId);
-        mallStoreMember.setStoreId(mallStoreItem.getStoreId());
-        mallStoreMember.setStoreItemId(mallStoreItem.getId());
+            mallStoreMember.setAccount(shopAccount);
+            mallStoreMember.setPassword(shopPwd);
 
-        mallStoreMember.setAccount(shopAccount);
-        mallStoreMember.setPassword(shopPwd);
-
-        mallStoreMember.setName(name);
-        mallStoreMember.setAddress(address);
-        mallStoreMember.setAge(age);
-        mallStoreMember.setPhone(phoneNumber);
-        mallStoreMemberMapper.insert(mallStoreMember);
+            mallStoreMember.setName(name);
+            mallStoreMember.setAddress(address);
+            mallStoreMember.setAge(age);
+            mallStoreMember.setPhone(phoneNumber);
+            mallStoreMemberMapper.insert(mallStoreMember);
+        }
         return new FebsResponse().success().message("绑定成功");
     }
 
@@ -1286,15 +1306,16 @@
 
         objectObjectHashMap.put("shopAccount",shopAccount);
         objectObjectHashMap.put("shopPwd",shopPwd);
-        objectObjectHashMap.put("userld",userld.toString());
+        objectObjectHashMap.put("userId",userld.toString());
 
-        //sign= MD5(address+age+name+phoneNumber+shopAccount+shopPwd)
+        //sign= MD5(shopAccount+shopPwd+userId)
         StringBuffer stringBuffer = new StringBuffer();
         stringBuffer.append(shopAccount);
         stringBuffer.append(shopPwd);
         stringBuffer.append(userld);
         String sign = MD5.MD5Encode(stringBuffer.toString());
         objectObjectHashMap.put("sign",sign);
+
         String url = "https://data.muchun.co/api/getCustomerCheckRecords";
         String result = HttpCurlUtil.sendPost(url, objectObjectHashMap);
         Integer retCode = JSONUtil.parseObj(result).getInt("retCode");
@@ -1307,15 +1328,15 @@
     }
 
     public static void main(String[] args) {
-        Long userld = 177L;
-        String shopAccount = "luohu";
-        String shopPwd = "123456";
+        Long userld = 16425L;
+        String shopAccount = "爱和美医疗";
+        String shopPwd = "blnka2005";
 
         HashMap<String, String> objectObjectHashMap = new HashMap<>();
 
         objectObjectHashMap.put("shopAccount",shopAccount);
         objectObjectHashMap.put("shopPwd",shopPwd);
-        objectObjectHashMap.put("userld",userld.toString());
+        objectObjectHashMap.put("userId",userld.toString());
 
         //sign= MD5(shopAccount+shopPwd+userId)
         StringBuffer stringBuffer = new StringBuffer();

--
Gitblit v1.9.1