From 4bc4552a6818fff0fbf1375669a7b1e5fa58ab17 Mon Sep 17 00:00:00 2001 From: peng <peng.com> Date: 星期日, 28 九月 2025 09:34:18 +0800 Subject: [PATCH] 店铺优惠卷调整 --- 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