From 9b9e43adee86384abdcbc50af29c7ba68b818fb7 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期日, 28 九月 2025 09:34:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/send_coupon' into send_coupon

---
 framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java |   53 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 49 insertions(+), 4 deletions(-)

diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java
index 455df7b..9531b2b 100644
--- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java
@@ -25,6 +25,7 @@
 import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
 import cn.lili.modules.connect.service.ConnectService;
 import cn.lili.modules.lmk.domain.entity.VideoAccount;
+import cn.lili.modules.lmk.domain.form.MemberBindStoreForm;
 import cn.lili.modules.lmk.domain.form.MemberNickNameForm;
 import cn.lili.modules.lmk.domain.form.MemberTagForm;
 import cn.lili.modules.lmk.domain.vo.PrizeRecordVO;
@@ -74,6 +75,9 @@
 import javax.servlet.http.HttpServletResponse;
 import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -356,6 +360,49 @@
     }
 
     @Override
+    public Result bindMemberAndStore(MemberBindStoreForm form) {
+        String memberId = UserContext.getCurrentUserId();
+        if(StringUtils.isNotBlank(memberId)){
+            Member member = baseMapper.selectById(memberId);
+
+            if (member != null){
+                //鍒ゆ柇鐢ㄦ埛鐨勫垱寤烘椂闂存槸鍚﹀拰 鍒嗕韩shareTime鍦�24灏忔椂鍐�
+                LocalDateTime memberCreateTime = member.getCreateTime().toInstant()
+                        .atZone(ZoneId.systemDefault())
+                        .toLocalDateTime();
+
+                LocalDateTime shareTime = form.getShareTime().toInstant()
+                        .atZone(ZoneId.systemDefault())
+                        .toLocalDateTime();
+
+                // 璁$畻鏃堕棿宸� 绗竴涓弬鏁� 杈冩棭鐨勬椂闂� 鍚庝竴涓緝鏅氱殑鏃堕棿
+                Duration duration = Duration.between(
+                        memberCreateTime.isBefore(shareTime) ? memberCreateTime : shareTime,
+                        memberCreateTime.isBefore(shareTime) ? shareTime : memberCreateTime
+                );
+
+                long hoursDifference = duration.toHours();
+
+                if (hoursDifference <= 24) {
+                    // 鍦�24灏忔椂鍐� 涓庡簵閾鸿繘琛岀粦瀹�
+                    if(StringUtils.isNotBlank(member.getShareStoreId())){
+                        return Result.ok("宸茬粦瀹氬簵閾�");
+                    }
+                    member.setShareStoreId(form.getShareStoreId());
+                    baseMapper.updateById(member);
+                } else {
+                    return Result.ok("鍒嗕韩宸茶繃鏈燂紝鏈夋晥鏈熶负24灏忔椂");
+                }
+            }
+
+
+        }else{
+            throw new RuntimeException("UserContext.getCurrentUserId()锛氱敤鎴穒d鑾峰彇寮傚父");
+        }
+        return Result.ok("缁戝畾鎴愬姛");
+    }
+
+    @Override
     public Member editOwn(MemberEditDTO memberEditDTO) {
         //鏌ヨ浼氬憳淇℃伅
         Member member = this.findByUsername(Objects.requireNonNull(UserContext.getCurrentUser()).getUsername());
@@ -606,13 +653,11 @@
             String tagIdsStr = memberSearchVO.getTagIds().stream()
                     .map(String::valueOf)
                     .collect(Collectors.joining(","));
-            queryWrapper.inSql("id",
+            queryWrapper.inSql("m.id",
                     "SELECT DISTINCT member_id FROM lmk_member_tag WHERE tag_id IN (" +
                             tagIdsStr + ")");
-
-            return this.baseMapper.pageByMemberVO(PageUtil.initPage(page), queryWrapper);
         }
-        return this.baseMapper.pageByMemberVO(PageUtil.initPage(page),queryWrapper);
+        return this.baseMapper.pageByMemberVOAndBindStore(PageUtil.initPage(page),queryWrapper);
     }
 
     @Override

--
Gitblit v1.8.0